Skip to main content
Standard checkout is a redirect flow:
  1. Your backend creates a checkout session.
  2. Payfonte returns a checkout URL.
  3. You redirect the customer to that URL.
  4. Customer completes payment and Payfonte notifies your system via webhook.

Why Use Standard Checkout?

Fastest Launch

Minimal frontend complexity. Your backend creates a checkout and redirects users.

Hosted Experience

Payfonte handles payment method UI and provider-specific interactions.

Reliable Status Updates

Use webhook events and transaction verification for final payment outcomes.

Integration Steps

1

Collect payment details on your backend

Prepare required fields like amount, currency, country, and customer information.
2

Create checkout session

Send a request to POST /payments/v1/checkouts with your client-id and client-secret.
3

Redirect customer

Redirect users to data.shortURL (or data.url) from the response.
4

Confirm final status

Process webhook notifications and/or verify transaction status before order fulfillment.

Create Checkout Request

curl --location 'https://sandbox-api.payfonte.com/payments/v1/checkouts' \
  --header 'client-id: <client-id>' \
  --header 'client-secret: <client-secret>' \
  --header 'Content-Type: application/json' \
  --data '{
    "reference": "ORDER-1001",
    "amount": 50000,
    "currency": "NGN",
    "country": "NG",
    "redirectURL": "https://yourapp.com/payment/complete",
    "webhook": "https://yourapp.com/webhooks/payfonte",
    "user": {
      "email": "customer@example.com",
      "phoneNumber": "2348012345678",
      "name": "John Doe"
    }
  }'
Sample response:
{
  "data": {
    "url": "https://checkout-staging.payfonte.com/payfusion/66579afe04916ddcfcf73e7b",
    "shortURL": "https://l.6bd.co/XXXXX",
    "reference": "ORDER-1001",
    "amount": 50000
  }
}

Parameter Reference

FieldTypeRequiredDescription
referencestringRecommendedUnique transaction identifier from your system
amountintegerYesAmount in minor units (no decimals)
currencystringYesISO currency code (for example NGN)
countrystringYesISO country code (for example NG)
userobjectYesCustomer object (email/phone/name fields)
redirectURLstringNoCustomer return URL after checkout
webhookstringNoPer-transaction webhook override URL
metadataobjectNoCustom fields for your internal tracking

Status values

Collection status values from API responses:
  • pending
  • failed
  • abandoned
  • success

Amount Rule (Important)

Payfonte does not support decimal API amounts. Send integer minor-unit values only.
  • 500.00 NGN -> 50000
  • 1250.75 NGN -> 125075
See Amount Specification for full conversion rules.

After Redirect and Payment

Customer redirect result

After checkout, customer is redirected to your redirectURL with transaction context such as status and reference.
If webhooks are configured, Payfonte sends asynchronous status updates to your webhook endpoint.
For critical flows, verify transaction status from your backend before shipping goods or crediting wallets.
If payment fails, allow user retry and keep your order state pending until final success is confirmed.

Production Best Practices

PracticeWhy It Matters
Generate references server-sidePrevent duplicate references and improve reconciliation
Process webhook idempotentlyAvoid duplicate order fulfillment on retries
Validate redirect parametersProtect against malformed/forged client-side values
Use backend verificationEnsure final status before business-critical actions

Inline Checkout

Embedded checkout alternative for on-page payment.

Webhooks

Set up and validate payment event callbacks.

API Reference

Endpoint and schema details for checkout operations.