skills/paystack-settlements/SKILL.md
Paystack Settlements API — view and track payouts from Paystack to your bank account. List settlements with status filters, view individual settlement transactions, and monitor settlement timelines. Use this skill whenever tracking payouts, reconciling bank deposits with Paystack transactions, monitoring settlement status (success/processing/pending/failed), filtering settlements by subaccount, or building financial reconciliation tools. Also use when you see references to /settlement endpoint or need to understand when funds will reach your bank account.
npx skillsauth add rexedge/paystack paystack-settlementsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
The Settlements API lets you track payouts from Paystack to your bank account.
Depends on: paystack-setup for the
paystackRequesthelper.
| Method | Endpoint | Description |
| --- | --- | --- |
| GET | /settlement | List settlements |
| GET | /settlement/:id/transactions | List transactions in a settlement |
| Status | Description |
| --- | --- |
| success | Funds successfully deposited |
| processing | Settlement is being processed |
| pending | Settlement is queued |
| failed | Settlement failed |
| Param | Type | Required | Description |
| --- | --- | --- | --- |
| perPage | integer | No | Records per page (default: 50) |
| page | integer | No | Page number (default: 1) |
| status | string | No | success, processing, pending, or failed |
| subaccount | string | No | Subaccount ID, or none for main account only |
| from | datetime | No | Start date |
| to | datetime | No | End date |
// All successful settlements
const settlements = await paystackRequest(
"/settlement?status=success&from=2024-01-01&to=2024-01-31"
);
// settlements.data[0]:
// {
// id: 3090024,
// status: "success",
// currency: "NGN",
// total_amount: 995, // Amount settled (subunits)
// effective_amount: 995, // Amount after deductions
// total_fees: 5, // Paystack fees
// total_processed: 1000, // Gross transaction amount
// settlement_date: "2022-11-09T00:00:00.000Z"
// }
// Main account settlements only (exclude subaccounts)
await paystackRequest("/settlement?subaccount=none");
// Specific subaccount settlements
await paystackRequest("/settlement?subaccount=ACCT_6uujpqtzmnufzkw");
Get the individual transactions that make up a settlement:
const txs = await paystackRequest(
`/settlement/${settlementId}/transactions?perPage=50&page=1`
);
// txs.data[0]:
// {
// id: 2067030515, // Store as unsigned 64-bit integer
// status: "success",
// reference: "da8ed5u8sz6yn95",
// amount: 10000,
// channel: "card",
// currency: "NGN",
// paid_at: "2022-09-01T10:36:37.000Z"
// }
Important: Transaction IDs should be stored as unsigned 64-bit integers.
async function reconcileSettlements(from: string, to: string) {
const settlements = await paystackRequest(
`/settlement?status=success&from=${from}&to=${to}`
);
for (const settlement of settlements.data) {
const txs = await paystackRequest(
`/settlement/${settlement.id}/transactions`
);
console.log(
`Settlement #${settlement.id}: ` +
`₦${(settlement.total_processed / 100).toFixed(2)} gross → ` +
`₦${(settlement.effective_amount / 100).toFixed(2)} net ` +
`(${txs.data.length} transactions)`
);
}
}
development
Paystack webhook integration — signature validation with HMAC SHA512, event parsing, IP whitelisting, retry policy, and all supported event types. Use this skill whenever setting up a webhook endpoint for Paystack, validating x-paystack-signature headers, handling charge.success or transfer.success events, debugging webhook delivery failures, implementing idempotent event processing, or building any server-side Paystack event listener. Also use when encountering webhook timeout issues or needing the list of Paystack webhook IP addresses.
tools
Paystack Verification API — KYC verification tools for resolving bank accounts, validating account ownership, and looking up card BIN information. Use this skill whenever verifying bank account details before transfers, confirming account holder names, validating customer identity for compliance, looking up card brand/type/bank from BIN, or implementing KYC flows. Also use when you see references to /bank/resolve, /bank/validate, /decision/bin endpoints, or need to match account numbers to names.
development
Paystack Transfers API — send money to bank accounts and mobile wallets. Initiate single and bulk transfers, finalize OTP-verified transfers, list, fetch, and verify transfer status. Use this skill whenever implementing payouts, disbursements, vendor payments, withdrawal flows, or any feature that sends money from your Paystack balance to recipients. Also use when you see references to transfer_code, TRF_ prefixed codes, the /transfer endpoint, or need to handle transfer OTP verification.
development
Paystack Transfer Recipients API — create, list, fetch, update, and delete transfer recipients (beneficiaries) for payouts. Supports NUBAN (Nigeria), GHIPSS (Ghana), Mobile Money, BASA (South Africa), and authorization-based recipients. Use this skill whenever adding bank accounts or mobile wallets as payout destinations, creating transfer recipients before initiating transfers, managing beneficiary lists, or doing bulk recipient creation. Also use when you see references to recipient_code, RCP_ prefixed codes, or the /transferrecipient endpoint.