Adding and Approving a Check Issuing Account

Adding and approving a check issuing account to your buyer.

API reference the following endpoints:
https://developer.cpxchange.com/reference#apiaddaccount

The order for updating the checking account is:

1. Add Account

POST to /buyer/{buyerId}/checkAccount/add
Payload:

{
	"bankName":"Favorite Bank",
	"accountType":"checking",
	"routingNumber":"061000052",
	"accountNumber":"100000009",
	"checkStartNumber":1,
	"address":
	{
    "street1":"2001 Pennsylvania Avenue",
		"city":"Seattle",
		"state":"WA",
		"postalCode":"30004"
  }
}

Response will be an "id" and "accountStatus". "accountStatus" should be "ACCOUNT_ADDED"
Use the "id" as the following call's "accountToken".
GET to /buyer/{buyerId}/checkAccount/{accountToken}

2. Upload Signature

Again, use the "id" from above for "accountToken"
POST to /buyer/{buyerId}/checkAccount/{accountToken}/assignSignature
Base64 encode the image, use the string as the value in the "file" field
Payload:

{
  "fileName":"something.png",
  "file":"data:image/{fileExtension};base64,{file_encoded_string}"
}

The Photo must have a white background and the signature must be in black for best results. The suggested image size is 271px by 71px.

Response:

{
	"accountStatus":"SIGNATURE_UPLOADED",
	"Id":"account_token_value",
	"signatureAttachmentId":"token_value_representing_image"
}

3. MicroDeposit Confirmation

Two calls- One to initiate the process and the second to verify:

  • a. POST to /buyer/{buyerId}/checkAccount/{accountToken}/confirm with no payload.
    Response:
{
	"accountId":"XXXX",
  "accountStatus":"VERIFICATION_STARTED",
	"Id":"account_token_value"
}
  • b. This step will require validating the microDeposits added to your account from our check issuing service. In Sandbox, use "0.01" for both micro deposit values.
    POST to /buyer/{buyerId}/checkAccount/{accountToken}/verifyMicroDeposit
    Payload:
{
	"deposit1":0.01,
	"deposit2":0.01
}

Response:

{
	"accountId":"XXXX",
	"accountStatus":"ACCOUNT_CONFIRMED",
	"Id":"account_token_value"
}

Please let us know if you need to us to remedy a "checkAccount" in Sandbox, as the full function for validating the "checkProof" needs to be updated manually by the development team. This will require intervention after Step 3.


4. Check Proof Approval

Will have to wait for Check Proof in a pending status
View the "checkProof"
GET to /buyer/{buyerId}/checkAccount/{accountToken}/getCheckProofImage

Approve the "checkProof"
POST to /buyer/{buyerId}/checkAccount/{accountToken}/approveCheckProof
Response:

{
	"accountId":"XXXX",
	"accountStatus":"CHECK_PROOF_APPROVED",
	"Id":"account_token_value"
}

When the CheckProof is approved, you can do a GET to /buyer/{buyerId}/checkAccount/{accountToken} to view the full details of the "checkAccount" object.


5. Check Issuing

Now, update your Buyer to accept "checkIssuing."
https://developer.cpxchange.com/reference#apiupdate-2
PUT to /buyer/v1/buyer/{{BuyerId}}

{
	"checkIssuing": {
		"bankAccountId":"{{BuyerCheckAcctToken}}"
	},
    "associatedInstitutionId": "{{Inst_UUID}}",
    "associatedInstitutionName": "{{Inst Name}}",
    "bid": "{{Client_Defined_BID}}",
    "checkIssuingEnabled": true,
    "name": "{{Buyer_Name}}",
    "buyerId":"{{BuyerId}}"
}