Payments in your product. A few lines of code.
The Paylio API is RESTful, predictable, and built for developers who value clarity over clever. One SDK, full coverage.
const paylio = require('@paylio/node')
const client = new paylio.Client(
apiKey: process.env.PAYLIO_KEY
})
const transfer = await client.transfers.create(
amount: 2500000,
currency: 'NGN',
recipient: {accountNumber, bankCode},
reference: 'txn_01J9X4...'
})
// ✓ transfer.status === 'success'
// ✓ transfer.completedAt: '2024-06-23T...'API Reference
Core endpoints
/v1/transfersInitiate a bank transfer
/v1/transactionsList account transactions
/v1/cards/virtualCreate a virtual card
/v1/accounts/:idRetrieve account details
/v1/webhooksRegister a webhook endpoint
/v1/balanceGet real-time balance
SDKs
Start in your language of choice.
⬡
Node.js
npm install @paylio/node🐍
Python
pip install paylio◈
Go
go get github.com/paylio/go🐘
PHP
composer require paylio/paylio-phpSandbox
Build and test with no real money involved.
The sandbox environment mirrors production exactly. Every endpoint, every webhook, every error code. Flip one environment variable when you are ready to go live.
- Full API parity with production
- Pre-loaded test accounts and recipients
- Trigger any transaction status (pending, success, failed)
- Webhook delivery with replay and inspection
# Sandbox
PAYLIO_KEY=pk_test_4xK9m2...
PAYLIO_ENV=sandbox
# Production
PAYLIO_KEY=pk_live_9mN3x7...
PAYLIO_ENV=productionWebhooks
React to events in real time.
Paylio sends a signed webhook to your endpoint the moment a transfer completes, a card is frozen, or a fraud flag is raised. No polling. No missed events.
transfer.successFires when a transfer clears successfully
transfer.failedFires when a transfer is declined or reversed
card.frozenFires when a card is frozen by the user or the system