Skip to content

docs / introduction

Introduction

Payve is a cross-border payments API built for African corridors. With a single integration you can collect payments, send payouts, and convert currencies across NGN, GHS, KES, ZAR, XOF, XAF, and more.

What you can build

  • Collect payments from customers via bank transfer, card, or mobile money
  • Send payouts to bank accounts, mobile wallets, or cards across Africa
  • Convert currencies at competitive live rates with built-in FX margin
  • Share payment links — no code required for one-time collection pages
  • Receive real-time notifications via webhooks for every state change

Base URL

All API requests are made to:

http
https://api.payve.io

During development, point your integration at your sandbox environment. Sandbox and live credentials are separate — switching is instantaneous with no code changes.

API versioning

The current version is v1. All endpoints are prefixed with /v1/.

Breaking changes will be communicated with advance notice and a new version path. Non-breaking additions (new fields, new optional parameters) may be made at any time.

Request format

All requests must include:

  • Content-Type: application/json for POST/PATCH bodies
  • Authorization: Bearer <api_key> for authentication

Amounts are always expressed in minor units (kobo for NGN, pesewas for GHS, cents for USD, etc.). A value of 1000 represents ₦10.00 or $10.00.

Response format

All responses follow the same envelope:

json
{
  "data": { ... }
}

Errors follow:

json
{
  "error": {
    "code": "validation_missing_field",
    "message": "Human-readable explanation",
    "status": 422
  }
}

Pagination

List endpoints use cursor-based pagination. Pass cursor from the previous response's meta.cursor to fetch the next page.

http
GET /v1/payins?limit=25&cursor=eyJpZCI6Inse...
json
{
  "data": [ ... ],
  "meta": {
    "cursor": "eyJpZCI6Inse..."
  }
}

When meta.cursor is null, you have reached the last page.