Skip to content
Last updated

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.


What you need to display

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.

Layer 1 — All users, all regions

Every user transacting through the Banxa Native API must be shown and must accept:

Layer 2 — Users transacting in the United States

In addition to the above, US users must also be shown and accept:

Layer 3 — US users in specific states

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.

Zerohash — TX, WA, WI, VA

Axnab — GA, MN, WA

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.

Layer 4 — US users paying via ACH bank transfer

In addition to all of the above, US users completing an ACH transaction must also be shown and accept:

Display requirements

  • 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.

The acknowledgement field (Layer 4 — ACH only)

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:

  1. The payment method is ACH
  2. 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.

Request example

{
  "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"
  }
}

Error when acknowledgement is missing

{
  "status": 400,
  "code": "ACKNOWLEDGEMENT_REQUIRED",
  "message": "Customer must accept agreements before proceeding with ACH payment."
}

Summary

UserRequired agreements
All usersBanxa 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 ACHAll 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.