Bank accounts
Generate Bank Link
US customers only. Returns a hosted page where the customer links the bank account for ACH_PULL payins.
POST
cURL
Generate Bank Link
How linking works
- Your backend calls this endpoint for a
VERIFIEDUS customer and getswidget_url. - Your app opens
widget_url. The customer signs in to their bank and picks the account. - The customer lands on
redirect_url, whether linking worked or not. - Call Fetch Bank Accounts. The account is in
accounts,PROCESSINGuntil the connection completes, thenVERIFIED. NoBANKwebhook is sent, so poll. - Create an
ACH_PULLpayin quotation with that account’sidasbank_id. It’s required: without it the quotation fails withNo linked bank account found for the selected payment method. Zapyd debits that account, so there are no deposit instructions.
In sandbox, the hosted page isn’t available for test customers. Call Mock Bank Verification with the US
customer_id, bank_status: "VERIFIED" and no bank_id: it creates a linked test account that Fetch Bank Accounts returns.Error Codes and Messages
Authorizations
API Key for authentication
Current timestamp in seconds since epoch
HMAC SHA256 signature of the request encoded in Base64
Body
application/json
Zapyd customer ID (UUID) of a VERIFIED US customer.
Example:
"c2cf861b-342b-4318-a90e-85cd0312e82f"
Where the customer returns after linking, whether it worked or not. Must be a full URL.
Example:
"https://yourapp.com/bank/return"
Optional. The payin method the account is linked for. Defaults to ach_pull. Case-insensitive.
Available options:
ach_pull, wire, debit_card Example:
"ach_pull"