PSP Reports

Paystack: Understanding the Transaction Export

All row types in Paystack's transaction CSV, what each column means, and annotated examples for every status and payment channel.

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.

Last updated: March 2026

Column Reference

ColumnDescriptionExample
ReferencePaystack's unique transaction reference. NjiaPay uses this to match against njia_payment_partner_ref.cu2sgwh570z6iab
Transaction DateWhen the transaction occurred (Paystack's own format)Feb 1st, 2026 07:25:51 AM
Customer (email)Customer's email address(redacted in examples)
Amount PaidAmount paid by the customer in major units1250
Paystack FeesPaystack's processing fee37.50
Total FeesTotal fees including VAT45.72
Amount DueNet amount after fees (what you receive)1204.28
Settlement DateWhen the settlement was processedFeb 2nd, 2026 12:00:00 AM
Gateway ResponseStatus 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 othersApproved
Customer (fullname)Customer's name(redacted in examples)
Transaction IDPaystack's internal numeric transaction ID5324169506
Card TypeCard brand. Possible values: visa debit, visa credit, VISA debit, mastercard, mastercard debit, VERVEvisa debit
Card BankIssuing bank(varies by country)
Country CodeCustomer's country. Possible values: ZA, NG, NL, US, GB, KE, GH, and othersZA
CurrencyCurrency code. Possible values: ZAR, NGNZAR
SourceHow the transaction was initiated. Possible values: merchant_api, dashboardmerchant_api
StatusFinal status (see Transaction Statuses below). Possible values: success, failed, abandoned, reversedsuccess
ChannelPayment method used (see Payment Channels below). Possible values: card, bank_transfer, bank, eft, apple_pay, qr, zero_charge_authorizationcard
Requested AmountOriginal amount requested (may differ from Amount Paid)1250
Value Added TaxVAT component of the fees6.82
Card Authentication TypeHow the card was authenticated. Possible values: 2FA, Non-2FA, Unknown, -2FA
Paystack uses a non-standard date format like Feb 1st, 2026 07:25:51 AM. Do not modify the file before uploading. NjiaPay handles this format automatically.

Transaction Statuses

StatusWhat It MeansHas Settlement Date?Amount Due Filled?
successPayment completed and settledYesYes (positive)
failedPayment was declined by the bank or gatewayNoYes (but no fees deducted)
abandonedCustomer started but never completed the paymentNoYes (but no fees deducted)
reversedA previously successful payment was reversedYesYes (positive, but money returned)

Payment Channels

ChannelDescriptionCurrencies
cardCredit/debit card paymentZAR, NGN
bank_transferDirect bank transferNGN
bankBank payment (USSD/internet banking)NGN
eftElectronic Funds TransferZAR
apple_payApple PayZAR
qrQR code paymentZAR
zero_charge_authorizationCard 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).

ColumnValue
Referencecu2sgwh570z6iab
Transaction DateFeb 1st, 2026 07:25:51 AM
Amount Paid1250
Paystack Fees39.75
Total Fees45.72
Amount Due1204.28
Settlement DateFeb 2nd, 2026 12:00:00 AM
Gateway ResponseApproved
Country CodeZA
CurrencyZAR
Statussuccess
Channelcard
Value Added Tax5.97
Card Authentication TypeNon-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.

ColumnValue
Referencebntc97lhzl
Transaction DateJun 1st, 2025 03:29:39 AM
Amount Paid1900
Total Fees28.50
Amount Due1871.50
Settlement DateJun 2nd, 2025 12:00:00 AM
Gateway ResponseApproved
CurrencyNGN
Statussuccess
Channelbank_transfer

Bank transfers in Nigeria typically settle next business day.

Successful Apple Pay (ZAR)

An Apple Pay payment of ZAR 5.

ColumnValue
Reference0199cd89-807a-7760-96dd-2ad05e0598d4.11
Transaction DateOct 10th, 2025 09:53:30 AM
Amount Paid5
Total Fees0.19
Amount Due4.81
Settlement DateOct 11th, 2025 12:00:00 AM
Gateway ResponseApproved
CurrencyZAR
Statussuccess
Channelapple_pay

Successful QR payment (ZAR)

A QR code payment of ZAR 1.

ColumnValue
Referenceuvhixfladrqt2fz
Transaction DateOct 30th, 2025 12:27:57 PM
Amount Paid1
Total Fees0.04
Amount Due0.96
Settlement DateOct 31st, 2025 12:00:00 AM
Gateway ResponsePayment successful
CurrencyZAR
Statussuccess
Channelqr

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.

ColumnValue
Referencegx7ns9hkbdn2shx
Transaction DateFeb 1st, 2026 07:00:03 AM
Amount Paid400
Total Fees0
Amount Due400.00
Settlement Date(empty)
Gateway ResponseInsufficient funds
CurrencyZAR
Statusfailed
Channelcard
Card Authentication TypeNon-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.

ColumnValue
Referenceyujupzhd4qdp2ek
Transaction DateJun 1st, 2025 07:33:27 AM
Amount Paid3900
Total Fees0
Amount Due3900.00
Settlement Date(empty)
Gateway ResponseInvalid Pay ID
CurrencyNGN
Statusfailed
Channelbank

Abandoned card payment (ZAR)

A customer started a ZAR 450 card payment but never completed it (e.g. closed the browser during 3D Secure).

ColumnValue
Reference0hg80awv3tg3ktu
Transaction DateFeb 7th, 2026 04:15:46 PM
Amount Paid450
Total Fees0
Amount Due450.00
Settlement Date(empty)
Gateway ResponseThe transaction was not completed
CurrencyZAR
Statusabandoned
Channelcard
Card Authentication TypeUnknown

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.

ColumnValue
Referencejig0yq3rsd
Transaction DateJun 1st, 2025 05:09:59 AM
Amount Paid3900
Total Fees0
Amount Due3900.00
Settlement Date(empty)
Gateway ResponseNo transfer received
CurrencyNGN
Statusabandoned
Channelbank_transfer

Reversed payment (ZAR)

A previously successful ZAR 400 card payment was reversed.

ColumnValue
Referenceoswrt4gz0cv07if
Transaction DateFeb 1st, 2026 07:04:47 AM
Amount Paid400
Total Fees13.11
Amount Due386.89
Settlement DateFeb 2nd, 2026 12:00:00 AM
Gateway ResponseApproved
CurrencyZAR
Statusreversed
Channelcard

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.

ColumnValue
ReferenceTzcf0ee6u6rgiylq
Transaction DateFeb 2nd, 2026 09:18:25 AM
Amount Paid0
Total Fees1.15
Amount Due-1.15
Settlement Date(empty)
Gateway ResponseAuthentication Successful
CurrencyZAR
Statussuccess
Channelzero_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 ResponseStatusWhat It Means
ApprovedsuccessPayment was successful
Payment successfulsuccessPayment was successful (QR/bank channel)
Authentication SuccessfulsuccessCard validation passed (zero-charge)
Insufficient funds / Insufficient FundsfailedCustomer's account has insufficient balance
DeclinedfailedBank declined without specific reason
Do not honor / Do not honourfailedIssuing bank refused the transaction
Expired cardfailedCard has expired
Invalid card numberfailedCard number is incorrect
The transaction was not completedabandonedCustomer did not finish the payment flow
No transfer receivedabandonedBank transfer was never completed
Customer CancellationabandonedCustomer explicitly cancelled
Suspected fraud / Suspected FraudfailedBank's fraud system blocked the transaction
PIN tries exceededfailedToo many incorrect PIN attempts
Timed OutfailedTransaction timed out

How Paystack Maps to NjiaPay Reports

Paystack StatusNjiaPay ReportNotes
success (non-zero amount)Successful PaymentsMatched against NjiaPay transactions
success (zero-charge)Not includedCard validations are excluded from reconciliation
failedRefunds, Chargebacks & PendingNo money moved, but tracked for completeness
abandonedRefunds, Chargebacks & PendingCustomer never completed payment
reversedRefunds, Chargebacks & PendingMoney was returned after initial success

The psp_batch_ref for Paystack corresponds to the Settlement Date.

Unlike Adyen and PayPal, Paystack's CSV does not contain non-transaction items (payouts, fees, dispute holds). These are managed separately in the Paystack dashboard and are not part of the reconciliation upload.