BOA Integration
This integration covers 3 main areas:
- Getting basic BOA account information
- Initiating payment from the
pull account - Pull account transaction notification
Paying to the pull account
Through BOA mobile app
Users will initiate payment through the BOA mobile app (located in utilities) by entering their org id. Upon entry, BOA will query our API to retrieve the payment amount.
When the user enters the org Id, BOA will query our api to get the required payment amount.
### Expect { data: { orgId: '4565', amount: 1235.00 } }GET https://boa.linkpharmet.com/v1/boa/getPaymentInfoByOrgId/4565
Upon successful payment, BOA will notify us about the payment status.
### Expect code 200; if not, retry with backoff timingPOST https://boa.linkpharmet.com/v1/updatePaymentStatusContent-Type: application/json
{ "orgId": "4565", "amount": 1235.00, "creditedFrom": "8000123", "debitedTo": "803245", "remark": ""}Through Other methods
BOA should notify us about any transactions that occurred in our pull account. This enables us to track payments that are not done using BOA mobile app.
The key difference here is, we expect merchants to write their orgId in the remark ( reason ).
### Expect code 200; if not, retry with backoff timingPOST https://boa.linkpharmet.com/v1/updatePaymentStatusContent-Type: application/json
{ "amount": 1235.00, "creditedFrom": "8000123", "debitedTo": "803245", "remark": "4565"}Initiate Payment by Linkpharm Admins
Linkpharm admins can instruct BOA to make payments from the ‘pull account.’ Here the paymentId should be unique.
### Expect { "paymentId": "4565567", "status": "pending" }POST https://url-given-by-boa.team/payContent-Type: application/json
{ "paymentId": "4565567", "to": "8000123", "from": "803245", "amount": 20000.00,}Upon payment status change, BOA will notify us.
### Expect code 200, if not retry with some backoff timingPOST https://boa.linkpharmet.com/v1/updatePaymentStatusContent-Type: application/json
{ "paymentId": "4565567", "debitedFrom": "803245", "creditedTo": "8000123",}Getting all transaction history
We also want to know our transaction history, to make sure that our data is in sync.
### Expects{ data: [ { "paymentId": "4565567", "debitedFrom": "8000123", "creditedTo": "803245", "amount": 20000.00, "createdAt": "2022-02-01T12:34:56.789Z" } ]}GET https://url-given-by-boa.team/transactionsContent-Type: application/jsonAccount verification
To verify ownership, users will input their Bank of Abyssinia (BOA) account number. We will query the BOA endpoint to retrieve the account holder’s name associated with the provided account number.
### Expect { data: { accountName: 'Kibru Demeke' } }GET https://url-given-by-boa.team/getAccountInfo/8834657