Skip to content

ZevPay ID

ZevPay ID lets a customer pay from the ZevPay app. When they pick it, we create a dynamic PayID and a QR code for the session. The customer sends to the PayID or scans the QR code, and the payment confirms instantly.

Identifier: payid (also payid in the inline SDK).

How it works

  1. The customer selects ZevPay ID.
  2. We create a dynamic PayID and a QR code for the session.
  3. The customer opens the ZevPay app and sends to the PayID, or scans the QR code.
  4. The payment confirms instantly.
  5. The session moves to completed and your webhook fires.

What the customer sees

Selecting the method returns the PayID and QR data:

json
{
  "payment_method": "payid",
  "pay_id": "abc3.dypid",
  "qr_data": "https://zevpay.me/abc3.dypid",
  "amount": 500000,
  "expires_at": "2026-01-01T12:30:00.000Z"
}

amount is in kobo. qr_data is a URL you can render as a QR code for scanning.

Key details

  • The PayID is dynamic and expires with the session after 30 minutes.
  • The amount must match exactly. The PayID accepts a single payment for the session amount.
  • A QR code is provided for quick scanning.
  • On an invoice that requires full payment (allow_partial_payments: false), ZevPay ID is hidden, because a customer-initiated transfer cannot enforce an exact partial amount.

Verifying the payment

Confirm the payment from your server before fulfilling. See Verify Session and Payment Lifecycle.

ZevPay Checkout Developer Documentation