Skip to content

Banxa Enterprise API (0 BETA)

Official Banxa Enterprise API Specs

Download OpenAPI description
Languages
Servers
Mock server
https://banxa-enterprise.redocly.app/_mock/enterprise-api/v0-beta/openapi
Production environment server
https://api.banxa.com
Sandbox environment server
https://api.banxa-sandbox.com

Ramps

Enable Get and Post on ramp and off ramp

Operations
Webhooks

Identities

Enable Sharing and reliance of identity through token(sumsub), reliance or by sending us documents.

Operations
Webhooks

Price

Request a price prior to requesting a On or Off ramp transaction

Operations

Eligibility

Check eligibility for specific transactions

Operations

Request

Request transaction eligibility for a specific identity

Security
HMACAuth
Bodyapplication/jsonrequired
One of:

Request payload for transaction eligibility.

Identification rules:

  • Provide identityReference, OR provide all of email, countryOfResidence.
  • Responses containg 422 status codes can vary based on the restrcitions found for the profile for example:
    • limit breach (daily, weekly, monthly, annual)
    • age restrictions
    • unsupported asset or fiat currency
    • Locality restrictions

Amount rules:

  • Provide exactly one of fiatAmount or cryptoAmount.

Conditional:

  • state is required when countryOfResidence is US.
identityReferencestring[ 1 .. 255 ] characters

Partner identity reference.

Example: "user-123"
methodstring[ 1 .. 100 ] charactersrequired

Transaction method (partner-defined).

Example: "payid-bank-transfer"
transactionTypestringrequired

Transaction type. Must be a valid value of TransactionTypeEnum. (Populate the allowed values here if you want strict client validation.)

Enum"ONRAMP""OFFRAMP"
Example: "ONRAMP"
fiatstring[ 1 .. 10 ] characters^[A-Z0-9]{1,10}$required

Fiat currency code allowed for the partner (e.g., ISO 4217). Enforced server-side validation for availbility

Example: "AUD"
cryptostring[ 1 .. 10 ] characters^[A-Z0-9]{1,10}$required

Crypto asset code. Enforced server-side validation for availbility

Example: "BTC"
fiatAmountstringnon-empty^[0-9]+(\.[0-9]+)?$required

Fiat amount as a decimal string. Mutually exclusive with cryptoAmount.

Example: "250.00"
cryptoAmountstringnon-empty^[0-9]+(\.[0-9]+)?$

Crypto amount as a decimal string. Mutually exclusive with fiatAmount.

Example: "0.125"
blockchainstringnon-emptyrequired

Blockchain identifier.

Example: "BITCOIN"
emailstring(email)

Required when identityReference is not provided.

Example: "user@example.com"
countryOfResidencestring= 2 characters^[A-Z]{2}$

Required when identityReference is not provided. ISO 3166-1 alpha-2 country code.

Example: "AU"
dateOfBirthstring(date)

Optional when identityReference is not provided. (Format YYYY-MM-DD)"

Example: "1990-01-30"
statestring

Required if countryOfResidence is US. (Enforced server-side.)

Example: "CA"
curl -i -X POST \
  https://banxa-enterprise.redocly.app/_mock/enterprise-api/v0-beta/openapi/eapi/identities/transactions/eligibility \
  -H 'Authorization: YOUR_API_KEY_HERE' \
  -H 'Content-Type: application/json' \
  -d '{
    "identityReference": "user-123",
    "method": "payid-bank-transfer",
    "transactionType": "ONRAMP",
    "fiat": "AUD",
    "crypto": "BTC",
    "fiatAmount": "250.00",
    "cryptoAmount": "0.125",
    "blockchain": "BITCOIN",
    "email": "user@example.com",
    "countryOfResidence": "AU",
    "dateOfBirth": "1990-01-30",
    "state": "CA"
  }'

Responses

The identity sharing request has been accepted for processing

Bodyapplication/json
paymentReadybooleanrequired

Whether the identity is eligible and can proceed with payment/transaction. When true, there are no KYC requirements.

Example: false
requirementsArray of stringsuniquerequired

List of outstanding requirements that must be satisfied before payment can proceed. If paymentReady is true, this will typically be an empty array.

Items Enum"US_TAX_ID""PERSONAL_DETAILS""DOCUMENT""SELFIE""SOURCE_FUNDS""OCCUPATION""PURPOSE_OF_TX"
Example: ["PERSONAL_DETAILS","DOCUMENT","SELFIE"]
Response
application/json
{ "paymentReady": false, "requirements": [ "PERSONAL_DETAILS", "DOCUMENT", "SELFIE" ] }

Limits

Check payment method/customer limits

Operations