Prepare customer agreements
The new customer onboarding flow is recommended for all new integrations.
If you already have an existing integration with Customers API v1, you can continue using it. BVNK will continue to support this API going forward.
Before creating customer accounts via API, ensure your customers have accepted and signed BVNK's Terms and Conditions.
The agreements can be signed in the following ways:
Before running the onboarding flow, make sure you are not onboarding customers from restricted jurisdictions. For more information, see BVNK Acceptable Use Policy.
Sign agreements via HostedURL
{redirect URL}.To sign an agreement using a HostedURL with a redirect:
-
Send a
POST /customers/agreement/sessionsrequest with the following JSON payload to create a unique Hosted Agreement signing session.{"customerType": "INDIVIDUAL","countryCode": "US","useCase": "STABLECOIN_PAYOUTS"}The response from BVNK includes the agreement details:
{"reference": "79d697b7-489a-4a01-96a2-f7403e8c5735","status": "PENDING","expiresOn": "2025-12-12T14:15:10Z","agreements": [...]"}The
referencefield is the unique customer agreement session identifier. -
Construct the redirect link to BVNK's Agreement Page by adding
session={reference}andredirectUri={redirect URL}as query parameters to the base URL.Environment Example of the constructed redirect link Sandbox https://signup.sandbox.bvnk.com/agreements?session={reference}&redirectUri=http://example.com/callbackProduction https://signup.bvnk.com/agreements?session={reference}&redirectUri=http://example.com/callback -
Redirect your customer to the constructed BVNK Agreement Page.
What happens next
- The user reviews the required agreements on the Agreement Page and can choose to Submit or Cancel.
- When the user clicks Submit, the session status updates to
SIGNED, completing the signature process. - The user is redirected via
302to the providedredirectUri, with the session status (SIGNEDorDECLINED) included as a query parameter.
Once the agreement status changes to SIGNED, send a POST /platform/v1/customers request with the included signedAgreementSessionReference from the previous step to create the Embedded customer. For the detailed instructions, see Create a customer via API.
Sign agreements via API
BVNK supports a direct API method for signing agreements, eliminating the need for user redirection.
To create an Agreement Session via API, send a POST /customers/agreement/sessions request with the following body parameters:
The response includes the agreement session details.
{
"reference": "5f74fee5-3e8e-4dcc-85cd-24b9205bb44d",
"status": "PENDING",
"customerType": "INDIVIDUAL",
"useCase": "STABLECOIN_PAYOUTS",
"countryCode": "DE",
"expiresOn": "2025-05-23T15:05:20.859141Z",
"agreements": [ ... ]
}
Update agreement session status
To update the agreement session status, follow these steps:
- Send
PUT /customers/agreement/sessions/{reference}request with the session reference obtained in the previous step. - In the request, include the following payload:
- session status (
SIGNEDorDECLINED) - IP address
- session status (
The session status will update accordingly.
Verify session status
To retrieve the session status, send the GET /customers/agreement/sessions/{reference} request with the session reference.
The response confirms the current session status (SIGNED, PENDING, or DECLINED).
{
"reference": "5f74fee5-3e8e-4dcc-85cd-24b9205bb44d",
"status": "SIGNED",
...
}
Key considerations
- Store session references securely.
- Clearly inform your customers about the legally binding nature of agreements.
- Monitor and manage session expirations carefully.
The Customers section in Portal and API is not enabled by default when a sandbox account is created. Contact the Solutions team to configure this capability.
What's next?