Skip to content

Create a sell order

Request

Allows your customer to create a sell crypto order with Banxa. Upon success, the response will contain a checkout URL which will be unique for the order. The customer will be redirected to this URL to complete the checkout process, which will expire after 1 minute if a redirect does not occur.

Path
partnerstringrequired

This is the partner code provided to you during onboarding. e.g. metamask.

Headers
Acceptstring
Default:"application/json"
x-api-keystring

This is the API Key that has been provided to you during onboarding.

Bodyapplication/json
paymentMethodIdstring

The payment method chosen by the user.

cryptostringrequired

This is the crypto type the customer wants to sell.

blockchainstring

This is the blockchain that is associated with the crypto token. If none is provided, then a default will be used.

fiatstringrequired

This is the fiat type the customer wants to sell.

fiatAmountstringrequired

The amount of fiat the user wants to sell. Either fiatAmount OR cryptoAmount must be provided. If both are provided, then cryptoAmount will be used.

cryptoAmountstringrequired

The amount of crypto the user wants to sell. Either fiatAmount OR cryptoAmount must be provided. If both are provided, then cryptoAmount will be used.

walletAddressstringrequired

The wallet address that the user will use to send the crypto. This will also be the wallet address used for refunds if a refund is necessary.

redirectUrlstringrequired

The URL the user will be redirected to after the buy flow has been completed. If the case of an order failure or cancellation, then the returnUrl will be appended with the status e.g. /?status=failure, /?status=cancel

subPartnerIdstring

Your defined ID for associating an order with. e.g. you may use this to differentiate between channels such as Exchange, Wallet, Web, Mobile.

metadatastring

Free form string that you can use to send us any information that will be returned in the Get Orders endpoint

externalCustomerIdstringrequired

Unique customer reference provided by you. Used to check whether customer has completed KYC.

externalOrderIdstring

An order ID that you may define and will be returned to you in a Get Order call.

curl -i -X POST \
  'https://docs.banxa.com/_mock/products/hosted-checkout/openapi/{partner}/v2/sell' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: string' \
  -d '{
    "paymentMethodId": "string",
    "crypto": "string",
    "blockchain": "string",
    "fiat": "string",
    "fiatAmount": "string",
    "cryptoAmount": "string",
    "walletAddress": "string",
    "redirectUrl": "string",
    "subPartnerId": "string",
    "metadata": "string",
    "externalCustomerId": "string",
    "externalOrderId": "string"
  }'

Responses

201

Bodyapplication/json
Response
"{\n    \"checkoutUrl\": \"https://partner.banxa.com/portal?expires=xxx&oid=xxx&signature=xxx\",\n    \"id\": \"191fa5b4b1f45e1cf784422e09317d56\", // This is the Banxa defined Order ID\n    \"externalOrderId\": \"a4b427ccb872a1744b317456bd0d165f\", // If not provided, then this value will be null\n    \"externalCustomerId\": \"awasdf-fg34fg-34hhsdf\",\n    \"fiat\": \"CAD\",\n    \"fiatAmount\": \"1000.00\",\n    \"crypto\": \"USDC\",\n    \"cryptoAmount\": null, // If not provided, then this value will be null.\n    \"blockchain\": \"TRON\"\n}"