Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Info

Before you proceed: Please read this.

Commercial model

Providers will be required to settle monies collected to a designated account by the client bank, less their fees. The client bank will handle secondary settlement to the apps, less their own fee and OnePipe'sHost clients will simply charge a fee to the calling app, and share it with the provider, OnePipe and ISO.

Special configuration notes

All providers of this service should implement OTP, but support the configuration of otp_override such that based on this configuration, they could be instructed to bypass the OTP requirement for an app.

Settlement & fees model

Depending on the provider implementation, this service supports any of the 3 modelsThis service can only support one mode.

Amount

Model

How it works

The provider removes a percentage or flat fee from the amount as fee and settles the difference to the app owner (via the client).

Commission

The provider surcharges the payer with an extra fee and pays a share of that surcharge to the app owner, OnePipe and Client

Invoice

The client will invoice the calling app periodically for all calls to the endpoint.

Process flows

Sequence of calls

  1. Getting consent

    1. App calls /transact with the

    right
    1. relevant auth details

    2. Provider responds with WaitingForOTP or PendingValidation as may be required

    3. App calls /transact/validate to supply OTP

    if needed
    1. Provider responds with any of the completion codes Successful or Failed.

  2. To query the status of a transaction, the app can call /transact/query

  3. Where the provider supports it, the app can call /transact/reverse to request a reversal

  4. To receive available options for this service, apps can call /transact/options.

Gliffy
imageAttachmentIdatt154960129
macroIdf789c82d-58a3-43fe-99e9-bcb5d9ad3769
baseUrlhttps://onepipe.atlassian.net/wiki
nameOnePipe 2.0 - Collect
diagramAttachmentIdatt154960124
containerId32243713
timestamp1581864667991
    1. If successful, provider also has to respond with a provider_token

  1. Placing a hold

    1. App calls /transact with auth.type set to provider_token and passing a prior received token.

    2. Provider responds with any of the completion codes Successful or Failed.

Gliffy
macroId13a2f148-7e83-472f-949a-bcafb47284a9

Interface specification - (App → OnePipe)

...

Code Block
languagejson
{
  "request_ref":"{{request-ref}}", 
  "request_type":"collecthold_funds",
  "auth": {
    "type": "bank.account", 
    "secure": "4if1oYEoHx5Kp+PZj6RibJlXbx8zIKkPencrypted(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
  }
}

...