Use case
Kederi for accounting and audit
An accountant posts a client's bank statement to the books. An auditor checks it. On a Nigerian statement, both read the same free text: transfers that name a person, small charges with short codes, and bills that repeat each month.
Kederi reads each row and returns a payee, a purpose, a category and, for a charge, its type. Your team then posts or checks the rows that need a person. The people, accounts and references in the examples are invented. The businesses are real merchants in our directory. A test runs each one through the engine and compares each answer on this page.
Payees and the purpose of a payment
A transfer to a supplier names the supplier and often the reason. Kederi returns the two apart: the party in name and the words that the sender typed in remark.
A supplier payment
NIP/ACCESS/GRACELAND VENTURES/OFFICE STATIONERYName Graceland Ventures, remark office stationery.
Rent
NIP/GTB/ADEBAYO CHUKWU/rent for augustName Adebayo Chukwu, intent Rent.
Bank charges, by type
A statement has many small debits that are not purchases. Kederi returns a fee object for each one. Its type says what the charge is. Its avoidance says if the client can stop it: statutory is a tax or a levy, and service is a fee for a service that the client can change. The guide to bank charges has each type.
Stamp duty
FGN STAMP DUTYType stamp_duty, avoidance statutory.
VAT on a fee
VAT ON NIP TRANSFER FEEType vat, avoidance statutory.
SMS alerts
SMS ALERT CHARGESType sms_alert, avoidance service.
A prepaid electricity token
IKEDC PREPAID TOKENName Ikeja Electric, category Electricity, MCC 4900, counterparty null. A payment to a merchant, not a transfer to a person.
The whole statement
POST /statements reads a statement file: CSV, JSON, OFX or QIF, and a PDF from GTBank or Zenith Bank. The answer says how it read the columns and the date order, so you can check them. For a Zenith Bank PDF, it also checks each printed balance against the previous balance and the movement. A row that does not agree usually shows that the file was read wrong, so check it before you use the rows. A GTBank PDF prints no running balance, and the answer says so.
POST /reports then gives these reports over the rows: fees totals the charges by type and says which ones the client can stop, subscriptions lists the bills that repeat, and duplicates lists charges that look like the same charge twice, for a person to check.
Each answer carries a trace: the steps that the engine took to reach it. A reviewer can see why a row has its name and category.
What Kederi does not do
Kederi is not accounting software. It does not post to a ledger, and its categories are not your chart of accounts. You map its categories to your accounts once, and your software posts the rows.
Kederi stores no transaction. A client's rows are in your request, and the answer comes back. Nothing stays on our side to read later. A correction that you send to POST /feedback is the one exception, and only when you send it. See the privacy page.
Try it on a statement
The playground reads one narration with no account. The API reference has each request in six languages. If your bank's file does not read, tell us the bank and the file type.
Sign up