Guide
How to read a NIP transfer narration
Most rows on a Nigerian bank statement are transfers, not card payments. A transfer narration is free text that the bank writes, and each bank writes it in its own shape.
NIP is NIBSS Instant Payment, the rail that moves money between Nigerian banks in real time. This guide tells you what a NIP narration contains, and how Kederi reads each part. The examples are invented. A test runs each one through the engine and compares each answer on this page.
What a narration contains
A transfer narration can hold four things: the other party, a remark that the sender typed, the other bank, and a session id. A bank can leave out any of them. The order also changes from one bank to the next.
The remark is often the most useful part. "rent for august" and "salary for september" tell you why the money moved. Kederi returns the reason as intent, and a category to go with it.
Party, then remark
NIP/{bank}/{party}/{remark}NIP/GTB/ADEBAYO CHUKWU/rent for augustName Adebayo Chukwu, intent Rent, type transfer.
The same shape, another reason
NIP/{bank}/{party}/{remark}NIP/ACCESS/NGOZI EZE/salary for septemberName Ngozi Eze, intent Salary.
The session id
Many narrations carry a 30 digit session id. Each NIP transfer has one. The id is not random: it has three parts that you can read.
The first 6 digits are the institution code of the bank that started the transfer. The next 12 digits are the date and the time, as YYMMDD HHMMSS. The last 12 digits are a sequence number.
The time is useful because a statement usually prints only a date. Kederi returns it as initiated_at, and it returns the bank as bank.
A session id and a remark only
{session id} {remark}000014260312091544000112934471 School fees term 2Name Unknown counterparty, bank Access Bank, time 2026-03-12T09:15:44.
This narration names nobody, so the engine says so. It does not guess a name. The confidence is 0.5, lower than for a narration that names a party.
An inbound transfer with every part
CIP/CR/{sender}/{bank}/{session id}/{remark}/{reference}CIP/CR/AMAKA NWOSU/ACCESS/000014240326074735000012345678/School fees/ZMO0012345Name Amaka Nwosu, intent School fees, bank Access Bank, time 2024-03-26T07:47:35.
Which party the narration names
The account holder is one party to each transfer. The useful answer is the other party. Some shapes name only one party, and some name both.
If a shape names both parties, the direction of the row tells you which one to return. On a credit, the other party is the sender. On a debit, it is the recipient. Send the direction with the row, and Kederi uses it.
If you send no direction with a FROM ... TO narration, Kederi returns the recipient. The GTBank shape below is different: real statements show it only on credits, so Kederi returns the sender.
Both parties, on a debit
NIP FROM {sender} TO {recipient} {remark}NIP FROM TOBI ADEYEMI TO KEMI ALABI rentWith no direction: name Kemi Alabi, the recipient.
Both parties, on a credit
NIP FROM {sender} TO {recipient} {remark}NIP FROM TOBI ADEYEMI TO KEMI ALABI rentName Tobi Adeyemi, the sender.
Transfer between customers
TRANSFER BETWEEN CUSTOMERS {reference}-{recipient}-{bank}-{sender}TRANSFER BETWEEN CUSTOMERS 0123456789-TUNDE BAKARE-ZENITH-NGOZI EZEName Ngozi Eze. On real statements this shape is a credit to the account holder. So the engine returns the sender, which is the last part.
Try it
Read your own narration
Paste a narration into the playground and see each field that the API returns. Remove the names and the account numbers first.