Paystack: Understanding the Transaction Export
Paystack exports transactions from the dashboard with settlement details. Unlike Adyen (which has separate row types for payments, refunds, and payouts) and PayPal (which includes non-transaction events), Paystack's CSV contains only transaction rows. Each row represents a single payment attempt, regardless of whether it succeeded or failed. See Paystack's support article on data exports for more details.
Column Reference
| Column | Description | Example |
|---|---|---|
Reference | Paystack's unique transaction reference. NjiaPay uses this to match against njia_payment_partner_ref. | cu2sgwh570z6iab |
Transaction Date | When the transaction occurred (Paystack's own format) | Feb 1st, 2026 07:25:51 AM |
Customer (email) | Customer's email address | (redacted in examples) |
Amount Paid | Amount paid by the customer in major units | 1250 |
Paystack Fees | Paystack's processing fee | 37.50 |
Total Fees | Total fees including VAT | 45.72 |
Amount Due | Net amount after fees (what you receive) | 1204.28 |
Settlement Date | When the settlement was processed | Feb 2nd, 2026 12:00:00 AM |
Gateway Response | Status message from the payment gateway (see Common Gateway Responses below). Possible values include: Approved, Payment successful, Authentication Successful, Insufficient funds, Declined, Do not honor, Expired card, Invalid card number, Customer Cancellation, The transaction was not completed, No transfer received, Timed Out, Suspected fraud, and many others | Approved |
Customer (fullname) | Customer's name | (redacted in examples) |
Transaction ID | Paystack's internal numeric transaction ID | 5324169506 |
Card Type | Card brand. Possible values: visa debit, visa credit, VISA debit, mastercard, mastercard debit, VERVE | visa debit |
Card Bank | Issuing bank | (varies by country) |
Country Code | Customer's country. Possible values: ZA, NG, NL, US, GB, KE, GH, and others | ZA |
Currency | Currency code. Possible values: ZAR, NGN | ZAR |
Source | How the transaction was initiated. Possible values: merchant_api, dashboard | merchant_api |
Status | Final status (see Transaction Statuses below). Possible values: success, failed, abandoned, reversed | success |
Channel | Payment method used (see Payment Channels below). Possible values: card, bank_transfer, bank, eft, apple_pay, qr, zero_charge_authorization | card |
Requested Amount | Original amount requested (may differ from Amount Paid) | 1250 |
Value Added Tax | VAT component of the fees | 6.82 |
Card Authentication Type | How the card was authenticated. Possible values: 2FA, Non-2FA, Unknown, - | 2FA |
Feb 1st, 2026 07:25:51 AM. Do not modify the file before uploading. NjiaPay handles this format automatically.Transaction Statuses
| Status | What It Means | Has Settlement Date? | Amount Due Filled? |
|---|---|---|---|
| success | Payment completed and settled | Yes | Yes (positive) |
| failed | Payment was declined by the bank or gateway | No | Yes (but no fees deducted) |
| abandoned | Customer started but never completed the payment | No | Yes (but no fees deducted) |
| reversed | A previously successful payment was reversed | Yes | Yes (positive, but money returned) |
Payment Channels
| Channel | Description | Currencies |
|---|---|---|
| card | Credit/debit card payment | ZAR, NGN |
| bank_transfer | Direct bank transfer | NGN |
| bank | Bank payment (USSD/internet banking) | NGN |
| eft | Electronic Funds Transfer | ZAR |
| apple_pay | Apple Pay | ZAR |
| qr | QR code payment | ZAR |
| zero_charge_authorization | Card validation (R0 charge to verify card details) | ZAR |
Example Rows
Successful card payment (ZAR)
A customer in South Africa paid ZAR 1,250 via card. Paystack charged ZAR 45.72 in total fees (including VAT).
| Column | Value |
|---|---|
Reference | cu2sgwh570z6iab |
Transaction Date | Feb 1st, 2026 07:25:51 AM |
Amount Paid | 1250 |
Paystack Fees | 39.75 |
Total Fees | 45.72 |
Amount Due | 1204.28 |
Settlement Date | Feb 2nd, 2026 12:00:00 AM |
Gateway Response | Approved |
Country Code | ZA |
Currency | ZAR |
Status | success |
Channel | card |
Value Added Tax | 5.97 |
Card Authentication Type | Non-2FA |
Total Fees = Paystack Fees + Value Added Tax (39.75 + 5.97 = 45.72). Always use Total Fees for reconciliation, not Paystack Fees alone.
Successful bank transfer (NGN)
A Nigerian bank transfer of NGN 1,900.
| Column | Value |
|---|---|
Reference | bntc97lhzl |
Transaction Date | Jun 1st, 2025 03:29:39 AM |
Amount Paid | 1900 |
Total Fees | 28.50 |
Amount Due | 1871.50 |
Settlement Date | Jun 2nd, 2025 12:00:00 AM |
Gateway Response | Approved |
Currency | NGN |
Status | success |
Channel | bank_transfer |
Bank transfers in Nigeria typically settle next business day.
Successful Apple Pay (ZAR)
An Apple Pay payment of ZAR 5.
| Column | Value |
|---|---|
Reference | 0199cd89-807a-7760-96dd-2ad05e0598d4.11 |
Transaction Date | Oct 10th, 2025 09:53:30 AM |
Amount Paid | 5 |
Total Fees | 0.19 |
Amount Due | 4.81 |
Settlement Date | Oct 11th, 2025 12:00:00 AM |
Gateway Response | Approved |
Currency | ZAR |
Status | success |
Channel | apple_pay |
Successful QR payment (ZAR)
A QR code payment of ZAR 1.
| Column | Value |
|---|---|
Reference | uvhixfladrqt2fz |
Transaction Date | Oct 30th, 2025 12:27:57 PM |
Amount Paid | 1 |
Total Fees | 0.04 |
Amount Due | 0.96 |
Settlement Date | Oct 31st, 2025 12:00:00 AM |
Gateway Response | Payment successful |
Currency | ZAR |
Status | success |
Channel | qr |
Note that QR payments use Payment successful as the Gateway Response (not Approved). Both indicate success.
Failed card payment (ZAR)
A card payment of ZAR 400 declined due to insufficient funds.
| Column | Value |
|---|---|
Reference | gx7ns9hkbdn2shx |
Transaction Date | Feb 1st, 2026 07:00:03 AM |
Amount Paid | 400 |
Total Fees | 0 |
Amount Due | 400.00 |
Settlement Date | (empty) |
Gateway Response | Insufficient funds |
Currency | ZAR |
Status | failed |
Channel | card |
Card Authentication Type | Non-2FA |
No fees are charged on failed payments. Amount Due shows the requested amount but no money was collected. Settlement Date is empty because nothing was settled.
Failed bank payment (NGN)
A Nigerian bank payment failed because the customer entered an invalid ID.
| Column | Value |
|---|---|
Reference | yujupzhd4qdp2ek |
Transaction Date | Jun 1st, 2025 07:33:27 AM |
Amount Paid | 3900 |
Total Fees | 0 |
Amount Due | 3900.00 |
Settlement Date | (empty) |
Gateway Response | Invalid Pay ID |
Currency | NGN |
Status | failed |
Channel | bank |
Abandoned card payment (ZAR)
A customer started a ZAR 450 card payment but never completed it (e.g. closed the browser during 3D Secure).
| Column | Value |
|---|---|
Reference | 0hg80awv3tg3ktu |
Transaction Date | Feb 7th, 2026 04:15:46 PM |
Amount Paid | 450 |
Total Fees | 0 |
Amount Due | 450.00 |
Settlement Date | (empty) |
Gateway Response | The transaction was not completed |
Currency | ZAR |
Status | abandoned |
Channel | card |
Card Authentication Type | Unknown |
Abandoned transactions mean no money was collected. They help track checkout drop-off rates.
Abandoned bank transfer (NGN)
A Nigerian bank transfer was initiated but the customer never sent the money.
| Column | Value |
|---|---|
Reference | jig0yq3rsd |
Transaction Date | Jun 1st, 2025 05:09:59 AM |
Amount Paid | 3900 |
Total Fees | 0 |
Amount Due | 3900.00 |
Settlement Date | (empty) |
Gateway Response | No transfer received |
Currency | NGN |
Status | abandoned |
Channel | bank_transfer |
Reversed payment (ZAR)
A previously successful ZAR 400 card payment was reversed.
| Column | Value |
|---|---|
Reference | oswrt4gz0cv07if |
Transaction Date | Feb 1st, 2026 07:04:47 AM |
Amount Paid | 400 |
Total Fees | 13.11 |
Amount Due | 386.89 |
Settlement Date | Feb 2nd, 2026 12:00:00 AM |
Gateway Response | Approved |
Currency | ZAR |
Status | reversed |
Channel | card |
Note that reversed transactions still show Approved as the Gateway Response (the original payment was approved). The reversed status indicates the money was returned after the fact. Fees may or may not be refunded.
Zero-charge authorization (ZAR)
A ZAR 0 charge to validate a card for future recurring payments. Paystack charges a flat fee for card validations.
| Column | Value |
|---|---|
Reference | Tzcf0ee6u6rgiylq |
Transaction Date | Feb 2nd, 2026 09:18:25 AM |
Amount Paid | 0 |
Total Fees | 1.15 |
Amount Due | -1.15 |
Settlement Date | (empty) |
Gateway Response | Authentication Successful |
Currency | ZAR |
Status | success |
Channel | zero_charge_authorization |
The negative Amount Due (-1.15) means you owe Paystack for the verification fee despite collecting no money. These appear in your settlement as deductions.
Common Gateway Responses
Paystack's Gateway Response field contains the raw message from the payment processor. Here are the most common ones and what they mean:
| Gateway Response | Status | What It Means |
|---|---|---|
Approved | success | Payment was successful |
Payment successful | success | Payment was successful (QR/bank channel) |
Authentication Successful | success | Card validation passed (zero-charge) |
Insufficient funds / Insufficient Funds | failed | Customer's account has insufficient balance |
Declined | failed | Bank declined without specific reason |
Do not honor / Do not honour | failed | Issuing bank refused the transaction |
Expired card | failed | Card has expired |
Invalid card number | failed | Card number is incorrect |
The transaction was not completed | abandoned | Customer did not finish the payment flow |
No transfer received | abandoned | Bank transfer was never completed |
Customer Cancellation | abandoned | Customer explicitly cancelled |
Suspected fraud / Suspected Fraud | failed | Bank's fraud system blocked the transaction |
PIN tries exceeded | failed | Too many incorrect PIN attempts |
Timed Out | failed | Transaction timed out |
How Paystack Maps to NjiaPay Reports
| Paystack Status | NjiaPay Report | Notes |
|---|---|---|
success (non-zero amount) | Successful Payments | Matched against NjiaPay transactions |
success (zero-charge) | Not included | Card validations are excluded from reconciliation |
failed | Refunds, Chargebacks & Pending | No money moved, but tracked for completeness |
abandoned | Refunds, Chargebacks & Pending | Customer never completed payment |
reversed | Refunds, Chargebacks & Pending | Money was returned after initial success |
The psp_batch_ref for Paystack corresponds to the Settlement Date.