2026-07-01 — Static QR Code Amount Configuration API v1.0
New endpoints for managing payment amounts on static QR codes.Static QR Code API
Static QR Code API
POST {api_base_url}/set-qr-config— attach one or more DZD amounts to a static QR codePOST {api_base_url}/un-set-qr-config— remove amount configuration from a static QR code- Supports permanent, time-limited (
expiresAt), and single-use (singleUse: true) configurations - Multi-amount mode: customer selects from a list; single-amount mode: skips selection step
- Authentication via
x-api-keyheader; QR code token retrieved from Partner Platform - Error codes:
AUTH401_UNAUTHORIZED_ACCESS,QR_CODE404_NOT_FOUND,QR_CODE400_CANNOT_BE_MODIFIED,QR_CODE400_INVALID_STATUS,VALIDATION400
2026-06-01 — Payment Status API v1
New read-only endpoint for reconciling payment state without relying solely on webhooks.Payment Status API
Payment Status API
GET /partner/payments/v1/{reference}/status— query lock and payment state for a reference- Authentication via
x-api-keyheader - Response includes
stage(enum:locked,paid,released,refunded,not_found),locked,paid,lockReleaseTime,paymentId,channel,currency,amount, and nestedpaymentobject payment.webhookDeliveryfield reports delivery state of the confirmation webhook- Rate limit: 60 requests per minute
- Error codes:
PARTNER_API401_UNAUTHORIZED,PARTNER_API403_MERCHANT_INACTIVE,VALIDATION400 - Intended as a safety net when webhooks are not received; webhooks remain the primary signal
2026-05-01 — v1.0.0
Initial release of the VTPE Integration API.Product Information API
Product Information API
GET {API_URL}/{reference}endpoint specification published- Response schema:
reference,total_amount,amount_detail,currency,details - Multilingual label support:
label_ar,label_en,label_fron amount and detail items - Error codes defined:
NOT_FOUND,ALREADY_PAID,SERVICE_UNAVAILABLE
Webhook Events
Webhook Events
payment.initializedevent: fires when a payment session is createdpayment.successevent: fires on confirmed payment; includeschannel(AGENCY, DELIVERY, MARKETPLACE),paidAt, andpaymentIdpayment.failevent: fires on failed or cancelled payment; includesreferenceandpaymentId- Common envelope:
{ "event": "string", "data": {} }
Authentication
Authentication
- Bearer API Secret via
Authorizationheader on all requests X-Timestampheader for replay attack prevention- HMAC-SHA256 webhook signature via
X-Signatureheader - Signing input:
payload + timestampusing your HMAC Secret
Configuration
Configuration
- Partners provide two URLs: API URL and Webhook URL
- Webhook acknowledgement: HTTP 200 with
{ "success": true }
