With this service, the calling app can request for a fixed amount of money be held from a customer’s account or wallet or other store of value. Apps will collect authorisation details and forward to OnePipe to execute a debit, OnePipe will in turn forward to the provider’s dedicated implementation. For this service, apps are required to obtain consent to hold funds from the customer (likely at a prior time before the time the hold is required).
Info |
---|
Before you proceed: Please read this. |
...
Getting consent
App calls
/transact
with the relevant auth detailsProvider responds with
WaitingForOTP
orPendingValidation
as may be requiredApp calls
/transact/validate
to supply OTPProvider responds with any of the completion codes
Successful
orFailed
. If successful, provider also has to respond with aprovider_token
Placing a hold
App calls
/transact
withauth.type
set toprovider_token
and passing a prior received token.Provider responds with any of the completion codes
Successful
orFailed
.
Releasing a hold
App calls
/transact/reverse
with thetransaction_ref
of used while placing a hold to release a hold.
Gliffy | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
...
Code Block | ||
---|---|---|
| ||
{ "request_ref":"{{request-ref}}", "request_type":"hold_funds", "auth": { "type": "bank.account", "secure": "encrypted(bank.account;bankcode)", "auth_provider": "Beeceptor", "route_mode":"provider | options | null" }, "transaction": { "mock_mode": "live", "transaction_ref": "{{transaction-ref}}", "transaction_desc": "A random transaction", "transaction_ref_parent": "", "amount": 10000, "customer":{ "customer_ref": "{{customer id}}", "firstname": "Uju", "surname": "Usmanu", "email": "ujuusmanu@gmail.com", "mobile_no": "234802343132" }, "meta":{ "a_key":"a_meta_value_1", "another_key":"a_meta_value_2" }, "details": null } } |
...
Code Block | ||
---|---|---|
| ||
{
"status": "WaitingForOTP",
"message": "Please enter the OTP sent to 2348022****08",
"data": {
"provider_response_code": "T0",
"provider": "Beeceptor",
"errors": null,
"error": null,
"provider_response": {
"reference": "000022200225154318222333334432",
"meta":{
"field_key":"field_value",
"field_key":"field_value"
}
}
}
} |
Request 2
Code Block | ||
---|---|---|
| ||
{ "request_ref":"{{request_ref}}", "request_type":"hold_funds", "auth": { "secure": "{{encrypted_otp}}", "auth_provider": "Beeceptor" }, "transaction": { "transaction_ref": "70713093460718" } } |
...
Code Block | ||
---|---|---|
| ||
{ "status": "Successful", "message": "Transaction processed successfully", "data": { "provider_response_code": "00", "provider": "Beeceptor", "errors": null, "error": null, "provider_response": { "provider_token": "22333055555", "referencetoken_expiry": "90988889999999988888yyyy-MM-dd-hh-mm-ss", "tokenhold_expiry": "yyyy-MM-dd-hh-mm-ss", "reference": "000022200225154318222333334432", "meta":{ "holdfield_expirykey":"field_value", "yyyy-MM-dd-hh-mm-ss""field_key":"field_value" } } } } |
Place actual hold
Request
Code Block | ||
---|---|---|
| ||
{ "request_ref":"{{request-ref}}", "request_type":"hold_funds", "auth": { "type": "provider_token", "secure": "encrypted(provider_token)", "auth_provider": "Beeceptor", "route_mode":"provider | options | null" }, "transaction": { "mock_mode": "live", "transaction_ref": "{{transaction-ref}}", "transaction_desc": "A random transaction", "transaction_ref_parent": "", "amount": 10000, "customer":{ "customer_ref": "{{customer id}}", "firstname": "Uju", "surname": "Usmanu", "email": "ujuusmanu@gmail.com", "mobile_no": "234802343132" }, "meta":{ "a_key":"a_meta_value_1", "another_key":"a_meta_value_2" }, "details": null } } |
...
Code Block | ||
---|---|---|
| ||
{ "status": "Successful", "message": "Transaction processed successfully", "data": { "provider_response_code": "00", "provider": "Beeceptor", "errors": null, "error": null, "provider_response": { "hold_expiry": "yyyy-MM-dd-hh-mm-ss", "reference": "90988889999999988888000022200225154318222333334432", "meta":{ "holdfield_expirykey":"field_value", "yyyy-MM-dd-hh-mm-ss" "field_key":"field_value" } } } } |
Info |
---|
Note that this service supports that the details object is null |
...