VTU API
Get API keys
Schedule Payments›Create

Create - Airtime (one time)

POST https://api.paybeta.ng/v2/scheduled-payments

Schedule a one-time airtime top-up. amount is required (50 - 20,000).

Send your secret key in the P-API-KEY header. Keep it on your server, never in an app or browser.

Body (JSON)

  • service string Required
    Example: airtime
  • biller string Required
    Example: mtn_vtu
  • customer_id string Required
    Example: 08031234567
  • amount integer Required
    Example: 500
  • frequency string Required
    Example: once
  • start_at string Required
    Example: {{startAt}}
  • description string Required
    Example: Airtime for Dad

Responses

  • 201Success
Request
curl --request POST \
  --url 'https://api.paybeta.ng/v2/scheduled-payments' \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --header 'P-API-KEY: YOUR_SECRET_KEY' \
  --data '{
    "service": "airtime",
    "biller": "mtn_vtu",
    "customer_id": "08031234567",
    "amount": 500,
    "frequency": "once",
    "start_at": "{{startAt}}",
    "description": "Airtime for Dad"
}'
Response
{
    "success": true,
    "message": "Payment scheduled successfully.",
    "data": {
        "reference": "SCH-7F3K9QX2AB12",
        "service": "airtime",
        "service_label": "Airtime",
        "biller": "mtn_vtu",
        "biller_label": "MTN Airtime",
        "biller_code": null,
        "product_name": "MTN Airtime VTU",
        "customer_id": "08031234567",
        "customer_name": null,
        "amount": 500,
        "frequency": "once",
        "frequency_label": "One time",
        "starts_at": "2026-10-10T09:00:00+01:00",
        "ends_at": null,
        "next_run_at": "2026-10-10T09:00:00+01:00",
        "status": "active",
        "failure_reason": null,
        "can_retry": false,
        "can_cancel": true,
        "can_pause": true,
        "can_pay_now": true,
        "can_resume": false,
        "resume_needs_start_at": false,
        "paused_at": null,
        "can_edit": true,
        "archived": false,
        "can_reactivate": false,
        "can_delete": false,
        "reactivation_needs_start_at": false,
        "cancelled_at": null,
        "total_runs": 0,
        "last_run_at": null,
        "last_run": null,
        "description": "Airtime for Dad",
        "summary": "Airtime scheduled for the beneficiary 08031234567",
        "created_at": "2026-10-05T12:00:00+01:00"
    }
}