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

# Responses

> Response envelope, pagination and asynchronous operations.

## Response envelope

Every response uses the same envelope:

```json theme={null}
{
  "code": 200,
  "msg": "success",
  "data": {}
}
```

| Field | Type | Description |
| - | - | - |
| `code` | integer | `200` when the request succeeded. Any other value means it failed. |
| `msg` | string | `success`, or a message that explains the failure. |
| `data` | any | The result. Its shape depends on the endpoint. |

Always check `code` as well as the HTTP status.

## Pagination

List endpoints accept `page` and `limit` query parameters and return a page object in `data`:

```json theme={null}
{
  "code": 200,
  "msg": "success",
  "data": {
    "total": 42,
    "per_page": 20,
    "current_page": 1,
    "last_page": 3,
    "data": []
  }
}
```

## Asynchronous operations

Card operations such as create, top up, withdraw, freeze, unfreeze and close are processed asynchronously. The API accepts the request and returns a transaction ID; the final result is delivered to your [webhook](/guides/webhooks).

Pass your own `clientTransactionId` on these requests to match webhooks to your records. If you omit it, the API generates one and returns it.
