Skip to content

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.

alt text 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

alt text

Upon successful payment, BOA will notify us about the payment status.

### Expect code 200; if not, retry with backoff timing
POST https://boa.linkpharmet.com/v1/updatePaymentStatus
Content-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 timing
POST https://boa.linkpharmet.com/v1/updatePaymentStatus
Content-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/pay
Content-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 timing
POST https://boa.linkpharmet.com/v1/updatePaymentStatus
Content-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/transactions
Content-Type: application/json

Account 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