Payve is now live in 12 African markets. See coverage →

Developer hub

Build payment flows
in minutes,
not weeks

Clean REST API, typed SDKs, interactive sandbox, and a team of developers who built every feature you're about to use.

create-payout.ts
<span class="text-[#FF7B72]">import </span>Payve from '@payve/sdk';

<span class="text-[#79C0FF]">const</span> client = new Payve({
  apiKey: process.env.PAYVE_API_KEY,
});

// Create a payout
<span class="text-[#79C0FF]">const</span> payout = await client.payouts.create({
  amount: 50000,          // ₦500.00 in kobo
  currency: 'NGN',
  channel: 'bank_transfer',
  beneficiary: {
    name: 'Amara Diallo',
    accountNumber: '0123456789',
    bankCode: '044',      // Access Bank
  },
  reference: 'pyt_ref_001',
  idempotencyKey: 'idem_abc123',
});

<span class="text-[#D2A8FF]">console</span>.log(payout.id);   // pyt_01hx...
console.log(payout.status); // 'pending'
import Payve from '@payve/sdk'; const client = new Payve({ apiKey: process.env.PAYVE_API_KEY, }); // Create a payout const payout = await client.payouts.create({ amount: 50000, // ₦500.00 in kobo currency: 'NGN', channel: 'bank_transfer', beneficiary: { name: 'Amara Diallo', accountNumber: '0123456789', bankCode: '044', // Access Bank }, reference: 'pyt_ref_001', idempotencyKey: 'idem_abc123', }); console.log(payout.id); // pyt_01hx... console.log(payout.status); // 'pending'

Payout in 5 lines

Dead-simple API, powerful enough for scale

Our SDK handles idempotency, retry logic, and error parsing so you can focus on building your product. Typed responses mean your IDE catches errors before runtime.

TypeScript-first SDK with full type coverage
Idempotency built in — no duplicate payments
Webhook signature verification in one line
Sandbox that mirrors production exactly
TypeScript
import Payve from '@payve/sdk';

const client = new Payve({
  apiKey: process.env.PAYVE_API_KEY,
});

// Create a payout to a Nigerian bank
const payout = await client.payouts.create({
  amount: 50000,       // ₦500.00 in kobo
  currency: 'NGN',
  channel: 'bank_transfer',
  beneficiary: {
    name: 'Amara Diallo',
    accountNumber: '0123456789',
    bankCode: '044',   // Access Bank
  },
  reference: 'pyt_ref_001',
  idempotencyKey: 'idem_abc123',
});

console.log(payout.id);     // pyt_01hx...
console.log(payout.status); // 'pending'

Official SDKs

Maintained by the Payve team. Typed, tested, and production-ready.

Node.js / TypeScript

Official
npm install @payve/sdk

Python

Official
pip install payve

Go

Official
go get github.com/payve/go

PHP

Official
composer require payve/sdk

Webhook events

Subscribe to any combination of events. Payloads are HMAC-SHA256 signed with your webhook secret.

payout.pending

Payout submitted to channel, awaiting processing

payout.succeeded

Payout delivered and confirmed by channel

payout.failed

Payout rejected or timed out

payin.received

Payment received into virtual account

payin.credited

Funds settled into merchant wallet

conversion.done

FX conversion completed at locked rate

Get your API keys

Create a free account and get access to sandbox API keys instantly. No credit card required.