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

# OTC Order Status Update Notification

> OTC order result callback sent to the merchant callback URL for both on-ramp and off-ramp flows.

## Overview

This page documents `webhook otcCallbackWebhook`. The full schema, parameters, and examples are rendered from the linked OpenAPI or webhook definition above.

Use this webhook to receive OTC on-ramp and off-ramp order status change notifications.

## Notes

* Use `bizId` or `clientOrderId` for idempotency after parsing `data`.
* Signature verification, retries, parsing `data`, and the success response are covered in [Notifications Overview](/api-reference/version/100/en/common/asyncNotification); see [Security and Signature](/api-reference/version/100/en/common/securityAndSignature) for signing rules.

## Trigger scenarios

* GatePay sends notifications when OTC on-ramp or off-ramp order status changes
* If delivery fails, GatePay retries according to the schedule in [Notifications overview](/api-reference/version/100/en/common/asyncNotification)

## bizStatus values

| Value                 | Description                    |
| --------------------- | ------------------------------ |
| `RECHARGE_SUCCESS`    | OTC on-ramp succeeded          |
| `RECHARGE_FAIL`       | OTC on-ramp failed             |
| `WITHDRAW_DISPATCHED` | OTC off-ramp payout dispatched |
| `WITHDRAW_SUCCESS`    | OTC off-ramp succeeded         |
| `WITHDRAW_FAIL`       | OTC off-ramp failed            |

## Message Structure

| Field       | Type   | Description                                     |
| ----------- | ------ | ----------------------------------------------- |
| `bizType`   | string | Always `OTC`                                    |
| `bizId`     | string | OTC order ID                                    |
| `bizStatus` | string | Order status, for example `WITHDRAW_DISPATCHED` |
| `clientId`  | string | Merchant `client_id`                            |
| `data`      | object | Order details object (**not a JSON string**)    |

### data Field Reference

| Field             | Type   | Description                                                |
| ----------------- | ------ | ---------------------------------------------------------- |
| `type`            | string | Trade direction, for example `BUY`, `SELL`                 |
| `orderId`         | string | Platform order ID                                          |
| `clientOrderId`   | string | Merchant-side order ID                                     |
| `fiatCurrency`    | string | Fiat currency                                              |
| `fiatAmount`      | string | Fiat amount                                                |
| `cryptoCurrency`  | string | Cryptocurrency                                             |
| `cryptoAmount`    | string | Cryptocurrency amount                                      |
| `fiatRate`        | string | Exchange rate                                              |
| `finalFiatAmount` | string | Final fiat amount                                          |
| `updateTime`      | string | Update time (millisecond timestamp string)                 |
| `bankSlipInfo`    | string | Bank receipt / slip URL (may appear in off-ramp scenarios) |
| `errMsg`          | string | Error message (empty on success)                           |
| `promoCode`       | string | Promo code (if any)                                        |

## Callback Example (off-ramp `WITHDRAW_DISPATCHED`)

```json theme={null}
{
  "bizType": "OTC",
  "bizId": "79550727153516602",
  "bizStatus": "WITHDRAW_DISPATCHED",
  "clientId": "UGxnuTtJHDuXPjYm",
  "data": {
    "type": "SELL",
    "errMsg": "",
    "orderId": "79550727153516602",
    "fiatRate": "1",
    "promoCode": "",
    "fiatAmount": "124710",
    "updateTime": "1779958032486",
    "bankSlipInfo": "https://gateio-payments.s3.ap-northeast-1.amazonaws.com/otc_trade_file/otc-trade-record-file43255011-d96f549e1869e47908db891fb512c308.pdf",
    "cryptoAmount": "124710",
    "fiatCurrency": "USD",
    "clientOrderId": "PCC101800177995803114487146200",
    "cryptoCurrency": "USDT",
    "finalFiatAmount": "124710"
  }
}
```

## Callback example (on-ramp `RECHARGE_SUCCESS`)

```json theme={null}
{
  "bizType": "OTC",
  "bizId": "79550727153516601",
  "bizStatus": "RECHARGE_SUCCESS",
  "clientId": "UGxnuTtJHDuXPjYm",
  "data": "{\"type\":\"BUY\",\"errMsg\":\"\",\"orderId\":\"79550727153516601\",\"fiatRate\":\"1\",\"promoCode\":\"\",\"fiatAmount\":\"10000\",\"updateTime\":\"1779958032486\",\"cryptoAmount\":\"10000\",\"fiatCurrency\":\"USD\",\"clientOrderId\":\"PCC101800177995803114487146201\",\"cryptoCurrency\":\"USDT\",\"finalFiatAmount\":\"10000\"}"
}
```


## OpenAPI

````yaml /api-reference/version/100/en/openapi/otc-fiat-openapi.json webhook otcCallbackWebhook
openapi: 3.1.0
info:
  title: GatePay OTC Fiat API
  description: Reference for OTC fiat withdrawal and deposit APIs.
  version: 2.1.0
servers:
  - url: https://openplatform.gateapi.io
security: []
paths: {}

````