Transfers API
9 endpoints · Status codes: 0=Created 1=Active 2=Scheduled 3=On Hold 4=Cancelled 5=Time Out 6=Success 7=Declined 8=Revoked 9=Pending
/api/v01/transfers/create
Create a transfer against an order. Verifies account balances and links creditor/debtor accounts.
Request payload (inside encrypted data {})
| Field | Type | Required | Description |
|---|---|---|---|
| order | string | yes | Order item ID |
| credit.user | string | yes | Creditor user item ID |
| credit.account | string | yes | Creditor account item ID |
| debit.user | string | yes | Debtor user item ID |
| debit.account | string | yes | Debtor account item ID |
| sale.number | string | yes | Transfer amount (positive decimal) |
| sale.ticker | string | yes | Currency/token ticker |
| mode | string | yes | 'CARD' | 'CODE' | 'LINK' | 'CASH' |
Response data {}
| Field | Type | Required | Description |
|---|---|---|---|
| credit | object | no | Creditor info { name, nuvo, item } |
| debit | object | no | Debtor info { name, nuvo, item } |
| sale | object | no | { number, ticker } |
| status | number | no | 0 (Created) |
| active | boolean | no | Whether the transfer is active |
| item | string | no | Transfer item ID |
Request Payload
{
"data": {
"order": "b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8",
"credit": {
"user": "c8f3a2b1d4e5f6a7b8c9d0e1f2a3b4c5",
"account": "a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7"
},
"debit": {
"user": "d9e0f1a2b3c4d5e6a7b8c9d0e1f2a3b4",
"account": "b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e9"
},
"sale": {
"number": "200.000000",
"ticker": "INR"
},
"mode": "CODE"
},
"srvc": "b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6"
}Response Data
{
"data": {
"credit": {
"name": "Jane Doe",
"nuvo": "9123456789012345",
"item": "c8f3a2b1d4e5f6a7b8c9d0e1f2a3b4c5"
},
"debit": {
"name": "John Smith",
"nuvo": "9123456789012346",
"item": "d9e0f1a2b3c4d5e6a7b8c9d0e1f2a3b4"
},
"sale": {
"number": "200.000000",
"ticker": "INR"
},
"status": 0,
"active": true,
"item": "c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9"
},
"memo": "Transfer created.",
"stat": true,
"code": 201,
"time": 1700000000000,
"trxn": "a3f2c1b4d5e6f7a8b9c0d1e2f3a4b5c6",
"srvc": "b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6"
}{
"data": {},
"memo": "Order not found.",
"stat": false,
"code": 404,
"time": 1700000000000,
"trxn": "d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9",
"srvc": "b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6"
}{
"data": {},
"memo": "Insufficient debit account balance.",
"stat": false,
"code": 409,
"time": 1700000000000,
"trxn": "e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0",
"srvc": "b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6"
}/api/v01/transfers/submit
Submit a transfer for processing (sets status to 2 — Scheduled). Optionally attach an on-chain tx hash or payment reference.
Request payload (inside encrypted data {})
| Field | Type | Required | Description |
|---|---|---|---|
| item | string | yes | Transfer item ID |
| trxn | string | no | On-chain transaction hash or payment reference |
Response data {}
| Field | Type | Required | Description |
|---|---|---|---|
| item | string | no | Transfer item ID |
| status | number | no | 2 (Scheduled) |
| active | boolean | no | Whether the transfer is active |
| created | number | no | Creation timestamp (ms) |
| modified | number | no | Last modified timestamp (ms) |
Request Payload
{
"data": {
"item": "c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9",
"trxn": "0xabc123def456789abc123def456789abc123def456789abc123def456789abc1"
},
"srvc": "b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6"
}Response Data
{
"data": {
"item": "c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9",
"status": 2,
"active": true,
"created": 1700000000000,
"modified": 1700000000000
},
"memo": "Transfer submitted.",
"stat": true,
"code": 200,
"time": 1700000000000,
"trxn": "a3f2c1b4d5e6f7a8b9c0d1e2f3a4b5c6",
"srvc": "b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6"
}{
"data": {},
"memo": "Transfer has already been submitted.",
"stat": false,
"code": 409,
"time": 1700000000000,
"trxn": "d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9",
"srvc": "b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6"
}/api/v01/transfers/details
Fetch transfer details by item ID.
Request payload (inside encrypted data {})
| Field | Type | Required | Description |
|---|---|---|---|
| item | string | yes | Transfer item ID |
Response data {}
| Field | Type | Required | Description |
|---|---|---|---|
| credit | object | no | Creditor info { name, nuvo, item } |
| debit | object | no | Debtor info { name, nuvo, item } |
| sale | object | no | { number, ticker } |
| status | number | no | Current status code |
| active | boolean | no | Whether the transfer is active |
| item | string | no | Transfer item ID |
| created | number | no | Creation timestamp (ms) |
| modified | number | no | Last modified timestamp (ms) |
Request Payload
{
"data": {
"item": "c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9"
},
"srvc": "b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6"
}Response Data
{
"data": {
"credit": {
"name": "Jane Doe",
"nuvo": "9123456789012345",
"item": "c8f3a2b1d4e5f6a7b8c9d0e1f2a3b4c5"
},
"debit": {
"name": "John Smith",
"nuvo": "9123456789012346",
"item": "d9e0f1a2b3c4d5e6a7b8c9d0e1f2a3b4"
},
"sale": {
"number": "200.000000",
"ticker": "INR"
},
"status": 2,
"active": true,
"item": "c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9",
"created": 1700000000000,
"modified": 1700000000000
},
"memo": "Transfer found.",
"stat": true,
"code": 200,
"time": 1700000000000,
"trxn": "a3f2c1b4d5e6f7a8b9c0d1e2f3a4b5c6",
"srvc": "b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6"
}{
"data": {},
"memo": "Transfer not found.",
"stat": false,
"code": 404,
"time": 1700000000000,
"trxn": "d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9",
"srvc": "b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6"
}/api/v01/transfers/list
Paginated list of all transfers, optionally filtered by status.
Request payload (inside encrypted data {})
| Field | Type | Required | Description |
|---|---|---|---|
| index | number | no | Page index (default: 1) |
| items | number | no | Per page (default: 10, max: 100) |
| status | number | no | Filter by status code |
Response data {}
| Field | Type | Required | Description |
|---|---|---|---|
| meta | object | no | { index, items, count } |
| list | array | no | Array of transfer objects |
Request Payload
{
"data": {
"index": 1,
"items": 20
},
"srvc": "b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6"
}Response Data
{
"data": {
"meta": {
"index": 1,
"items": 20,
"count": 4
},
"list": [
{
"sale": {
"number": "200.000000",
"ticker": "INR"
},
"status": 2,
"active": true,
"item": "c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9",
"created": 1700000000000,
"modified": 1700000000000
}
]
},
"memo": "Transfers found.",
"stat": true,
"code": 200,
"time": 1700000000000,
"trxn": "a3f2c1b4d5e6f7a8b9c0d1e2f3a4b5c6",
"srvc": "b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6"
}/api/v01/transfers/list/user
Paginated list of transfers for a specific user.
Request payload (inside encrypted data {})
| Field | Type | Required | Description |
|---|---|---|---|
| user.item | string | yes | User item ID |
| index | number | no | Page index (default: 1) |
| items | number | no | Per page (default: 10, max: 100) |
| status | number | no | Filter by status code |
Response data {}
| Field | Type | Required | Description |
|---|---|---|---|
| meta | object | no | { index, items, count } |
| list | array | no | Array of transfer objects |
Request Payload
{
"data": {
"user": {
"item": "c8f3a2b1d4e5f6a7b8c9d0e1f2a3b4c5"
},
"index": 1,
"items": 20
},
"srvc": "b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6"
}Response Data
{
"data": {
"meta": {
"index": 1,
"items": 20,
"count": 2
},
"list": [
{
"sale": {
"number": "200.000000",
"ticker": "INR"
},
"status": 2,
"active": true,
"item": "c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9",
"created": 1700000000000,
"modified": 1700000000000
}
]
},
"memo": "Transfers found.",
"stat": true,
"code": 200,
"time": 1700000000000,
"trxn": "a3f2c1b4d5e6f7a8b9c0d1e2f3a4b5c6",
"srvc": "b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6"
}{
"data": {},
"memo": "User identifier required: data.user.item.",
"stat": false,
"code": 404,
"time": 1700000000000,
"trxn": "d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9",
"srvc": "b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6"
}/api/v01/transfers/list/order
Paginated list of transfers for a specific order.
Request payload (inside encrypted data {})
| Field | Type | Required | Description |
|---|---|---|---|
| order | string | yes | Order item ID |
| index | number | no | Page index (default: 1) |
| items | number | no | Per page (default: 10, max: 100) |
Response data {}
| Field | Type | Required | Description |
|---|---|---|---|
| meta | object | no | { index, items, count } |
| list | array | no | Array of transfer objects |
Request Payload
{
"data": {
"order": "b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8",
"index": 1,
"items": 20
},
"srvc": "b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6"
}Response Data
{
"data": {
"meta": {
"index": 1,
"items": 20,
"count": 1
},
"list": [
{
"sale": {
"number": "200.000000",
"ticker": "INR"
},
"status": 2,
"active": true,
"item": "c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9",
"created": 1700000000000,
"modified": 1700000000000
}
]
},
"memo": "Transfers found.",
"stat": true,
"code": 200,
"time": 1700000000000,
"trxn": "a3f2c1b4d5e6f7a8b9c0d1e2f3a4b5c6",
"srvc": "b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6"
}{
"data": {},
"memo": "Order identifier required: data.order.",
"stat": false,
"code": 404,
"time": 1700000000000,
"trxn": "d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9",
"srvc": "b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6"
}/api/v01/transfers/status/set
Update transfer status. Follows transition rules — cannot set a lower status.
Request payload (inside encrypted data {})
| Field | Type | Required | Description |
|---|---|---|---|
| item | string | yes | Transfer item ID |
| status | number | yes | New status code (0–9) |
| order | string | no | Associated order item ID (optional) |
Response data {}
| Field | Type | Required | Description |
|---|---|---|---|
| order | string | no | Associated order item ID |
| item | string | no | Transfer item ID |
| status | number | no | Updated status code |
| active | boolean | no | Whether the transfer is active |
| created | number | no | Creation timestamp (ms) |
| modified | number | no | Last modified timestamp (ms) |
Request Payload
{
"data": {
"item": "c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9",
"status": 6
},
"srvc": "b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6"
}Response Data
{
"data": {
"order": "b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8",
"item": "c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9",
"status": 6,
"active": true,
"created": 1700000000000,
"modified": 1700000000000
},
"memo": "Transfer status updated.",
"stat": true,
"code": 200,
"time": 1700000000000,
"trxn": "a3f2c1b4d5e6f7a8b9c0d1e2f3a4b5c6",
"srvc": "b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6"
}{
"data": {},
"memo": "Cannot set a lower status.",
"stat": false,
"code": 409,
"time": 1700000000000,
"trxn": "d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9",
"srvc": "b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6"
}/api/v01/transfers/cancel
Cancel a transfer (sets status to 4). Blocked on submitted or completed transfers.
Request payload (inside encrypted data {})
| Field | Type | Required | Description |
|---|---|---|---|
| item | string | yes | Transfer item ID |
| order | string | no | Associated order item ID (optional) |
Response data {}
| Field | Type | Required | Description |
|---|---|---|---|
| order | string | no | Associated order item ID |
| item | string | no | Transfer item ID |
| status | number | no | 4 (Cancelled) |
| active | boolean | no | Whether the transfer is active |
| created | number | no | Creation timestamp (ms) |
| modified | number | no | Last modified timestamp (ms) |
Request Payload
{
"data": {
"item": "c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9"
},
"srvc": "b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6"
}Response Data
{
"data": {
"order": "b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8",
"item": "c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9",
"status": 4,
"active": true,
"created": 1700000000000,
"modified": 1700000000000
},
"memo": "Transfer cancelled.",
"stat": true,
"code": 200,
"time": 1700000000000,
"trxn": "a3f2c1b4d5e6f7a8b9c0d1e2f3a4b5c6",
"srvc": "b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6"
}{
"data": {},
"memo": "Cannot cancel a transfer that has been submitted or completed.",
"stat": false,
"code": 409,
"time": 1700000000000,
"trxn": "d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9",
"srvc": "b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6"
}/api/v01/transfers/decline
Decline a transfer (sets status to 7). Blocked on already-cancelled transfers.
Request payload (inside encrypted data {})
| Field | Type | Required | Description |
|---|---|---|---|
| item | string | yes | Transfer item ID |
| order | string | no | Associated order item ID (optional) |
Response data {}
| Field | Type | Required | Description |
|---|---|---|---|
| order | string | no | Associated order item ID |
| item | string | no | Transfer item ID |
| status | number | no | 7 (Declined) |
| active | boolean | no | Whether the transfer is active |
| created | number | no | Creation timestamp (ms) |
| modified | number | no | Last modified timestamp (ms) |
Request Payload
{
"data": {
"item": "c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9"
},
"srvc": "b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6"
}Response Data
{
"data": {
"order": "b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8",
"item": "c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9",
"status": 7,
"active": true,
"created": 1700000000000,
"modified": 1700000000000
},
"memo": "Transfer declined.",
"stat": true,
"code": 200,
"time": 1700000000000,
"trxn": "a3f2c1b4d5e6f7a8b9c0d1e2f3a4b5c6",
"srvc": "b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6"
}{
"data": {},
"memo": "Transfer is already cancelled.",
"stat": false,
"code": 409,
"time": 1700000000000,
"trxn": "d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9",
"srvc": "b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6"
}