Skip to main content
Use sandbox first for all integration validation before moving to production.

Sandbox Setup

1

Use sandbox base URL

API base URL: https://sandbox-api.payfonte.com
2

Use sandbox credentials

Get your client-id and client-secret from Settings -> API Keys/Webhooks in sandbox-app.payfonte.com.
3

Set webhook endpoint

Configure a test callback URL so you can validate async transaction updates.

What To Validate Before Go-Live

Auth and Headers

Confirm all requests include client-id and client-secret.

Amount Format

Confirm you send integer minor-unit values only. Decimals are not supported.

Status Lifecycle

Validate pending/processing to final states (success or failed) in your business flow.

Webhook Handling

Verify signature validation, retries, idempotency, and response timing.

Core Test Scenarios

ScenarioExpected Result
Valid charge request201 response with transaction reference
Invalid credentialsAuthentication failure (401/403)
Decimal amount sentValidation/provider failure
Duplicate reference409 with DuplicateTransactionReference
Invalid provider slugError with InvalidProvider
Webhook deliveryCallback received and processed once (idempotent)

Provider-Specific Test Data

Orange Ivory Coast OTP simulator

For Orange Ivory Coast testing on Payfonte:
  1. Open https://mpayment.orange-money.com/mpayment-otp/login
  2. Sign in with:
    • Username: 7701901040
    • Password: MerchantWP01040
  3. Generate OTP with:
    • Phone Number: 7701101040 (usually pre-loaded)
    • PIN: 1791
  4. Use the generated OTP on the payment platform.
  • Collection test number: 254700000000
  • disbursement test number: 254711111111
  • Collection test number: 233240000000
  • disbursement test number: 233242426222

Quick Sandbox Request

curl --location 'https://sandbox-api.payfonte.com/payments/v1/checkouts' \
  --header 'client-id: <your-client-id>' \
  --header 'client-secret: <your-client-secret>' \
  --header 'Content-Type: application/json' \
  --data '{
    "reference": "test-001",
    "amount": 10000,
    "currency": "NGN",
    "country": "NG",
    "user": {
      "phoneNumber": "08012345678"
    }
  }'

Environments

Sandbox and production URLs and credential setup.

Webhooks

Verify callback payloads and signature handling.

Error Codes

Troubleshoot failed test requests quickly.