Zing Extract is our tool that allows businesses accept manual uploads of bank statements and the likes from their customers who prefer not to link their financial accounts via the Connect Widget.

Here’s how it works:

Step 1: Call the extract endpoint

To run this endpoint, you only need the base64_string of the pdf file as well as the code for the provider the document was generated from. Eg If a bank statement was generated from Access Bank, you would need to provide the code for Access Bank. You can find the endpoint to fetch the full list of providers we currently support and their codes from the API Reference.

Authenticate your requests by generating a token with your API key
curl -X 'POST' \
'https://api.zingfi.co/extract/start' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <token>' \
--data '{"base64_string":"JVBERi0xLjQKMSAw...","code":"044"}'

Once you call the endpoint, Zing starts a job and begins the extraction process. We then provide you with the job-id which you’ll need for the next step.

Step 2: Fetch the job

Use the job-id from the previous request to get the data extracted. There are three possible responses you could get depending on the status of the job. If the job is complete, you’ll get the full data extracted from the uploaded bank statement or payslip. If the job is still running, you’ll need to check back in a few seconds but this hardly happens. On the very rare occasion that your extraction failed, we’ll let you know as well. If your extraction fails, this could be as a result of an invalid file format or files larger than we currently allow. See limitations for more details.

{
  "date":"Tuesday, March 28, 2023 to Sunday, April 30, 2023",
  "balance":685.24,
  "total_debit":1092652.71,
  "account_name":"OLUWATAMILORE ...",
  "total_credit":1093204.96,
  "transactions":[
            {
              "date":"28-MAR-23",
              "debit":0,
              "credit":4000,
              "balance":4132.99,
             "narration":"Transfer from SEMIRAH AJUMAH to OLUWATAMILORE"
           },
           {
             "date":"31-MAR-23",
             "debit":0.4,
             "credit":0,
             "balance":4132.59,
             "narration":"WHT ON CREDIT INTEREST"
           },
           {
             "date":"31-MAR-23",
             "debit":0,
             "credit":3.96,
             "balance":4136.55,
             "narration":"CREDIT INTEREST CAPITALIZATION"
          },
          {
            "date":"03-APR-23",
            "debit":0,
            "credit":375,
            "balance":4511.55,
            "narration":"RIA/USD75.00/ACCOUNT/OLUWATAMILORE/CA66114219"
          },
          ...
          ...
              ],
    "account_number":"07337...."
}

Extracted Data

Extracted data may differ slightly across providers types but they are largely similar. For example, while a Kuda Bank extracted data might include transaction category and extracted data from GTBank does not, you can be sure that they both have similar data like account_name, account_number, credit etc.

You can call the endpoint to retrieve a job as many times as you like without charge. We only charge you when make a request to extract data from a document.

If you would like to try out Zing Extract, please sign up here or email hello@zingfi.co. We’re giving out your first 500 pages free of charge.