Submission / Upload
# Request Parameters
The following parameters are expected:
| Field | Description | Type |
|---|---|---|
| id_no | Client's national identity number | String |
| client_name | Client's name eg. John Doe | String |
| phone_number | Client's phone number eg. 07******** | String |
| client_type | This identifies the client type, either a CORPORATE or an INDIVIDUAL | String |
| organization_code | This is an identifier for the organization. This will be provided by the Spin Mobile Team | String |
| document_type | The type of statement to be processed. Supported: MOMO, BANK | String |
| bank*code | An identifier for the specific bank. _Example* ABSA, DTB, NCBA, CANTENARY. Refer below for the full list. | String |
| sender | An identifier for the mode of submission. Example LMS_API, email@spinmobile.co. | String |
| decrypter | E-Statement password. Send blank if the file is not encrypted. Example 123456 | String |
| remote*identifier | An external reference to help identify the customer while submitting data to the client system. _Example* ID Number | String |
Please find sample implementation on the left
# Supported Banks
The following are the supported banks:
| Bank / MFB | Code |
|---|---|
| Centenary Bank | CENTENARY |
| DTB Bank | DTB |
| NCBA Bank | NCBA |
| ABSA Bank | ABSA |
Please Note: The list of supported is always changing as new banks are incorporated. To check the latest added banks log into the system, go to Banks Menu and click on Upload Statement
# Supported Document Types
The following are the supported statement types:
| E-Statement | Document Type |
|---|---|
| MOMO Statement | MOMO |
| Bank Statement | BANK |
| Airtel Statement | MOMO |
| MTN Paybill | MOMO |
# Response
E-statement submission is an asynchronous process where the statement is submitted first, then the results are sent back to the client through a webhook. On submission, below is a sample response
Description
| Field | DataType | Description |
|---|---|---|
| code | String | A success or failure error code. |
| message | String | A description of the results, indicating the number of documents uploaded successfully and any that failed |
| unique_identifier | String | On a successful submission, a string is returned with the merged statements unique id. This unique id can be used to query the merged statements status or analysis later on. |
| upload_error | List | On submission, a list is returned with the statements whose upload failed. Its contains document dict which identifies the failed statement and an error dict that indicates why the upload failed. The list is empty if none failed. |
API format
This is the data format submitted to third-party endpoint
{
"code": "100.000.000",
"message": "2 Documents Uploaded Successfully. 1 Document failed to upload",
"unique_identifier": "some_text",
"upload_error": [
{
"document": {
"document_key": "file_3",
"document_type": "BANK",
"decrypter": "",
"bank_code": "NCBA",
"sender": ""
},
"error": {
"code": "600.003.004",
"message": {
"id": "some_text",
"info": "file already exist"
}
}
}
]
}