...
App calls
/transact
with the NO auth detailsIn the
details
object, app inserts the user’s message as text + a callback urlProvider responds with
PendingValidation
and a details an action object corresponding to the message from the underlying intent (text, menu, buttons, attachments)Where the response is delayed: Provider responds via the callback url
App calls
/transact/validate
to supply the user’s choice/textProvider responds with any of the completion codes
Successful
orFailed
if it has all it needs to finish off the intent. Otherwise go back to #3To query the status of a transaction, the app can call
/transact/query
Where the provider supports it, the app can call
/transact/reverse
to request a reversal (if supported)
...
Code Block | ||
---|---|---|
| ||
{ "request_ref": "{{request_ref}}", "request_type": "benefits_intent", "auth": { "type": null, "secure": null, "auth_provider": "Benefits", "route_mode": null }, "transaction": { "mock_mode": "live", "transaction_ref": "{{transaction_ref}}", "transaction_desc": "A random transaction", "transaction_ref_parent": null, "amount": 0, "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": { "message": "{{some kain text to trigger the intent or respond to a message}}", "callback_url": "{{a url to post the response to for long running proceses}}", "subsequent_messages": [], // An array of {{message}} elements. Such that if a developer already knows the EXACT set of questions that will follow in order to complete an intent, they can preload it, the provider will hold on their behalf and forward to OneChapp as each response is received. USE CASE: Making it possible to have one-shot API calls. e.g. We can then have Appsolute built a single USSD string to trigger pay4me in one shot when its time for retailer self-service built a single USSD string to trigger pay4me in one shot when its time for retailer self-service "subsequent_messages": [ { "question": "Onepipe Benefits", "answer": "Opt in" }, { "question": "Please enter your BVN", "answer": "{{ encrypted BVN }}" }, { "question": "Please enter your date (YYYY-MM-DD) of birth", "answer": "{{ encrypted DOB }}" }, { "question": "do you want to continue?", "answer": "yes" }, { "question": "4-digit transaction pin", "answer": "{{encrypted PIN}}" } ], "client_id": "{{app_code of the app}}", //optional "sender_id": "{{customer_ref}}", //optional "channel": "OnePipe", //optional } } } |
Note |
---|
NOTE: |
Info |
---|
A NOTE ON |
Response
Note |
---|
NOTE: |
Text
Code Block | ||
---|---|---|
| ||
{ "status": "Successful | Failed | PendingValidation", "message": "{{The same value in provider_response.action.message}}", "data": { "provider_response_code": "00", "provider": "Benefits", "errors": null, "error": null, "provider_response": { "reference":"263636363633777", "action": { "recipientId": "2347083108908", "message": { "type": "text", "text": "How much do you need?" }, } "meta":{} } } } |
...
Code Block | ||
---|---|---|
| ||
{
"request_ref":"{{request_ref}}",
"request_type":"benefits_intent",
"auth": {
"secure": "{{the encrypted message or selection from the user}}",
"auth_provider": "Benefits"
},
"transaction": {
"transaction_ref": "70713093460718"
}
} |
...