Partners integrating via the Banxa Native API control the full user experience, including the presentation of required legal agreements. Banxa does not surface these agreements on the partner's behalf. Failure to display required agreements before a user transacts is a compliance breach and may result in transaction failures or go-live being blocked.
Required agreements are additive — each layer below builds on the previous. Display all agreements that apply to your users' jurisdiction before they initiate their first transaction.
Every user transacting through the Banxa Native API must be shown and must accept:
In addition to the above, US users must also be shown and accept:
Users in the following states are processed through a licensed sub-processor and must also accept that sub-processor's agreements, in addition to all of the above.
Axnab does not require a separate privacy policy document at this layer.
Washington (WA) is processed through both Zerohash and Axnab. Users in WA must accept agreements from both sub-processors.
In addition to all of the above, US users completing an ACH transaction must also be shown and accept:
- Agreements must be presented clearly before the user initiates their first transaction — not buried in a settings flow or footer.
- Acceptance must be captured explicitly (e.g. a checkbox with a visible link to each document).
- Banxa's compliance team will review a screen recording of the acceptance flow before approving go-live.
For ACH transactions, acceptance is also captured at the API level via the acknowledgement field on the ramp creation endpoint.
When it is required: Banxa checks two conditions at ramp creation:
- The payment method is ACH
- The user has not previously accepted the agreements
If both conditions are true, the request must include the acknowledgement field. Omitting it returns a 400 error.
After first acceptance, the signed_agreement_id is stored on the user's record and forwarded to Bridge. Subsequent ACH transactions by the same user do not require re-acceptance.
{
"identityReference": "user-abc123",
"source": {
"fiat": {
"id": "USD",
"method": "ach-bank-transfer"
}
},
"target": {
"crypto": {
"id": "USDT",
"blockchain": "ETH",
"walletAddress": "0xYourWalletAddress"
}
},
"fiatAmount": "200",
"acknowledgement": {
"agreedToTerms": true,
"agreedAt": "2026-05-04T10:00:00.000Z"
}
}{
"status": 400,
"code": "ACKNOWLEDGEMENT_REQUIRED",
"message": "Customer must accept agreements before proceeding with ACH payment."
}| User | Required agreements |
|---|---|
| All users | Banxa Terms & Conditions |
| US users | + Banxa Privacy Policy, Biometric Privacy Disclosure, State Disclosures |
| US users in TX, WI, VA | + Zero Hash ToS, US Licenses & Disclosures, Privacy Policy |
| US users in GA, MN | + Axnab T&Cs, Axnab Biometric Privacy Disclosure |
| US users in WA | + Zero Hash ToS, US Licenses & Disclosures, Zero Hash Privacy Policy, Axnab T&Cs, Axnab Biometric Privacy Disclosure |
| US users paying via ACH | All of the above (where applicable) + Bridge Terms of Service + Bridge Privacy Policy + acknowledgement field |
Go-live requirement: Before going live with any US users, provide your Banxa contact with a screen recording showing where each required agreement is displayed and how acceptance is captured. For ACH specifically, production access will not be granted until this review is complete.