Debit Lien

e. Debit Lien

This describes the request and response for the debit lien. It will be good to explain that the amount in the debit lien request can be different from the amount that was placed on lien.

This means that there are 3 main cases here;

where the debit lien amount is equal to the amount placed on lien
where the debit lien amount is greater than the amount placed on lien
where the debit lien amount is lesser than the amount placed on lien
Each of these cases are handled differently as explained below;

when the debit lien amount is equal to the amount placed on lien, then the amount is just debited.
when the debit lien amount is greater than the amount that was placed on lien, in this case the customer’s total balance (balance + amount placed on lien) is computed and if this total balance is greater than or equal to the debit lien amount, then the amount is debited and a success response code is returned. But if this total balance is less than the debit lien amount, then an insufficient fund response is returned.
when the debit lien amount is less than the amount that was placed on lien, in this case the debit lien amount is just debited from the placed lien and the remaining lien amount returned to the customer’s balance. A special case to this can be when the debit lien amount is 0, this is also very possible and in fact is how the placed lien is reverted. In the case of a 0 amount, the placed lien is just removed and the place lien amount added back to the customer’s balance.

Request

POST /lien/debit

Request attributes

Attribute

Type

Description

Required

requestId

String

A unique id for every request sent across. Very necessary for the mac

True

walletId

String

The wallet id of the wallet to debit lien on

True

amount

Long

The actual amount to be debited, in minor. Amount can also be 0, in which case the lien is removed and no value is debited.

True

transactionReference

String

The reference that can be used to retrieve the transaction. The transaction reference is the same as the transaction reference of the request that places the lien.

True

mac

String

The hash included in every request that is used to make sure the request is from the actual source, and has not been tampered with

True

transactionDateTime

LocalDateTime

This is the date and time the transaction occurred

False

terminalId

String

This is an identifier for the terminal the transaction came from

True

terminalType

String

A 2 digit string that defines the type of terminal.

True

merchantId

String

The merchant that accepted the card

True

acquiringInstitutionId

String

An id to identify the institution that acquired the transaction

False

currencyCode

String

A code that identifies the currency the transaction was done on

True

cardAcceptorNameLocation

String

The name and location of the card acceptor

True

rrn

String

This is the Retrieval Ref Number

True

stan

String

This is the System Trace Audit Number

True

Request Mac

The request mac is generated by concatenating the following attributes in the order which they occur, generate a HMAC using the shared private key and get the hex string of the result. More details about the MAC in section 1.0

transactionReference

requestId

walletId

rrn

stan

amount

currencyCode

Response attributes

Attribute

Type

Description

Required

requestId

String

The request id that came with the request.

True

responseCode

String

The code that signifies the status of the operation.

True

amount

Long

The amount that came with the request.

True

transactionReference

String

The reference that came with the request

True

mac

String

The hash included in every response that is used to make sure the request is from the actual source it should be and has not been tampered with

True

Response Mac

The response mac is generated by concatenating the following attributes in the order which they occur, generate a HMAC using the shared private key and get the hex string of the result. More details about the MAC in section 1.0

transactionReference

requestId

responseCode

Sample requests

The sample requests for the debit only covers for 3 scenarios. It should be noted that the difference with a response from the other is just the response code. The response code table in section 4.0 can be used to know the response code that can be used for other scenarios that might not be covered in the sample requests.

Successful

Request

{"requestId": "1fds5d6f7g8hijokmojih6f5d",
"walletId": "1234567894","amount": 100,
"transactionReference": "11123456789",
"mac": "hexdigest",
"transactionDateTime": "2020-05-15T13:32:09",
"terminalId": "3IWPDVNA","terminalType": "21",
"merchantId": "WEBPAYDIRECTVNA",
"acquiringInstitutionId": "428051043",
"currencyCode": "566",
"cardAcceptorNameLocation": "MATRIX ENERGY LIMITE   LA           LANG",
"rrn" : "000111000111",
"stan" : "000018"}

Response

{"amount": 100,"responseCode": "00","transactionReference": "11123456789","requestId": "1","mac": "hexdigest"}

Invalid mac

Request

{"requestId": "1fds5d6f7g8hijokmojih6f5d",
"walletId": "1234567894","amount": 1000,"transactionReference": "11123456789",
"mac": "hexdigest",
"transactionDateTime": "2020-05-15T13:32:09",
"terminalId": "3IWPDVNA","terminalType": "21",
"merchantId": "WEBPAYDIRECTVNA",
"acquiringInstitutionId": "428051043",
"currencyCode": "566",
"cardAcceptorNameLocation": "MATRIX ENERGY LIMITE   LA           LANG","rrn" : "000111000111",
"stan" : "000018"}

Response

{"amount": 1000,"responseCode": "12","transactionReference": "11123456789","requestId": "1","mac": "hexdigest"}

Insufficient funds

Request

{"requestId": "1fds5d6f7g8hijokmojih6f5d","walletId": "1234567894","amount": 1000,"transactionReference": "11123456789",
"mac": "hexdigest","transactionDateTime": "2020-05-15T13:32:9",
"terminalId": "3IWPDVNA","terminalType": "21",
"merchantId": "WEBPAYDIRECTVNA",
"acquiringInstitutionId": "428051043",
"currencyCode": "566",
"cardAcceptorNameLocation": "MATRIX ENERGY LIMITE   LA           LANG","rrn" : "000111000111",
"stan" : "000018"}

Response

{"amount": 1000,"responseCode": "51","transactionReference": "11123456789","requestId": "1","mac": "hexdigest"}

Did this page help you?