Manual: export Paystack transaction CSV (dashboard → Transactions → Export) and import into Xero or QuickBooks. Automated: use Zapier (Paystack charge.success → Xero Create Invoice + Mark Paid, or QuickBooks Create Sales Receipt). For developers: use the Xero API (POST /Invoices) or QuickBooks API (POST /salesreceipt) triggered by Paystack's charge.success webhook.
For monthly reconciliation without automation:
Key reconciliation note: the Paystack transaction CSV shows gross amounts (before fees). The settlement CSV shows net amounts (after Paystack fees). Match your bank statement to the settlement amounts, not transaction amounts.
For real-time accounting entries on every payment:
event = charge.success.Get weekly developer tips
Join 25,000+ developers. Practical guides, job tips, and new content — straight to your inbox.
No spam. Unsubscribe anytime.
// In your Paystack webhook handler
async function syncToXero(transaction) {
var { XeroClient } = require('xero-node');
var xero = new XeroClient({ ... }); // configure with your Xero app credentials
await xero.accountingApi.createInvoices(tenantId, {
invoices: [{
type: 'ACCREC',
contact: { name: transaction.customer.email },
lineItems: [{
description: 'Paystack Payment ' + transaction.reference,
unitAmount: transaction.amount / 100,
accountCode: '200', // your revenue account
}],
date: transaction.paid_at.split('T')[0],
dueDate: transaction.paid_at.split('T')[0],
status: 'AUTHORISED',
payments: [{ amount: transaction.amount / 100, date: transaction.paid_at.split('T')[0] }],
}],
});
}
See Paystack with Google Sheets for a lighter reporting option.
KES 2,999
The definitive guide to building payment systems with Paystack — from your first transaction to production-grade payment infrastructure across Africa. 9 modules, 47 lessons. Free preview available.
Start Paystack Course