Developer Portal — Coming Soon

No matching parameters, response codes, or keywords found. Please refine your query.

Introduction

 

Welcome to the OrzPay Developer Portal

Build and connect with OrzPay’s digital payment infrastructure using our APIs and developer tools. This documentation guides you through authentication, payment requests, transaction processing, webhooks, responses, and integration best practices.

The overview below illustrates how OrzPay connects customers, merchants, banks, and payment services to facilitate secure digital transactions.

System Prerequisites

Before initializing integration sequences targeting the OrzPay transaction clearing networks, confirm your application infrastructure ticks all required parameters:

Merchant ProfileRegistered and active account status on the OrzPay platform dashboard.
KYC VerificationBusiness documentation reviews approved by compliance workflows.
API Sandbox KeysSecret cryptographic credential tokens generated from account profiles.
HTTPS EnvironmentProduction websites running secure configurations with active SSL Certificates.
Callback ReceptorsAn active public webhook listener URL up to receive backend status reports.
Core Stack KnowledgeBasic technical experience structuring standard RESTful JSON data payloads.
Secure API Authentication

All secure API interactions targeted at OrzPay processing servers must undergo validation checks. Authentication runs through the standard HTTP Header profiles using private Bearer Secret Tokens.

Required HTTP Headers Configuration
Authorization: Bearer orz_live_secret_key_placeholder_data Content-Type: application/json
Security Architecture Best Practices

To safeguard balance allocations and consumer transaction records across external endpoints, strictly apply these security protection procedures:

  • Keep API Secrets Confidential: Never commit raw secret values into public asset repositories or version control histories.
  • Zero Frontend Exposure: Never bundle private authorization tokens inside client-side components (like JavaScript web bundles). Always execute queries from backend environments.
  • Force Transport Security: Reject inbound non-SSL endpoints. Enforce TLS 1.2 or higher across target payment routes.
  • Routine Token Rotation: Regularly cycle out operational access tokens through dashboards to limit risk exposure boundaries.
  • Use Environment Controls: Inject all private access parameters straight out of secure background server systems (such as .env file structures).
Base URL Routing Routes (Informational)

Target transaction configurations down these respective cluster routes depending on the operational life stage of your digital solution platform:

Staging

Sandbox Mockup Gateway

https://orzpay.com

Live

Production Core Gateway

https://orzpay.com

API Reference

Payments API

Initiate Payment

Creates a payment request using Mobile Money, QR Code, Wallet, or Virtual Card.


Verify Payment

Retrieve the current payment status using a Transaction Reference.


Cancel Payment

Cancel a pending payment before processing is completed.


Refund Payment

Issue full or partial refunds for completed transactions where applicable.


Mobile Money API

Supports direct integration with:

  • MTN Mobile Money
  • Airtel Money

Available Services

  • Collections
  • Disbursements
  • Wallet Payments
  • Merchant Payments
  • Balance Enquiries

Wallet API

The Wallet API enables developers to manage customer wallets.

Available Operations

  • Create Wallet
  • Wallet Balance
  • Transaction History
  • Send Money
  • Receive Money
  • Wallet Statement

QR Payment API

The QR Payment API enables merchants to accept contactless payments.

Available Operations

  • Generate Dynamic QR Code
  • Verify QR Code
  • Receive QR Payment
  • Payment Confirmation

Bill Payment API

Allow customers to pay multiple service providers.

Supported Categories

  • Utility Bills
  • Water Bills
  • Electricity
  • Internet
  • School Fees
  • Television Subscriptions

Remittance API

The Remittance API allows secure domestic and international money transfers.

Supported Features

  • Local Transfers
  • Cross-border Transfers
  • Beneficiary Validation
  • Transfer Status
  • Transfer History

Virtual Card API

Create and manage secure virtual payment cards.

Features include

  • Create Virtual Card
  • Freeze Card
  • Block Card
  • Card Balance
  • Transaction History
  • Card Limits
1. API Reference
1.1 Authentication

All requests directed toward OrzPay APIs must bear your secret key within the HTTP authorization headers header profile structure.

Headers Setup
Authorization: Bearer YOUR_API_KEY Content-Type: application/json
1.2 Initiate Payment

Endpoint used to generate a secure digital collection sequence spanning local infrastructure routing paths.

Endpoint Call (cURL Request)
curl -X POST https://api.orzpay.com/v1/payments \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "amount": 50000, "currency": "UGX", "phone": "2567XXXXXXXX", "provider": "MTN", "reference": "ORDER12345", "description": "Payment for order" }'
1.3 Check Payment Status

Interrogate the billing cluster engines directly to capture execution status updates asynchronously.

GET /v1/payments/{transaction_id}
GET https://orzpay.com Authorization: Bearer YOUR_API_KEY
1.4 Send Money (Transfers)
POST /v1/transfers
{ "amount": 25000, "currency": "UGX", "recipient_phone": "25678YYYYYYY", "provider": "AIRTEL", "reference": "TRSF98765" }
1.7 QR Code Payment Pipeline
POST /v1/qr/payments
{ "qr_code": "QR_CODE_STRING_DATA", "amount": 10000, "currency": "UGX", "reference": "REFQR54321" }
1.8 Refund Execution Window
POST /v1/payments/{id}/refund
{ "transaction_id": "TXN123456", "amount": 50000, "reason": "Customer return request" }

API Endpoint Cards

2. API Endpoint Navigation Cards
POST

/v1/payments

Initiate a brand new customer payment request via secure localized transaction methods.

Bearer Token Required
GET

/v1/payments/{id}

Retrieve validation and absolute lifecycle confirmation records for specific transactions.

Bearer Token Required
POST

/v1/transfers

Send immediate real-time mobile liquidity settlements directly out to verified target numbers.

Bearer Token Required
POST

/v1/collections

Perform direct requests to settle pending balances directly from consumer digital assets.

Bearer Token Required
POST

/v1/qr/payments

Scan, parse, and confirm consumer retail network intents via encrypted localized optical symbols.

Bearer Token Required
POST

/v1/payments/{id}/refund

Return funds safely back into origin wallets from clear, auditable historic balances.

Bearer Token Required
GET

/v1/transactions

Pull historically processed items using complex parameters such as pagination boundaries.

Bearer Token Required
GET

/v1/wallet/balance

View absolute tracking parameters reflecting net working capital currently active.

Bearer Token Required
POST

/v1/webhooks

Define structural callback receptors to parse event responses in real-time.

Signatures Checked

Request Parameters Table

3. Request Parameters (Initiate Payment)
ParameterTypeRequiredDescription
amountIntegerYesTotal processing value mapped as minor currency units.
currencyStringYesISO-4217 Currency representation matrix designation code (e.g. UGX).
phoneStringYesThe destination mobile subscriber dialing target configuration address.
providerStringYesTelecom switching core processing networks identifier (MTN, AIRTEL).
referenceStringYesUnique string identifier mapped directly from your merchant ledger.
callback_urlStringNoTarget processing URL location hook for asynchronous reporting.
4. Response Status Codes
HTTP CodeStatus TextCore Integration Meaning
200OKThe execution call successfully resolved transactions without logic flags.
201CreatedEntities structurally provisioned into persistence layer records.
400Bad RequestMalformed layout profiles or type validation limits encountered.
401UnauthorizedCryptographic validation checks failed or are completely missing headers.
429Too Many RequestsAPI processing limits triggered. Please apply exponential backoff techniques.
5. Secure Webhooks Engine

OrzPay delivers secure cryptographic payload blocks via webhook endpoints instantly upon resolution of background financial ledger interactions.

payment.success
payment.failed
payment.pending
refund.completed
wallet.credited
wallet.debited

Response Codes

4. Response Codes

OrzPay uses standard HTTP status response codes to signal the outcome of incoming API requests. Codes in the 2xx range indicate success, 4xx range indicate request/validation validation issues, and 5xx range indicate backend system infrastructure errors.

CodeStatusMeaning
200OKRequest completed successfully.
201CreatedTransaction successfully created.
202AcceptedRequest accepted for processing.
400Bad RequestInvalid request parameters.
401UnauthorizedInvalid or missing authentication credentials.
403ForbiddenAccess denied to requested resource.
404Not FoundRequested resource does not exist.
409ConflictDuplicate transaction hash or reference conflict.
422Unprocessable EntityValidation failed on resource payload fields.
429Too Many RequestsRate limit exceeded. Too many operations per window.
500Internal Server ErrorAn unexpected server-side error occurred.
502Bad GatewayUpstream cellular switching service node error.
503Service UnavailableService temporarily unavailable. Retry later.

Transaction Status Codes: Beyond HTTP rules, processing states trace custom lifecycle tracking schemas inside payload data objects:

StatusMeaning
PENDINGTransaction is being processed by the network provider.
SUCCESSTransaction completed and funds settled successfully.
FAILEDTransaction failed or was rejected by the cellular network.
CANCELLEDTransaction was explicitly cancelled by the customer.
REFUNDEDTransaction was successfully reversed and refunded.
EXPIREDTransaction confirmation request timed out.

Error Handling

 

The OrzPay API returns meaningful HTTP response codes and descriptive error messages.

Common Errors

Invalid API Key

The supplied API credentials are invalid.


Unauthorized Access

Authentication failed.


Invalid Amount

Payment amount does not meet transaction requirements.


Network Timeout

The payment provider did not respond within the expected time.


Duplicate Transaction

The supplied transaction reference already exists.


Insufficient Balance

Customer wallet balance is insufficient.

6. Error Handling (Demo Layout)

When a request fails, OrzPay returns a standard HTTP status error code paired with a descriptive JSON payload to help developers troubleshoot validation or processing errors.

402 Payment Required JSON Response
{ "error": { "type": "card_error", "code": "insufficient_funds", "message": "The mobile money account has insufficient funds to complete this transaction.", "param": "amount" } }
7. Webhook Signature Verification

To ensure incoming webhook events are sent directly by OrzPay and not tampered with, calculate a digital signature on your server and compare it against the value in the header.

Webhook Header Example
Orzpay-Signature: t=1787143200,v1=9f834af28e3912ca8b47ef1292026ba9823f

Webhooks

5. Webhooks Engine

OrzPay sends secure webhook notifications to your registered endpoint whenever important payment events occur. This ensures your system can update order fulfillment records automatically without manually polling status tracking endpoints.

payment.success
payment.failed
payment.pending
refund.completed
wallet.credited
wallet.debited
Webhook Notification Payload
{ "event": "payment.success", "transaction_id": "TXN123456", "reference": "ORDER12345", "amount": 50000, "currency": "UGX", "status": "SUCCESS", "timestamp": "2026-08-19T10:30:00Z" }
Expected Webhook Response (From Merchant Server)
HTTP/1.1 200 OK Content-Type: application/json { "received": true }

SDKs, Testing Sandbox & Best Practices

8. Official Client SDKs (Coming Soon)

Accelerate your integration lifecycle. While our native core servers are running final optimization tests, download our pre-release informational boilerplate models:

📦 Node.js v0.1.0-beta
📦 PHP Composer v0.1.0-beta
📦 Python pip v0.1.0-beta
9. Sandbox Environment & Testing

Every developer account grants access to an isolated staging sandbox environment to simulate payments safely without moving real money.

  • Base Sandbox URL: https://orzpay.com
  • Toggle between live keys and sandbox test keys inside your dashboard.
  • Simulate approved payments by using the keyword reference: TEST_SUCCESS.
  • Simulate a declined payment by passing the keyword reference: TEST_DECLINED.
10. Architectural Best Practices

Ensure a highly resilient connection between your merchant platform and our payment confirmation cluster routes:

  • Idempotency Keys: Always include an original transaction reference header to prevent duplicate payments from network retries.
  • Network Timeouts: Configure your HTTP client libraries to wait a minimum of 30 seconds before timing out connection tasks.
  • Webhook Fail-safes: Program your system to return a 200 OK response instantly upon receiving webhooks, before running heavy internal processing tasks.

Integrated Examples

6. Integration Examples

Review end-to-end processing scenarios below to design robust payment collection pathways on your commercial merchant application infrastructure.

Example 1: Accept a Mobile Money Payment

This workflow shows the complete asynchronous lifecycle of an MTN or Airtel Mobile Money collection call initialized from your customer checkout portal.

1
Customer Intent
The customer selects Mobile Money checkout on the merchant platform and inputs their mobile telephone number.
2
Merchant Core Request
The merchant server targets the /v1/payments endpoint over an authorized security layer with transaction metadata details.
3
OrzPay API Dispatch
OrzPay reads, records, and dispatches processing instructions to the localized target carrier core switching systems (MTN/Airtel).
4
Network USSD Push
A native secure USSD prompt appears on the target user's mobile screen demanding PIN verification to release matching wallet balances.
5
Asynchronous Webhook
Once approved, OrzPay generates a signed background callback request directed instantly to the merchant's configured endpoint asset location.
6
Merchant Balance Update
The merchant server returns an instantaneous HTTP 200 acknowledgment code back to OrzPay, closes active ledgers, and unlocks user purchases.

Example 2: Send Money (Payouts & Transfers)

This workflow explains the architectural sequence used when your merchant platform triggers outbound bulk liquidity transfers directly to a recipient's Airtel or MTN mobile money wallet.

1
Trigger Event
An automated system event (such as a merchant payout request or user withdrawal command) runs on your core server backend.
2
Balance Validation
OrzPay checks your operational escrow wallet balance to confirm there are sufficient funds to cover both the transfer value and routing fees.
3
Carrier Settlement
OrzPay securely drops processing data out onto localized clearing networks, instantly pushing balances to the destination telecom provider.
4
Instant Credit
The telecom network processes the incoming request and instantly credits the recipient's mobile wallet account balance.
5
Webhook Callback
An asynchronous callback message carrying the confirmation state string wallet.debited hits your platform's server listener interface.
Transfer API Payload Data (Informational)
{ "amount": 25000, "currency": "UGX", "recipient_phone": "25678YYYYYYY", "provider": "AIRTEL", "reference": "TRSF98765", "description": "Vendor settlement payout" }

Example 3: Handling Failed Payments & Retry Intervals

This workflow shows how the client application architecture handles common cellular exceptions—like customer rejections or system timeouts—using exponential fallback polling loops.

1
Exception Trigger
A consumer drops the screen input prompt, types an invalid PIN code, or experiences a local telecom network disconnect.
2
State Broadcast
OrzPay catches the provider's rejection message and instantly updates the internal transaction state string to read FAILED.
3
Failure Webhook
The server generates a signed background callback request containing the payment.failed event type down to your merchant platform's listener hook.
4
Failsafe Polling Loop
If your server misses the webhook due to network lag, it checks the transaction status directly using a GET /v1/payments/{id} request before timing out.
5
UI Recovery
The merchant web app catches the failure state, unlocks the checkout page interface, and prompts the user to select an alternate payment method.
Failed Webhook Event Payload Data Object
{ "event": "payment.failed", "transaction_id": "TXN00099988", "reference": "ORDER12345", "status": "FAILED", "failure_reason": "user_pin_timeout" }

FAQ Knowledge Base

Technical integration guidelines and frequently asked development answers for the OrzPay platform.

API keys can be generated directly inside your OrzPay Merchant Dashboard. Navigate to Settings > API Credentials. Sandbox keys are immediately available upon account configuration, while live production tokens require full verification approval.
All requests targeted toward our processing endpoints must include a secure HTTP Authorization header using the standard Bearer token schema format: Authorization: Bearer YOUR_SECRET_KEY.
OrzPay natively processes regional East African mobile wallet transactional settlement currency codes including UGX (Ugandan Shilling), KES (Kenyan Shilling), and TZS (Tanzanian Shilling). Additional settlement pathways are currently under active development.
Our clearing architecture connects smoothly across major regional telecom providers, featuring complete integration for MTN Mobile Money and Airtel Money network channels.
Beyond relying on background webhooks, your server can query the core lifecycle state directly by submitting an authorized GET request to our verification route mapping: /v1/payments/{transaction_id}.
When an event settles asynchronously (such as a customer confirming their push USSD PIN input prompt), our servers dispatch a signed cryptographic JSON payload straight to your pre-configured callback URL. Your listener port must return an immediate status HTTP 200 OK response.
If an exchange triggers an exception error (like a wrong input PIN, system timeout, or insufficient user wallet capital), the system returns an informative response model paired with a explicit failure code parameter string like insufficient_funds.
Always provide a completely unique alphanumeric ledger reference string inside the reference payload attribute field parameter. Our gateway tracks references and rejects duplicate execution commands to eliminate accidental billing events.
To maintain infrastructure availability, sandbox processing thresholds limit execution speeds. Production allocations scale based on specific company profiles. High-volume setups can contact technical account handlers to adjust structural bandwidth limits.
Yes. OrzPay structures an isolated, safe staging sandbox simulation workspace targeting the endpoints URL path: https://orzpay.com. No real funds move while interacting inside the sandbox.

Technical Support

Need Help Integrating OrzPay?

Our technical support team is available to help you understand the API, troubleshoot integration issues, and get your application ready for production

No matching parameters, response codes, or keywords found. Please refine your query.