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

# Webhooks

> Webhook payloads for recurring debit, PACB verification, and KYC verification.

Partner will receive events on their configured server URL. These webhooks are POST requests originating from our server. Authorization headers will also be sent so the partner can authenticate that the request was created by the original web server only.

Merchants will configure this URL in the panel to start receiving webhook events.

For documentation and reading purposes, [https://configuredURLFromBroker.com](https://configuredURLFromBroker.com) URL is used. But, in the production environment, the configured URL of the partner will be used.

**Callback Response**

Partners should respond to the callback with a JSON response `{"ack": true}` and an HTTP status code `200`. No other response body or HTTP status code will be treated as the acknowledgement of the callback.\
If the merchant fails to send the response, we will send the callback again. The maximum number of attempts by us will be 3. If the partner fails to acknowledge the callback in three attempts, then there will be no subsequent callback. The partner can resend the callback from the partner dashboard as well.

**Signature Verification**

We use the same method to create the signature that is used in the authorization headers.

### **POST Session**

`{{callbackURL}}`

This webhook event is sent to the configured partner URL when the session has a status change. Session status can be **`CREATED`** , **`STARTED`**, **`CLOSED`**, **`EXPIRED`**, **`FAILED`**.

**HEADERS**

| **Header** | **Value** |
| - | - |
| Content-Type | `application/json` |
| x-api-key | `tb_test_M5nAR3Ck1YpesLiTjYbvDqJKuYPSbRxT` |
| x-signature | `•••••••` |

**Body** raw

```javascript theme={null}
{
    "callbackType": "BILLINGSESSION",
    "status": "",
    "referenceId": "",
    "tbId": "",
    "quoteAmount": "",
    "timestamp": "",
    "attempt": 1,
    "param1": "",
    "param2": "",
    "param3": ""
}
```

**Example Request**

**curl**

```bash Started theme={null}
curl --location -g '{{callbackURL}}' \
--header 'Content-Type: application/json' \
--header 'x-api-key: tb_test_M5nAR3Ck1YpesLiTjYbvDqJKuYPSbRxT' \
--header 'x-signature: •••••••' \
--data '{
    "callbackType": "BILLINGSESSION",
    "status": "STARTED",
    "referenceId": "1708001715",
    "tbId": "65ce09b363f60144efcfbed1",
    "quoteAmount": "199",
    "timestamp": "2024-02-15T12:55:29.391Z",
    "param1": "paramValue1",
    "param2": "paramValue2",
    "param3": "paramValue3"
}'
```

```bash Rejected theme={null}
curl --location -g '{{callbackURL}}' \
--header 'Content-Type: application/json' \
--header 'x-api-key: tb_test_M5nAR3Ck1YpesLiTjYbvDqJKuYPSbRxT' \
--header 'x-signature: •••••••' \
--data '{
    "callbackType": "BILLINGSESSION",
    "status": "REJECTED",
    "referenceId": "1708001715",
    "tbId": "65ce09b363f60144efcfbed1",
    "quoteAmount": "199",
    "timestamp": "2024-02-15T12:55:29.391Z",
    "param1": "paramValue1",

    "param2": "paramValue2",
    "param3": "paramValue3"
}'
```

```bash Closed theme={null}
curl --location -g '{{callbackURL}}' \
--header 'Content-Type: application/json' \
--header 'x-api-key: tb_test_M5nAR3Ck1YpesLiTjYbvDqJKuYPSbRxT' \
--header 'x-signature: •••••••' \
--data '{
    "callbackType": "BILLINGSESSION",
    "status": "CLOSED",
    "referenceId": "1708001715",
    "tbId": "65ce09b363f60144efcfbed1",
    "payMethod": "NB",
    "quoteAmount": "199",
    "timestamp": "2024-02-15T12:56:08.810Z",
    "totalTax": "35.81",
    "network": "State bank of India",
    "code": 1033,
    "param1": "paramValue1",
    "param2": "paramValue2",
    "param3": "paramValue3"
}'
```

***

### **POST Transaction**

`{{callbackURL}}`

This webhook event is sent to the configured partner URL when the transaction has a status change. Session status can be **`PENDING`**, **`PROCESSING`**, **`SUCCESS`**, **`FAILED`**.

**HEADERS**

| **Header** | **Value** |
| - | - |
| Content-Type | `application/json` |
| x-api-key | `tb_test_M5nAR3Ck1YpesLiTjYbvDqJKuYPSbRxT` |
| x-signature | `•••••••` |

**Body** raw

```javascript theme={null}
{
    "callbackType": "DEPOSIT",
    "status": "",
    "referenceId": "",
    "tbId": "",
    "payMethod": "",
    "quoteAmount": "",
    "settleQuoteAmount": "",
    "timestamp": "",
    "param1": "",
    "param2": "",
    "param3": "",
}
```

**Example Request**

**curl**

```bash Success theme={null}
curl --location -g '{{callbackURL}}' \
--header 'Content-Type: application/json' \
--header 'x-api-key: tb_test_M5nAR3Ck1YpesLiTjYbvDqJKuYPSbRxT' \
--header 'x-signature: •••••••' \
--data '{
    "callbackType": "DEPOSIT",
    "status": "SUCCESS",
    "referenceId": "test-tsp-0047",
    "tbId": "68cc61b6b8814a093b6dfe19",
    "payMethod": "UPI",
    "quoteAmount": "100",
    "settleQuoteAmount": "98",
    "timestamp": "2025-09-18T19:48:46.741Z",
    "param1": "",
    "param2": "",
    "param3": "",
    "rrn": "1758224926335"
}'
```

```bash Failure theme={null}
curl --location -g '{{callbackURL}}' \
--header 'Content-Type: application/json' \
--header 'x-api-key: tb_test_M5nAR3Ck1YpesLiTjYbvDqJKuYPSbRxT' \
--header 'x-signature: •••••••' \
--data '{
    "callbackType": "DEPOSIT",
    "status": "FAILED",
    "referenceId": "test-tsp-0047",
    "tbId": "68cc61b6b8814a093b6dfe19",
    "payMethod": "UPI",
    "quoteAmount": "100",
    "settleQuoteAmount": "98",
    "timestamp": "2025-09-18T19:48:46.741Z",
    "param1": "",
    "param2": "",
    "param3": "",
    "rrn": ""
}'
```

### **POST Subscription**

`{{callbackURL}}`

This webhook event is sent to the configured partner URL when the subscription has a status change. Subscription status can be **`PENDING`**, **`PENDING_EXPIRED`**, **`TRIAL`**, **`ACTIVE`**, **`PAUSED`**, **`EXPIRED`**, **`CANCELLED`**, **`FAILED`**.

**HEADERS**

| **Header** | **Value** |
| - | - |
| Content-Type | `application/json` |
| x-api-key | `tb_test_M5nAR3Ck1YpesLiTjYbvDqJKuYPSbRxT` |
| x-signature | `•••••••` |

**Body** raw (json)

**json**

```json theme={null}
{
    "callbackType": "SUBSCRIPTION",
    "status": "",
    "quoteAmount": "",
    "tbId": "",
    "timestamp": "",
    "currentPeriodStart": "",
    "currentPeriodEnd": ""
}
```

**Example Request**

**Curl**

```bash Active theme={null}
curl --location -g '{{callbackURL}}' \
--header 'Content-Type: application/json' \
--header 'x-api-key: tb_test_M5nAR3Ck1YpesLiTjYbvDqJKuYPSbRxT' \
--header 'x-signature: •••••••' \
--data '{
    "callbackType": "SUBSCRIPTION",
    "status": "ACTIVE",
    "quoteAmount": "48",
    "tbId": "667946642f968332ee9a68e5",
    "timestamp": "2024-08-01T18:57:34.872Z",
    "currentPeriodStart": "2024-08-01T13:00:00.000Z",
    "currentPeriodEnd": "2024-08-02T13:00:00.000Z"
}'
```

```bash Paused theme={null}
curl --location -g '{{callbackURL}}' \
--header 'Content-Type: application/json' \
--header 'x-api-key: tb_test_M5nAR3Ck1YpesLiTjYbvDqJKuYPSbRxT' \
--header 'x-signature: •••••••' \
--data '{
    "callbackType": "SUBSCRIPTION",
    "status": "PAUSED",
    "quoteAmount": "10",
    "tbId": "66e968ff5262d1053ac78d31",
    "timestamp": "2024-09-17T11:44:23.396Z",
    "currentPeriodStart": "2024-09-16T13:00:00.000Z",
    "currentPeriodEnd": "2024-09-23T13:00:00.000Z"
}
'
```

```bash Cancelled theme={null}
curl --location -g '{{callbackURL}}' \
--header 'Content-Type: application/json' \
--header 'x-api-key: tb_test_M5nAR3Ck1YpesLiTjYbvDqJKuYPSbRxT' \
--header 'x-signature: •••••••' \
--data '{
    "callbackType": "SUBSCRIPTION",
    "status": "CANCELLED",
    "quoteAmount": "10",
    "tbId": "66e96fcb5262d1053ac79365",
    "timestamp": "2024-09-17T12:05:30.480Z",
    "currentPeriodStart": "2024-09-16T13:00:00.000Z",
    "currentPeriodEnd": "2024-09-23T13:00:00.000Z"
}
'
```

```bash Started in Trial theme={null}
curl --location -g '{{callbackURL}}' \
--header 'Content-Type: application/json' \
--header 'x-api-key: tb_test_M5nAR3Ck1YpesLiTjYbvDqJKuYPSbRxT' \
--header 'x-signature: •••••••' \
--data '{
    "callbackType": "SUBSCRIPTION",
    "status": "TRIAL",
    "quoteAmount": "10",
    "tbId": "66eacaac977dc04da094e7a5",
    "timestamp": "2024-09-18T12:43:17.571Z",
    "currentPeriodStart": "2024-09-23T13:00:00.000Z",
    "currentPeriodEnd": "2024-09-30T13:00:00.000Z"
}'
```

***

### **POST Invoice**

`{{callbackURL}}`

This webhook is sent to the configured partner URL when an invoice is created or the status is changed. Invoice status can be **`DRAFT`** **`APPROVED`** **`DUE`** **`OVERDUE`** **`PAID`** **`UNPAID`** **`CANCELLED`** **`VOID`**

**HEADERS**

| **Header** | **Value** |
| - | - |
| Content-Type | `application/json` |
| x-api-key | `tb_test_M5nAR3Ck1YpesLiTjYbvDqJKuYPSbRxT` |
| x-signature | `•••••••` |

**Body** raw (json)

**json**

```json theme={null}
{
    "callbackType": "INVOICE",
    "status": "",
    "tbId": "",
    "quoteAmount": "",
    "timestamp": "",
    "issueDate": "",
    "dueDate": "",
    "serviceStart": "",
    "serviceEnd": "",
    "totalTax": ""

}
```

**Example Request**

**Curl**

```bash Invoice Billing Session Paid theme={null}
curl --location -g '{{callbackURL}}' \
--header 'Content-Type: application/json' \
--header 'x-api-key: tb_test_M5nAR3Ck1YpesLiTjYbvDqJKuYPSbRxT' \
--header 'x-signature: •••••••' \
--data '{
    "callbackType": "INVOICE",
    "status": "PAID",
    "tbId": "65ce09e93e6577476e6dd00a",
    "quoteAmount": "199",
    "timestamp": "2024-02-15T12:56:09.801Z",
    "issueDate": "2024-02-15T12:55:15.616Z",
    "dueDate": "2024-02-15T12:56:09.734Z",
    "serviceStart": "2024-02-15T12:55:15.616Z",
    "serviceEnd": "2024-02-15T12:55:15.616Z",
    "totalTax": "35.81",
    "billingSessionId": "65ce09b363f60144efcfbed1"
}'
```

```bash Draft Invoice theme={null}
curl --location -g '{{callbackURL}}' \
--header 'Content-Type: application/json' \
--header 'x-api-key: tb_test_M5nAR3Ck1YpesLiTjYbvDqJKuYPSbRxT' \
--header 'x-signature: •••••••' \
--data '{
    "callbackType": "INVOICE",
    "status": "PAID",
    "tbId": "65ce09e93e6577476e6dd00a",
    "quoteAmount": "199",
    "timestamp": "2024-02-15T12:56:09.801Z",
    "issueDate": "2024-02-15T12:55:15.616Z",
    "dueDate": "2024-02-15T12:56:09.734Z",
    "serviceStart": "2024-02-15T12:55:15.616Z",
    "serviceEnd": "2024-02-15T12:55:15.616Z",
    "totalTax": "35.81",
    "billingSessionId": "65ce09b363f60144efcfbed1"
}'
```

```bash Invoice Susbcription due theme={null}
curl --location -g '{{callbackURL}}' \
--header 'Content-Type: application/json' \
--header 'x-api-key: tb_test_M5nAR3Ck1YpesLiTjYbvDqJKuYPSbRxT' \
--header 'x-signature: •••••••' \
--data '{
    "callbackType": "INVOICE",
    "status": "DUE",
    "tbId": "66e6e158276467a619e77439",
    "quoteAmount": "10",
    "timestamp": "2024-09-17T11:38:33.572Z",
    "issueDate": "2024-09-15T13:30:00.244Z",
    "dueDate": "2024-09-18T13:30:00.244Z",
    "serviceStart": "2024-09-03T18:30:00.000Z",
    "serviceEnd": "2024-09-03T18:30:00.000Z",
    "totalTax": "1.8001",
    "param1": "",
    "param2": "",
    "param3": "",
    "subscriptionId": "66d6f2be1b1a8ecc351d8e59"
}'
```

```bash Invoice Subscription OVERDUE theme={null}
curl --location -g '{{callbackURL}}' \
--header 'Content-Type: application/json' \
--header 'x-api-key: tb_test_M5nAR3Ck1YpesLiTjYbvDqJKuYPSbRxT' \
--header 'x-signature: •••••••' \
--data '{
    "callbackType": "INVOICE",
    "status": "OVERDUE",
    "tbId": "66e573b8276467a619e760f9",
    "quoteAmount": "10",
    "timestamp": "2024-09-17T11:38:55.411Z",
    "issueDate": "2024-09-14T11:30:00.172Z",
    "dueDate": "2024-09-17T11:30:00.172Z",
    "serviceStart": "2024-09-03T18:30:00.000Z",
    "serviceEnd": "2024-09-03T18:30:00.000Z",
    "totalTax": "1.8001",
    "param1": "",
    "param2": "",
    "param3": "",
    "subscriptionId": "66d6f2be1b1a8ecc351d8e59"
}'
```

### **POST Credit Note**

`{{callbackURL}}`

This webhook is sent to the configured partner URL when a credit note is created. Credit Note status can only be **`APPROVED`**

**HEADERS**

| **Header** | **Value** |
| - | - |
| Content-Type | `application/json` |
| x-api-key | `tb_test_M5nAR3Ck1YpesLiTjYbvDqJKuYPSbRxT` |
| x-signature | `•••••••` |

**Body** raw (json)

```json theme={null}
{
    "callbackType": "CREDITNOTE",
    "status": "",
    "tbId": "",
    "quoteAmount": "",
    "timestamp": "",
    "issueDate": "",
    "dueDate": "",
    "serviceStart": "",
    "serviceEnd": "",
    "totalTax": "",
}
```

### POST Refund

`{{callbackURL}}`

This webhook is sent to the configured partner URL when a refund is initiated or the status is changed.

**HEADERS**

| **Header** | **Value** |
| - | - |
| Content-Type | `application/json` |
| x-api-key | `tb_test_M5nAR3Ck1YpesLiTjYbvDqJKuYPSbRxT` |
| x-signature | `•••••••` |

**Body** raw (json)

```json theme={null}
{
    "callbackType": "REFUND",
    "type": "REFUND",
    "status": "",
    "tbId": "",
    "qouteAmount": "",
    "timestamp": "",
    "invoiceId": "",
    "subscriptionId": "",
    "billingSessionId": ""
}
```

**Example Request**

**curl**

```bash Refund Processing theme={null}
curl --location -g '{{callbackURL}}' \
--header 'Content-Type: application/json' \
--header 'x-api-key: tb_test_M5nAR3Ck1YpesLiTjYbvDqJKuYPSbRxT' \
--header 'x-signature: •••••••' \
--data '{
    "callbackType": "REFUND",
    "type": "REFUND",
    "status": "PROCESSING",
    "tbId": "65ce0ade570326c36220728d",
    "quoteAmount": "199",
    "timestamp": "2024-02-15T13:00:57.710Z",
    "invoiceId": "65ce09e93e6577476e6dd00a",
    "billingSessionId": "65ce09b363f60144efcfbed1"
}'
```

```bash Refund Success theme={null}
curl --location -g '{{callbackURL}}' \
--header 'Content-Type: application/json' \
--header 'x-api-key: tb_test_M5nAR3Ck1YpesLiTjYbvDqJKuYPSbRxT' \
--header 'x-signature: •••••••' \
--data '{
    "callbackType": "REFUND",
    "type": "REFUND",
    "status": "SUCCESS",
    "tbId": "65ce0ade570326c36220728d",
    "quoteAmount": "199",
    "timestamp": "2024-02-15T13:00:58.813Z",
    "invoiceId": "65ce09e93e6577476e6dd00a",
    "billingSessionId": "65ce09b363f60144efcfbed1"
}'
```

```bash Refund Failed  theme={null}
curl --location -g '{{callbackURL}}' \
--header 'Content-Type: application/json' \
--header 'x-api-key: tb_test_M5nAR3Ck1YpesLiTjYbvDqJKuYPSbRxT' \
--header 'x-signature: •••••••' \
--data '{
    "callbackType": "REFUND",
    "type": "REFUND",
    "status": "FAILED",
    "tbId": "65ce0ade570326c36220728d",
    "quoteAmount": "199",
    "timestamp": "2024-02-15T13:00:57.710Z",
    "invoiceId": "65ce09e93e6577476e6dd00a",
    "billingSessionId": "65ce09b363f60144efcfbed1"
}'
```

### **POST File Download**

`{{callbackURL}}`

This webhook is sent to the configured partner URL when a refund is initiated or the status is changed.

**HEADERS**

| **Header** | **Value** |
| - | - |
| Content-Type | `application/json` |
| x-api-key | `tb_test_M5nAR3Ck1YpesLiTjYbvDqJKuYPSbRxT` |
| x-signature | `•••••••` |

**Body** raw (json)

```json theme={null}
{
    "callbackType": "FILE",
    "type": "",
    "tbId": "",
    "timestamp": "",
    "downloadLink": ""
}
```

**Example Request**
**curl**

```bash File Download INVOICE theme={null}
curl --location -g '{{callbackURL}}' \
--header 'Content-Type: application/json' \
--header 'x-api-key: tb_test_M5nAR3Ck1YpesLiTjYbvDqJKuYPSbRxT' \
--header 'x-signature: •••••••' \
--data '{
    "callbackType": "FILE",
    "type": "INVOICE",
    "tbId": "65ce09e93e6577476e6dd00a",
    "billingSessionId": "65ce09b363f60144efcfbed1",
    "timestamp": "2024-02-15T12:56:10.737Z",
    "downloadLink": "https://sandbox-api.transactbridge.com/download/v1.0/invoiceDownload?U2FsdGVkX1+ZIEKXZhctSgYSD6cXGjbh+3BUr2B2nQ00SrHvthhvl4jGC7fZ39Uc66xNXR/+G3eD0/wUaB8aoQ=="
}'
```

### **POST Chargeback**

{{callbackURL}}

This webhook is sent to the configured partner URL when a chargeback is initiated or the status is changed.

**HEADERS**

| **Header** | **Value** |
| - | - |
| Content-Type | `application/json` |
| x-api-key | `tb_test_M5nAR3Ck1YpesLiTjYbvDqJKuYPSbRxT` |
| x-signature | `•••••••` |

**Body** raw (json)

**json**

```json theme={null}
{
    "callbackType": "CHARGEBACK",
    "type": "CHARGEBACK",
    "status": "PENDING",
    "tbId": "",
    "qouteAmount": "100",
    "timestamp": "",
    "invoiceId": "",
    "subscriptionId": "",
    "billingSessionId": ""
}
```

**Example Request**

**curl**

```bash Chargeback Pending  theme={null}
curl --location -g '{{callbackURL}}' \
--header 'Content-Type: application/json' \
--header 'x-api-key: tb_test_M5nAR3Ck1YpesLiTjYbvDqJKuYPSbRxT' \
--header 'x-signature: •••••••' \
--data '{
    "callbackType": "CHARGEBACK",
    "type": "CHARGEBACK",
    "status": "PENDING",
    "tbId": "",
    "qouteAmount": "100",
    "timestamp": "",
    "invoiceId": "",
    "subscriptionId": "",
    "billingSessionId": ""
}'
```

### **POST Mandate**

{{callbackURL}}

This webhook is sent to the configured partner URL when a mandate status is changed.

**HEADERS**

| **Header** | **Value** |
| - | - |
| Content-Type | `application/json` |
| x-api-key | `tb_test_M5nAR3Ck1YpesLiTjYbvDqJKuYPSbRxT` |
| x-signature | `•••••••` |

**Body** raw (json)

**json**

```json theme={null}
{
    "callbackType": "MANDATE",
    "status": "CREATED",
    "tbId": "",
    "qouteAmount": "100",
    "timestamp": "",
    "subscriptionId": "",
    "payMethod": "UPI"
}
```

**Example Request**

**curl**

```bash Mandate Created  theme={null}
curl --location -g '{{callbackURL}}' \
--header 'Content-Type: application/json' \
--header 'x-api-key: tb_test_M5nAR3Ck1YpesLiTjYbvDqJKuYPSbRxT' \
--header 'x-signature: •••••••' \
--data '{
    "callbackType": "MANDATE",
    "status": "CREATED",
    "tbId": "66ebde6d11107c5eb4a29699",
    "subscriptionId": "66ebde4911107c5eb4a29653",
    "timestamp": "2024-09-19T08:18:53.900Z",
    "payMethod": "UPI",
    "quoteAmount": "100"
}'
```

```bash Mandate Success  theme={null}
curl --location -g '{{callbackURL}}' \
--header 'Content-Type: application/json' \
--header 'x-api-key: tb_test_M5nAR3Ck1YpesLiTjYbvDqJKuYPSbRxT' \
--header 'x-signature: •••••••' \
--data '{
    "callbackType": "MANDATE",
    "status": "SUCCESS",
    "tbId": "66ebe29a11107c5eb4a29ac5",
    "subscriptionId": "66ebe25711107c5eb4a29a0e",
    "timestamp": "2024-09-19T08:36:51.511Z",
    "payMethod": "UPI",
    "quoteAmount": "100"
}'
```

```bash Mandate Cancelled  theme={null}
curl --location -g '{{callbackURL}}' \
--header 'Content-Type: application/json' \
--header 'x-api-key: tb_test_M5nAR3Ck1YpesLiTjYbvDqJKuYPSbRxT' \
--header 'x-signature: •••••••' \
--data '{
    "callbackType": "MANDATE",
    "status": "SUCCESS",
    "tbId": "66ebe29a11107c5eb4a29ac5",
    "subscriptionId": "66ebe25711107c5eb4a29a0e",
    "timestamp": "2024-09-19T08:36:51.511Z",
    "payMethod": "UPI",
    "quoteAmount": "100"
}'
```

```bash Mandate Capture Failed  theme={null}
curl --location -g '{{callbackURL}}' \
--header 'Content-Type: application/json' \
--header 'x-api-key: tb_test_M5nAR3Ck1YpesLiTjYbvDqJKuYPSbRxT' \
--header 'x-signature: •••••••' \
--data '{
    "callbackType": "MANDATE",
    "status": "FAILED",
    "tbId": "66ec03b44115ed3a42fe7735",
    "subscriptionId": "66ec038b4115ed3a42fe76fa",
    "timestamp": "2024-09-19T10:58:05.634Z",
    "payMethod": "UPI",
    "quoteAmount": "100"
}'
```

### **POST Coupon Apply/verify**

{{callbackURL}}

This API endpoint is used to verify whether a coupon is allowed and how to apply it. When a customer enters a coupon code on the checkout page, this API endpoint will be used to validate the coupon code. Coupons are of three types: LIMITED\_PERIOD, ONETIME, and FOREVER. They can be used to give a discount based on a percentage or a fixed amount. Please check examples for the same.

For percentage-based discountPcnt is required, for fixed amount-based discountQuoteAmount is required. Also for the limited period-based coupons, period and periodUnit both are required.

This webhook is sent to the configured partner URL when a mandate status is changed.

**HEADERS**

| **Header** | **Value** |
| - | - |
| Content-Type | `application/json` |
| x-api-key | `tb_test_M5nAR3Ck1YpesLiTjYbvDqJKuYPSbRxT` |
| x-signature | `•••••••` |

**Body** raw (json)

```json theme={null}
{
    "coupon": "CUSTOMER_COUPON_INPUT_FROM_CHECKOUT",
    "subscriptionId": ""
}
```

> [tab] Coupon Apply/Verify (Limited Period)
>
> **Example Request**
>
> ```bash curl theme={null}
> curl --location -g '{{callbackURL}}' \
> --header 'Content-Type: application/json' \
> --header 'x-api-key: tb_test_M5nAR3Ck1YpesLiTjYbvDqJKuYPSbRxT' \
> --header 'x-signature: •••••••' \
> --data '{
>     "coupon": "CUSTOMER_COUPON_INPUT_FROM_CHECKOUT",
>     "subscriptionId": "66ec038b4115ed3a42fe76fa"
> }'
> ```
>
> **Example Response**
>
> ```json Body  theme={null}
> {
> "coupon": "TESTCOUPON",
> "applicable": true,
> "discountType": "PCNT",
> "discountPcnt": "10",
> "durationType": "LIMITED_PERIOD",
> "periodUnit": "MNTH",
> "period": 2
> }
> ```

> [tab] Coupon Apply/Verify (One Time)
>
> **Example Request**
>
> ```bash curl theme={null}
> curl --location -g '{{callbackURL}}' \
> --header 'Content-Type: application/json' \
> --header 'x-api-key: tb_test_M5nAR3Ck1YpesLiTjYbvDqJKuYPSbRxT' \
> --header 'x-signature: •••••••' \
> --data '{
>     "coupon": "CUSTOMER_COUPON_INPUT_FROM_CHECKOUT",
>     "subscriptionId": "66ec038b4115ed3a42fe76fa"
> }'
> ```
>
> **Example Response**
>
> ```json theme={null}
> {
>   "coupon": "TESTCOUPON",
>   "applicable": true,
>   "discountType": "FIX",
>   "discountQuoteAmount": "10",
>   "durationType": "ONETIME"
> }
> ```

> [tab] Coupon Apply/Verify (Apply Forever)
>
> **Example Request**
>
> ```bash curl theme={null}
> curl --location -g '{{callbackURL}}' \
> --header 'Content-Type: application/json' \
> --header 'x-api-key: tb_test_M5nAR3Ck1YpesLiTjYbvDqJKuYPSbRxT' \
> --header 'x-signature: •••••••' \
> --data '{
>     "coupon": "CUSTOMER_COUPON_INPUT_FROM_CHECKOUT",
>     "subscriptionId": "66ec038b4115ed3a42fe76fa"
> }'
> ```
>
> **Example Response**
>
> ```json theme={null}
> {
>   "coupon": "TESTCOUPON",
>   "applicable": true,
>   "discountType": "FIX",
>   "discountQuoteAmount": "10",
>   "durationType": "FOREVER"
> }
> ```

> [tab] Coupon Apply/Verify (Failed)
>
> **Example Request**
>
> ```bash curl theme={null}
> curl --location -g '{{callbackURL}}' \
> --header 'Content-Type: application/json' \
> --header 'x-api-key: tb_test_M5nAR3Ck1YpesLiTjYbvDqJKuYPSbRxT' \
> --header 'x-signature: •••••••' \
> --data '{
>     "coupon": "TESTCOUPON",
>     "subscriptionId": "6703acfd8d08e7f77be1b369"
> }'
> ```
>
> **Example Response**
>
> ```json theme={null}
> {
>   "applicable": false
> }
> ```

### **POST Recurring Dep**

{{callbackURL}}

This webhook is sent to the configured partner URL when a transaction created for the auto-debit to pay a due invoice has moved to a terminal state from the bank.

**HEADERS**

| **Header** | **Value** |
| - | - |
| Content-Type | `application/json` |
| x-api-key | `tb_test_M5nAR3Ck1YpesLiTjYbvDqJKuYPSbRxT` |
| x-signature | `•••••••` |

**Body** raw (json)

**json**

```json theme={null}
{
    "callbackType": "RECURRING",
    "status": "SUCCESS",
    "tbId": "",
    "invoiceId": "",
    "mandateId": "",
    "qouteAmount": "100",
    "timestamp": "",
    "subscriptionId": ""
}
```

**Example Request**
**Curl**

```bash Recurring Dep(Success) theme={null}
curl --location -g '{{callbackURL}}' \
--header 'Content-Type: application/json' \
--header 'x-api-key: tb_test_M5nAR3Ck1YpesLiTjYbvDqJKuYPSbRxT' \
--header 'x-signature: •••••••' \
--data '{
  "callbackType": "RECURRING",
  "status": "SUCCESS",
  "tbId": "670cc62659a2220d071aaee7",
  "mandateId": "6703adff8d08e7f77be1b5ab",
  "subscriptionId": "6703acfd8d08e7f77be1b369",
  "invoiceId": "670cc5ad45bf6282a021ccc1",
  "timestamp": "2024-10-14T08:05:05.269Z",
  "quoteAmount": "10"
}'
```

```bash Recurring Dep(Failed) theme={null}
curl --location -g '{{callbackURL}}' \
--header 'Content-Type: application/json' \
--header 'x-api-key: tb_test_M5nAR3Ck1YpesLiTjYbvDqJKuYPSbRxT' \
--header 'x-signature: •••••••' \
--data '{
  "callbackType": "RECURRING",
  "status": "FAILED",
  "tbId": "670cc62659a2220d071aaee7",
  "mandateId": "6703adff8d08e7f77be1b5ab",
  "subscriptionId": "6703acfd8d08e7f77be1b369",
  "invoiceId": "670cc5ad45bf6282a021ccc1",
  "timestamp": "2024-10-14T08:05:05.269Z",
  "quoteAmount": "10"
}'
```

### **POST PACB Verification**

`{{callbackURL}}`

This webhook is sent to the configured partner URL when a transaction created for the auto-debit to pay a due invoice has moved to a terminal state from the bank.

**HEADERS**

| **Header** | **Value** |
| - | - |
| Content-Type | `application/json` |
| x-api-key | `tb_test_M5nAR3Ck1YpesLiTjYbvDqJKuYPSbRxT` |
| x-signature | `•••••••` |

**Body** raw (json)

**json**

```json theme={null}
{
    "callbackType": "PAYMENT_VERIFICATION",
    "status": "",
    "referenceId": "",
    "tbId": "",
    "timestamp": "",
    "paymentVerificationStatus": "",
    "paymentVerificationExpiry": null,
    "requiredDetails": [
        {
            "remarks": null,
            "docName": "",
            "docType": "",
            "docStatus": ""
        }  
    ]
}
```

**Example Request**

**curl**

```bash Verification Required theme={null}
curl --location -g '{{callbackURL}}' \
--header 'Content-Type: application/json' \
--header 'x-api-key: tb_test_M5nAR3Ck1YpesLiTjYbvDqJKuYPSbRxT' \
--header 'x-signature: •••••••' \
--data '{
    "callbackType": "PAYMENT_VERIFICATION",
    "status": "SUCCESS",
    "referenceId": "test-tsp-0028",
    "tbId": "68bb1b3dc00c41e2ddbd40ef",
    "timestamp": "2025-09-05T18:54:22.485Z",
    "paymentVerificationStatus": "ACTION_REQUIRED",
    "paymentVerificationExpiry": "2025-09-25T23:59:59+05:30",
    "requiredDetails": [
        {
            "remarks": null,
            "docName": "importer_address",
            "docType": "VALUE",
            "docStatus": "IN_REVIEW"
        },
        {
            "remarks": null,
            "docName": "country_of_origin",
            "docType": "VALUE",
            "docStatus": "ACTION_REQUIRED"
        },
        {
            "remarks": null,
            "docName": "invoice_file",
            "docType": "DOCUMENT",
            "docStatus": "IN_REVIEW"
        },
        {
            "remarks": null,
            "docName": "invoice_number",
            "docType": "VALUE",
            "docStatus": "IN_REVIEW"
        },
        {
            "remarks": null,
            "docName": "ecommerce_order_serial_number",
            "docType": "VALUE",
            "docStatus": "IN_REVIEW"
        },
        {
            "remarks": null,
            "docName": "goods_description",
            "docType": "VALUE",
            "docStatus": "IN_REVIEW"
        },
        {
            "remarks": null,
            "docName": "importer_name",
            "docType": "VALUE",
            "docStatus": "IN_REVIEW"
        }
    ]
}'
```

```bash Verification In Review  theme={null}
curl --location -g '{{callbackURL}}' \
--header 'Content-Type: application/json' \
--header 'x-api-key: tb_test_M5nAR3Ck1YpesLiTjYbvDqJKuYPSbRxT' \
--header 'x-signature: •••••••' \
--data '{
    "callbackType": "PAYMENT_VERIFICATION",
    "status": "SUCCESS",
    "referenceId": "test-tsp-0028",
    "tbId": "68bb1b3dc00c41e2ddbd40ef",
    "timestamp": "2025-09-05T18:54:22.485Z",
    "paymentVerificationStatus": "IN_REVIEW",
    "paymentVerificationExpiry": null,
    "requiredDetails": [
        {
            "remarks": null,
            "docName": "importer_address",
            "docType": "VALUE",
            "docStatus": "IN_REVIEW"
        },
        {
            "remarks": null,
            "docName": "country_of_origin",
            "docType": "VALUE",
            "docStatus": "VERIFIED"
        },
        {
            "remarks": null,
            "docName": "invoice_file",
            "docType": "DOCUMENT",
            "docStatus": "IN_REVIEW"
        },
        {
            "remarks": null,
            "docName": "invoice_number",
            "docType": "VALUE",
            "docStatus": "IN_REVIEW"
        },
        {
            "remarks": null,
            "docName": "ecommerce_order_serial_number",
            "docType": "VALUE",
            "docStatus": "IN_REVIEW"
        },
        {
            "remarks": null,
            "docName": "goods_description",
            "docType": "VALUE",
            "docStatus": "VERIFIED"
        },
        {
            "remarks": null,
            "docName": "importer_name",
            "docType": "VALUE",
            "docStatus": "VERIFIED"
        }
    ]
}'
```

```bash Verification Expired  theme={null}
curl --location -g '{{callbackURL}}' \
--header 'Content-Type: application/json' \
--header 'x-api-key: tb_test_M5nAR3Ck1YpesLiTjYbvDqJKuYPSbRxT' \
--header 'x-signature: •••••••' \
--data '{
    "callbackType": "PAYMENT_VERIFICATION",
    "status": "SUCCESS",
    "referenceId": "test-tsp-0028",
    "tbId": "68bb1b3dc00c41e2ddbd40ef",
    "timestamp": "2025-09-05T18:54:22.485Z",
    "paymentVerificationStatus": "EXPIRED",
    "paymentVerificationExpiry": "2025-09-25T23:59:59+05:30",
    "requiredDetails": [
        {
            "remarks": null,
            "docName": "importer_address",
            "docType": "VALUE",
            "docStatus": "IN_REVIEW"
        },
        {
            "remarks": null,
            "docName": "country_of_origin",
            "docType": "VALUE",
            "docStatus": "VERIFIED"
        },
        {
            "remarks": null,
            "docName": "invoice_file",
            "docType": "DOCUMENT",
            "docStatus": "IN_REVIEW"
        },
        {
            "remarks": null,
            "docName": "invoice_number",
            "docType": "VALUE",
            "docStatus": "IN_REVIEW"
        },
        {
            "remarks": null,
            "docName": "ecommerce_order_serial_number",
            "docType": "VALUE",
            "docStatus": "IN_REVIEW"
        },
        {
            "remarks": null,
            "docName": "goods_description",
            "docType": "VALUE",
            "docStatus": "VERIFIED"
        },
        {
            "remarks": null,
            "docName": "importer_name",
            "docType": "VALUE",
            "docStatus": "VERIFIED"
        }
    ]
}'
```

```bash Verification Completed  theme={null}
curl --location -g '{{callbackURL}}' \
--header 'Content-Type: application/json' \
--header 'x-api-key: tb_test_M5nAR3Ck1YpesLiTjYbvDqJKuYPSbRxT' \
--header 'x-signature: •••••••' \
--data '{
  "callbackType": "PAYMENT_VERIFICATION",
  "status": "SUCCESS",
  "referenceId": "test-tsp-0028",
  "tbId": "68bb1b3dc00c41e2ddbd40ef",
  "timestamp": "2025-09-05T18:56:41.667Z",
  "paymentVerificationStatus": "VERIFIED",
  "paymentVerificationExpiry": null,
  "requiredDetails": [
    {
      "remarks": null,
      "docName": "importer_address",
      "docType": "VALUE",
      "docStatus": "VERIFIED"
    },
    {
      "remarks": null,
      "docName": "country_of_origin",
      "docType": "VALUE",
      "docStatus": "VERIFIED"
    },
    {
      "remarks": null,
      "docName": "invoice_file",
      "docType": "DOCUMENT",
      "docStatus": "VERIFIED"
    },
    {
      "remarks": null,
      "docName": "invoice_number",
      "docType": "VALUE",
      "docStatus": "VERIFIED"
    },
    {
      "remarks": null,
      "docName": "ecommerce_order_serial_number",
      "docType": "VALUE",
      "docStatus": "VERIFIED"
    },
    {
      "remarks": null,
      "docName": "goods_description",
      "docType": "VALUE",
      "docStatus": "VERIFIED"
    },
    {
      "remarks": null,
      "docName": "importer_name",
      "docType": "VALUE",
      "docStatus": "VERIFIED"
    }
  ]
}
'
```

### **POST KYC Verification**

`{{callbackURL}}`

**HEADERS**

| **Header** | **Value** |
| - | - |
| Content-Type | `application/json` |
| x-api-key | `tb_test_M5nAR3Ck1YpesLiTjYbvDqJKuYPSbRxT` |
| x-signature | `•••••••` |

**Body** raw (json)

**json**

```json theme={null}
{
  "callbackType": "KYC_VERIFICATION",
  "verificationStatus": "VERIFIED",
  "redirectUrl": "https://checkout.transactbridge.com/customer/kyc?customerId=67f1a2b3c4d5e6f708192a3b&merchantId=66c0d1e2f3a4b5c6d7e8f901",
  "kycId": "6801b2c3d4e5f60718293a4b",
  "billingSessionId": "68a1b2c3d4e5f60718293a4c",
  "timestamp": "2026-10-23T09:14:22.318Z",
  "customerEmail": "customer@example.com",
  "customerId": "67f1a2b3c4d5e6f708192a3b"
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.