> ## Documentation Index
> Fetch the complete documentation index at: https://guides.saber.money/llms.txt
> Use this file to discover all available pages before exploring further.

# Create External Sell

> Create an external crypto sell transaction that settles to fiat.

**Response field values**

| Field | Possible Values |
| --- | --- |
| `status` | `CREATED`, `PAYMENT_INITIATED`, `FUNDS_RECEIVED`, `COMPLETED`, `FAILED`, `REFUND_INITIATED`, `REFUND_COMPLETED`, `REFUND_FAILED`. Typically `CREATED` immediately after creation. Check status via [Get External Sell Transaction Details](/api-reference/offramp/from-external-wallet/get-external-sell-transaction-details) using `transaction_type=EXTERNAL_SELL`. |
| `failure_code`, `failure_desc` | Empty string until the transaction fails |
| `refund_wallet_address` | Defaults to `sender_wallet_address` when not provided |
| `refund_network` | Defaults to `network` when not provided |




## OpenAPI

````yaml openapi-v2.json POST /api/v2/wallet/transaction/crypto/sell
openapi: 3.1.0
info:
  title: Saber Money API (v2)
  version: v2
  description: >-
    ## Authentication


    There is no standalone API-key auth — every request must be **signed**. An
    API key by itself authenticates nothing. Each call requires four headers
    together: `X-Api-Key` (your key), `X-Signature` (HMAC-SHA256 of `apiKey +
    timestamp` — or `apiKey + timestamp + userId` when `X-User-Id` is required —
    keyed with your API secret), `X-Timestamp` (unix seconds), and
    `X-Request-Id` (any unique string per request). The signature must be
    computed by a client script; there is no way to derive it by hand. Use the
    HMAC Generator flow to compute valid values for manual testing.


    ## Common Authentication Errors


    - **Invalid Client ID**: {"error_code":6092,"message":"X-Client-Id
    invalid","success":false}

    - **Invalid Secret**: {"error_code":6090,"message":"invalid
    secret","success":false}

    - **Timestamp (Older than 10 secs)**:
    {"errors":{"error_code":6093,"text":"timestamp expired"},"success":false}
servers:
  - url: https://api.saber.money
security: []
paths:
  /api/v2/wallet/transaction/crypto/sell:
    post:
      tags:
        - Offramp
      summary: Create External Sell
      description: >
        Create an external crypto sell transaction that settles to fiat.


        **Response field values**


        | Field | Possible Values |

        | --- | --- |

        | `status` | `CREATED`, `PAYMENT_INITIATED`, `FUNDS_RECEIVED`,
        `COMPLETED`, `FAILED`, `REFUND_INITIATED`, `REFUND_COMPLETED`,
        `REFUND_FAILED`. Typically `CREATED` immediately after creation. Check
        status via [Get External Sell Transaction
        Details](/api-reference/offramp/from-external-wallet/get-external-sell-transaction-details)
        using `transaction_type=EXTERNAL_SELL`. |

        | `failure_code`, `failure_desc` | Empty string until the transaction
        fails |

        | `refund_wallet_address` | Defaults to `sender_wallet_address` when not
        provided |

        | `refund_network` | Defaults to `network` when not provided |
      operationId: create-external-sell-transaction-v2
      parameters:
        - name: X-Api-Key
          in: header
          required: true
          description: Your API key (configured in credentials)
          schema:
            type: string
        - name: X-Signature
          in: header
          required: true
          description: >-
            HMAC-SHA256 signature (auto-generated) To test manually: HMAC-SHA256
            of `apiKey + timestamp` (or `apiKey + timestamp + userId` when
            X-User-Id is required), keyed with your API secret. The HMAC
            Generator flow computes this for you.
          schema:
            type: string
        - name: X-Timestamp
          in: header
          required: true
          description: >-
            Unix timestamp in seconds (auto-generated) Unix seconds, e.g.
            `Math.floor(Date.now() / 1000)`. Must match the timestamp used in
            the X-Signature computation.
          schema:
            type: string
        - name: X-Request-Id
          in: header
          required: true
          description: >-
            Unique request identifier (auto-generated) Any unique string per
            request, e.g. a UUID.
          schema:
            type: string
        - name: X-User-Id
          in: header
          required: true
          description: User UUID (set above)
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                payment_method:
                  type: string
                  description: Payout or payment method.
                network:
                  type: string
                  description: Sender network.
                destination_instrument_id:
                  type: string
                  description: Fiat destination instrument.
                quote_id:
                  type: string
                  description: Quote UUID.
                sender_wallet_address:
                  type: string
                  description: Sender or funding wallet address.
                refund_wallet_address:
                  type: string
                  description: >-
                    Refund wallet address. Crypto is returned here (minus
                    network fee) if the transaction fails.
                refund_network:
                  type: string
                  description: Refund network. Defaults to the sender network when omitted.
                remarks:
                  type: string
                  description: Optional note.
                is_first_party:
                  type: boolean
                  description: Whether the transaction is a first-party transfer.
                tag:
                  type: string
                  description: >-
                    Memo/tag for the sender deposit on tag-based networks (e.g.
                    XRP, XLM, TON).
                refund_tag:
                  type: string
                  description: >-
                    Memo/tag for the refund address on tag-based networks.
                    Counterpart of `refund_network`.
                reason_code:
                  type: string
                  description: >-
                    Optional semantic reason code. When provided it must be an
                    allowed value; an invalid value is rejected with error
                    403006.
              required:
                - payment_method
                - network
                - destination_instrument_id
                - quote_id
                - sender_wallet_address
                - refund_wallet_address
            example:
              payment_method: bank_transfer
              destination_instrument_id: 3e8be4b2-5f8a-47be-a645-4175b0f57089
              quote_id: 7cd89b3c-7c76-48ad-9f2a-b0a7f871c4a7
              sender_wallet_address: 1FfmbHfnpaZjKFvyi1okTjJJusN455paPH
              refund_wallet_address: 1FfmbHfnpaZjKFvyi1okTjJJusN455paPH
              network: BSC
              refund_network: BSC
              remarks: customer payout
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                      status:
                        type: string
                        enum:
                          - CREATED
                          - PAYMENT_INITIATED
                          - FUNDS_RECEIVED
                          - COMPLETED
                          - FAILED
                          - REFUND_INITIATED
                          - REFUND_COMPLETED
                          - REFUND_FAILED
                          - transaction_type=EXTERNAL_SELL
                      fiat_symbol:
                        type: string
                      crypto_symbol:
                        type: string
                      fiat_amount:
                        type: number
                      crypto_amount:
                        type: number
                      payment_method:
                        type: string
                      deposit_crypto_address:
                        type: string
                      deposit_network:
                        type: string
                      destination_instrument_id:
                        type: string
                      refund_wallet_address:
                        type: string
                        enum:
                          - sender_wallet_address
                      refund_network:
                        type: string
                        enum:
                          - network
                      refund_tag:
                        type: string
                      sender_wallet_address:
                        type: string
                      created_at:
                        type: integer
                      updated_at:
                        type: integer
              example:
                success: true
                data:
                  id: 01992e48-db7d-7c55-bb87-6f4e1abf5fe3
                  status: CREATED
                  fiat_symbol: INR
                  crypto_symbol: USDT
                  fiat_amount: 55.38
                  crypto_amount: 0.695712
                  payment_method: bank_transfer
                  deposit_crypto_address: '0xabcdef1234567890abcdef1234567890abcdef12'
                  deposit_network: BSC
                  destination_instrument_id: a4680ba9-5ac6-4629-9493-2a88b160cd33
                  refund_wallet_address: '0x318d2aae4c99c2e74f7b5949fa1c34df837789b8'
                  refund_network: ''
                  refund_tag: ''
                  sender_wallet_address: '0x318d2aae4c99c2e74f7b5949fa1c34df837789b8'
                  created_at: 1757418150839
                  updated_at: 1757418150841
        '400':
          description: >-
            `400001`: missing or invalid parameters; `403001`: invalid request;
            `402005`: quote invalid
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - false
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        code:
                          type:
                            - integer
                            - string
                        text:
                          type: string
              example:
                success: false
                errors:
                  - code: 400001
                    text: missing or invalid parameters
        '403':
          description: >-
            `403003`: invalid sender or refund address; `404001`: limits
            validation failed for the transaction
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - false
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        code:
                          type:
                            - integer
                            - string
                        text:
                          type: string
              example:
                success: false
                errors:
                  - code: 400001
                    text: missing or invalid parameters
        '409':
          description: '`403004`: reference uuid already exists or is invalid'
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - false
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        code:
                          type:
                            - integer
                            - string
                        text:
                          type: string
              example:
                success: false
                errors:
                  - code: 400001
                    text: missing or invalid parameters
        '500':
          description: '`499999`: Something went wrong!'
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - false
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        code:
                          type:
                            - integer
                            - string
                        text:
                          type: string
              example:
                success: false
                errors:
                  - code: 400001
                    text: missing or invalid parameters

````

## Related topics

- [Get External Sell Transaction Details](/api-reference/offramp/from-external-wallet/get-external-sell-transaction-details.md)
- [Get Sell Transaction Details](/api-reference/offramp/from-user-wallet/get-sell-transaction-details.md)
- [Get Pool Sell Transaction Details](/api-reference/offramp/from-pool-wallet/get-pool-sell-transaction-details.md)
- [Get Crypto Deposit Transaction Details](/api-reference/wallet-operations/crypto-deposit/get-crypto-deposit-transaction-details.md)
- [Get Pool Buy Transaction Details](/api-reference/onramp/to-pool-wallet/get-pool-buy-transaction-details.md)
