# Cancel

`POST https://api.paybeta.ng/v2/bulk-airtime/batchId/cancel`

Authentication: `P-API-KEY` header.

Stop recipients that have not started yet (they become `cancelled`, not charged). Numbers already processed are not affected.

## Response 200: Success

```json
{
    "status": "successful",
    "message": "Bulk request cancelled. 2 recipient(s) that had not started were skipped.",
    "data": {
        "reference": "PAYROLL-OCT",
        "batch_id": "BLK-K3P9XQ2M7Z1A",
        "description": "October staff airtime",
        "status": "cancelled",
        "total_recipients": 3,
        "total_amount": 1700,
        "total_charge": 1644,
        "amount_charged": 970,
        "summary": {
            "successful": 1,
            "pending": 0,
            "failed": 0,
            "queued": 0,
            "cancelled": 2
        },
        "created_at": "2026-10-05T09:00:00+01:00",
        "started_at": null,
        "completed_at": null,
        "cancelled_at": "2026-10-05T09:00:06+01:00",
        "recipients": [
            {
                "row": 1,
                "reference": "STAFF-OCT-ADA",
                "biller": "mtn",
                "phone_number": "08031234567",
                "amount": 1000,
                "charged_amount": 970,
                "status": "delivered",
                "response_description": "TRANSACTION SUCCESSFUL",
                "transaction_id": "API-17619840121234567",
                "processed_at": "2026-10-05T09:00:12+01:00"
            },
            {
                "row": 2,
                "reference": "PAYROLL-OCT-2",
                "biller": "glo",
                "phone_number": "08051234567",
                "amount": 500,
                "charged_amount": null,
                "status": "cancelled",
                "response_description": "Cancelled by merchant before processing.",
                "transaction_id": null,
                "processed_at": null
            },
            {
                "row": 3,
                "reference": "PAYROLL-OCT-3",
                "biller": "airtel",
                "phone_number": "08021234567",
                "amount": 200,
                "charged_amount": null,
                "status": "cancelled",
                "response_description": "Cancelled by merchant before processing.",
                "transaction_id": null,
                "processed_at": null
            }
        ]
    }
}
```

## Response 422: Error

```json
{
    "status": "failed",
    "message": "This bulk request has already finished.",
    "data": null
}
```
