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

# Callbacks

> Receive final airtime transaction status via callback URL.

If a callback URL is configured in your web profile, Beem sends a JSON POST request to your server when the final recharge status is available.

Your server must respond with **HTTP 200 OK**.

***

## Callback flow

```text theme={null}
Airtime transfer submitted
        │
        ▼
Beem processes with operator
        │
        ▼
Final status determined
        │
        │ HTTP POST (JSON)
        ▼
Your callback URL
        │
        ▼
Your server responds HTTP 200 OK
```

***

## Callback parameters

| Parameter        | Type   | Description                                                 |
| ---------------- | ------ | ----------------------------------------------------------- |
| `code`           | String | API response code (e.g. `100` for success)                  |
| `message`        | String | Response message (e.g. `Successful`)                        |
| `timestamp`      | String | Timestamp for the transaction                               |
| `transaction_id` | String | Unique transaction ID generated by Beem                     |
| `amount`         | Number | Airtime amount sent                                         |
| `dest_addr`      | String | Recipient mobile number in international format without `+` |
| `reference_id`   | String | Client-defined reference ID from the original request       |

***

## Sample callback payload

```json theme={null}
{
  "code": 100,
  "message": "Successful",
  "args": {
    "timestamp": "2019-10-23T10:54:56.993Z",
    "transaction_id": "1571828092946",
    "amount": 200,
    "dest_addr": "255676360050"
  }
}
```

***

## Expected response

Respond with **HTTP 200 OK** to acknowledge receipt of the callback.

<Tip>
  Match callbacks to original requests using `transaction_id` or your `reference_id`.
</Tip>
