---
updatedAt: 2026-05-28T06:28:46.000Z
agentTools:
  projectIndex: https://docs.straitsx.com/llms.txt
---

# Create a blockchain withdrawal

[Available in Production environment] Send funds to your verified blockchain addresses with your StraitsX Business Account

> 📘
>
> When the status of the blockchain withdrawal is updated, a callback will be sent to the URL you configured in your business dashboard. [Learn more about how to configure your callback](https://docs.straitsx.com/docs/callback-configuration)

<details>
  <summary> Sample Callback Payload for Blockchain Withdrawal </summary>
  <hr />

```json Callback
{
  "data": {
    "attributes": {
      "amount": 2.0,
      "blockchain": "XSGD_MATIC",
      "created_at": "2024-06-11T04:48:39.912Z",
      "idempotency_id": "testing",
      "network": "Polygon",
      "network_fees": 0.02,
      "status": "completed",
      "token": "xsgd",
      "total_amount": 2.02,
      "transaction_hash": "0x658043f80b1684cce02a0f4c0ed5449589eef495492bae5a849e47e80c46dd4d",
      "transaction_source": "0x4fd0f684dcf7c6c862114db8cebfe8bf6bb175c3"
    },
    "id": "contract_7afa75105cad43579f9589ebe30b6784",
    "type": "stablecoin_withdraw_contract"
  }
}
```

| Parameter            | Description                                                   | Sample Value                                                       |
| :------------------- | :------------------------------------------------------------ | :----------------------------------------------------------------- |
| `amount`             | Amount transferred                                            | 2.0                                                                |
| `blockchain`         | Blockchain (combination of token & network)                   | XSGD\_MATIC                                                        |
| `created_at`         | Datetime of creation                                          | 2024-06-11T04%3A48%3A39.912Z                                       |
| `idempotency_id`     | Unique idempotency id provided when triggering the withdrawal | testing                                                            |
| `network`            | Network of the blockchain withdrawal                          | Polygon                                                            |
| `network_fees`       | Network fees incurred                                         | 0.02                                                               |
| `status`             | Transaction status: `completed/pending/cancelled`             | completed                                                          |
| `token`              | Token of the blockchain withdrawal                            | xsgd                                                               |
| `total_amount`       | Total amount of the transaction                               | 2.02                                                               |
| `transaction_hash`   | Transaction hash                                              | 0x658043f80b1684cce02a0f4c0ed5449589eef495492bae5a849e47e80c46dd4d |
| `transaction_source` | Receiving blockchain address                                  | 0x4fd0f684dcf7c6c862114db8cebfe8bf6bb175c3                         |
| `id`                 | Contract ID of the transaction                                | contract\_7afa75105cad43579f9589ebe30b6784                         |
| `type`               | Transaction type                                              | stablecoin\_withdraw\_contract                                     |

</details>

<hr style={{ borderStyle: "solid" }} />

# OpenAPI definition

```json
{
  "openapi": "3.1.0",
  "info": {
    "title": "straitsx-sandbox-base-url",
    "version": "1.7.0"
  },
  "servers": [
    {
      "url": "https://api-sandbox.straitsx.com/v1"
    }
  ],
  "components": {
    "securitySchemes": {
      "sec0": {
        "type": "apiKey",
        "in": "header",
        "name": "X-XFERS-APP-API-KEY"
      }
    }
  },
  "security": [
    {
      "sec0": []
    }
  ],
  "paths": {
    "/blockchain_transfer/withdrawals": {
      "post": {
        "summary": "Create a blockchain withdrawal",
        "description": "[Available in Production environment] Send funds to your verified blockchain addresses with your StraitsX Business Account",
        "operationId": "create-a-blockchain-transfer-payout",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "address_id",
                  "amount",
                  "idempotency_id"
                ],
                "properties": {
                  "address_id": {
                    "type": "string",
                    "description": "Address ID is retrieved from the response of Get a list of blockchain addresses API<br>Regex: `/^(?!\\s*$).+$/`"
                  },
                  "amount": {
                    "type": "number",
                    "description": "Transaction amount (Must be a positive float up to 2 d.p.)<br>Regex: `/^(?!0(\\.0+)?$)([1-9]\\d*(\\.\\d+)?|0\\.\\d*[1-9]\\d*)$/`",
                    "format": "float"
                  },
                  "idempotency_id": {
                    "type": "string",
                    "description": "Unique reference number provided by you to prevent double transaction, this cannot be repeated.<br>Regex: `/^\\s*.{1,191}\\s*$/`"
                  },
                  "wallet_source": {
                    "type": "string",
                    "description": "Which source of funds the deduction will be made from. If no value is specified for this field, XSGD and XUSD withdrawals will, by default, be deducted from the XSGD and XUSD balances respectively.",
                    "enum": [
                      "sgd",
                      "usd",
                      "xsgd",
                      "xusd"
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Payout Pending": {
                    "value": "[\n  {\n    \"data\": {\n        \"id\": \"contract_42ecd1af41924578a71c1a5e75081dbe\",\n        \"type\": \"stablecoin_withdraw_contract\",\n        \"attributes\": {\n            \"transaction_hash\": \"pending\",\n            \"amount\": \"$13.00\",\n            \"network_fees\": \"$3.00\",\n            \"total_amount\": \"$16.00\",\n            \"transaction_source\": \"0x4d9819943042ccb61d73690008193b25b6167e33\",\n            \"status\": \"pending\",\n            \"idempotency_id\": \"unique_trxn_id\",\n            \"network\": \"Polygon\",\n            \"token\": \"xsgd\",\n            \"created_at\": \"2024-02-01T06:56:16.160Z\"\n        }\n   \t }\n\t}\n]"
                  }
                },
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "data": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string",
                            "example": "contract_42ecd1af41924578a71c1a5e75081dbe",
                            "description": "Blockchain withdrawal contract ID."
                          },
                          "type": {
                            "type": "string",
                            "example": "stablecoin_withdraw_contract",
                            "description": "Request type."
                          },
                          "attributes": {
                            "type": "object",
                            "properties": {
                              "transaction_hash": {
                                "type": "string",
                                "example": "pending",
                                "description": "Blockchain transaction hash. Returns `pending` until the transaction is broadcasted and confirmed on-chain."
                              },
                              "amount": {
                                "type": "string",
                                "example": "$13.00",
                                "description": "Transaction amount."
                              },
                              "network_fees": {
                                "type": "string",
                                "example": "$3.00",
                                "description": "Blockchain network fee for the transaction."
                              },
                              "total_amount": {
                                "type": "string",
                                "example": "$16.00",
                                "description": "Total amount deducted (transfer amount + network fees)."
                              },
                              "transaction_source": {
                                "type": "string",
                                "example": "0x4d9819943042ccb61d73690008193b25b6167e33",
                                "description": "Wallet address from which the tokens are sent."
                              },
                              "status": {
                                "type": "string",
                                "example": "pending",
                                "description": "Transaction status."
                              },
                              "idempotency_id": {
                                "type": "string",
                                "example": "unique_trxn_id",
                                "description": "Idempotency ID for the transaction."
                              },
                              "network": {
                                "type": "string",
                                "example": "Polygon",
                                "description": "The blockchain network where the address exists."
                              },
                              "token": {
                                "type": "string",
                                "example": "xsgd",
                                "description": "Token being transferred."
                              },
                              "created_at": {
                                "type": "string",
                                "example": "2024-02-01T06:56:16.160Z",
                                "description": "Timestamp when the blockchain withdrawal was created."
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400",
            "content": {
              "application/json": {
                "examples": {
                  "Invalid Address": {
                    "value": {
                      "error": "Address is invalid",
                      "error_code": "XFE902",
                      "error_handling": "Use GET {{base-api-url}}api/v3/blockchain_transfer/addresses to get the valid address."
                    },
                    "summary": "Invalid Address"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "description": "Error message."
                    },
                    "error_code": {
                      "type": "string",
                      "description": "Error code."
                    },
                    "error_handling": {
                      "type": "string",
                      "description": "Error handling."
                    }
                  },
                  "required": [
                    "error"
                  ]
                }
              }
            }
          }
        },
        "deprecated": false,
        "parameters": [
          {
            "name": "X-XFERS-APP-API-KEY",
            "in": "header",
            "description": "You can retrieve this from your Dashboard Developer Tools.<br><br><strong>Note:</strong> The `X-XFERS-APP-API-KEY` is a mandatory header for all authentication methods, including standard API key usage and HTTP Request Signing mode.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-PUBLIC-KEY-ID",
            "in": "header",
            "description": "The Key ID, can be retrieved from your StraitsX Dashboard.<br><br><strong>Note:</strong> This header attribute is required when HTTP Request Signing is enabled for your account.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-TIMESTAMP",
            "in": "header",
            "description": "Current Unix epoch time in seconds. Must be within ±300 seconds of server time.<br><br><strong>Note:</strong> This header attribute is required when HTTP Request Signing is enabled for your account.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-NONCE",
            "in": "header",
            "description": "A unique UUID string per request, used for replay protection. Must not be reused within the timestamp window.<br>Regex: `/\\A[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\\z/i`<br><br><strong>Note:</strong> This header attribute is required when HTTP Request Signing is enabled for your account.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-SIGNATURE",
            "in": "header",
            "description": "Base64-encoded digital signature of the canonical request string.<br><br><strong>Note:</strong> This header attribute is required when HTTP Request Signing is enabled for your account.",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    }
  },
  "x-readme": {
    "headers": [],
    "explorer-enabled": true,
    "proxy-enabled": true
  },
  "x-readme-fauxas": true
}
```