---
title: "Create a headless offramp order"
method: POST
path: "/crypto/order/headless/offramp"
tags: ["Headless"]
---

# Create a headless offramp order

`POST /crypto/order/headless/offramp`

Creates a headless offramp order. Caller passes customer + provider + source crypto + fiat payout method and receives a provider-issued wallet address to send cryptocurrency to.

## Headers

- `X-Idempotency-Key` string, uuid

## Request body

- HeadlessOrderOfframpRequest — Request to create a headless offramp order
  - `customerId` string, required — Customer id
  - `destinationCurrencyCode` string, required — Destination fiat currency code
  - `externalSubaccountCustomerId` string — Optional external identifier for the sub-account customer this transaction belongs to. Used for tracking when multiple businesses operate under one Meld account. A sub-account customer must be created first before it can be referenced.
  - `fiatPayoutMethod` FiatPayoutMethod, required — Payout method for offramp
    - `details` union, required — Payout method details
      - object — Payout method details for ACH / PAYOUT_TO_BANK / NG_BANK_TRANSFER / ZA_BANK_TRANSFER
        - `bankName` string — Bank's name
        - `accountType` string, required — Bank account type
        - `routingNumber` string, required — Bank routing number
        - `accountNumber` string, required — Bank account number
        - `beneficiaryAddress` Address, required — Address information
          - `city` string, required — City
          - `country` string, required — Two-letter country code (ISO 3166-1 alpha-2)
          - `postalCode` string, required — Postal code
          - `state` string — State
          - `streetLineOne` string, required — Street line 1
          - `streetLineTwo` string — Street line 2
        - `bankAddress` Address, required — Address information
          - `city` string, required — City
          - `country` string, required — Two-letter country code (ISO 3166-1 alpha-2)
          - `postalCode` string, required — Postal code
          - `state` string — State
          - `streetLineOne` string, required — Street line 1
          - `streetLineTwo` string — Street line 2
      - object — Payout method details for MOBILE_MONEY
        - `phoneNumber` string, required — Customer phone number
      - object — Payout method details for SEPA
        - `iban` string, required — IBAN
    - `owner` string, required — Account owner's first and last name
    - `type` 'PAYOUT_TO_BANK' | 'ACH' | 'SEPA' | 'MOBILE_MONEY' | 'NG_BANK_TRANSFER' | 'ZA_BANK_TRANSFER', required — Fiat Payout method type
  - `serviceProvider` 'NOAH' | 'DUENETWORK' | 'BRALE' | 'YELLOWCARD', required — Service provider to use for this offramp order
  - `sourceAmount` number, required — Source amount in cryptocurrency
  - `sourceCurrencyCode` string, required — Source cryptocurrency code
  - `sourceWalletAddress` string, required — Source wallet address to send cryptocurrency from
  - `subaccountCustomerId` string — Optional Meld customer id used to track the business sub-account this transaction belongs to when multiple businesses operate under one Meld account.

## Response `201`

Headless offramp order created

## Other responses

- `400` — Bad Request : check request values and format
- `401` — Invalid credentials
- `403` — Unauthenticated or authenticated with insufficient access
- `500` — Internal Error

---

[API](https://skmtc.net/meld/apis/bank-linking.md) · [All operations](https://skmtc.net/meld/apis/bank-linking/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/meld/bank-linking/revisions/818d6079a611/schema)
