Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Version History

« Previous Version 20 Next »

Below shows how the Payment link flow Integration works:

  • From your server, call our Validate Payment link, Initiate the payment link endpoint with the payment details.

  • We'll return a link alias to a payment page. Redirect your customer to this link to make the payment.

  • When the transaction is completed, we'll redirect the customer back to you.

Step 1: Call Validate Payment Endpoint

Title: Validate Payment link

Description : This endpoint may be consumed to get the available channels for a transaction currency

URL: api /payment/pay/Validate

HTTP Method : POST

Headers : authorization Set value to X-API: SECRET_KEY

string

Request Body

Here are the details you'll need:

{
  "amount": {
    "currencyCode": "NGN",
    "amount": 0
  }
  ],
  
  • amount: The transaction amount of the goods purchased by the customer.

  • currency Code: A three-letter ISO code for the currency in which you want to accept the payment. A unique code that represents a defined business currency. E.g NGN=Nigerian Naira, USD =United State Dollars, etc (Required) If you don't specify a value, we'll assume "NGN"

Response Body Response code : 200

{
  "value": {
    "isValid": true,
    "channels": [
      {
        "id": "4f737265-27cb-40fd-84a6-f41d999a39d1",
        "name": "PayByTransfer",
        "alias": "PayByTransfer",
        "description": null
      },
      {
        "id": "2d60ca92-8f2f-486a-aa21-35cc9434898f",
        "name": "Card",
        "alias": "Card",
        "description": null
      }
    ]
  },
  "isSuccess": true,
  "error": "",
  "message": "Request Successful",
  "type": null,
  "title": null,
  "status": null,
  "detail": null,
  "instance": null
}

Step 2: Call Initiate Payment Endpoint

Title: Initiate Payment link

Description: This endpoint may be consumed to initiate the payment link transaction

URL: api /payment/pay/Initiate

HTTP Method: POST

Headers: authorization Set value to X-API: SECRET_KEY

string

Here are the details you'll need:

Pass Reference value id generated from Validate Payment endpoint in the Reference field depending on the selected Channel (“Pay By transfer”, “Pay By Cards”) and Currency

Request Body

{
  "channel": "PayByTransfer",
  "amount": 500,
  "currency": "NGN",
  "narration": "SHOE",
  "reference": "4f737265-27cb-40fd-84a6-f41d999a39d1",
  "link": {
    "alias": "0-mjlyfib"
  },
  "userInformation": {
    "firstName": "Ayobami",
    "lastName": "Queen",
    "phone": "08132681675",
    "emailAddress": "ayobamsy@yahoo.com"
  },
  "paymentRequestProps": {
    "additionalProp1": "string",
    "additionalProp2": "string",
    "additionalProp3": "string"
  },
  "metaData": {
    "additionalProp1": "string",
    "additionalProp2": "string",
    "additionalProp3": "string"
  }
}
  • Channel: An array of payment channels to control what channels you want to make available to the user to make a payment with. Available channels include: ["pay by card", "PayByTransfer", "pay with account" ]

  • amount: The amount to charge the customer

  • currency Code: A three-letter ISO code for the currency in which you want to accept the payment. A unique code that represents a defined business currency. E.g NGN=Nigerian Naira, USD =United State Dollars, etc (Required) If you don't specify a value, we'll assume "NGN"

  • narration: This is usually a description of items being purchased by a customer

  • reference: This is an Id that uniquely identifies a channel type (this is derived from the Validate Payment endpoint response)

  • alias: An alias allows users to access a page (node) or file at an alternative path. A redirect is moving a user to the correct file or page (node) because it no longer exists at a previous path. Alias lets you choose a nickname for your page, meaning a new URL that points to the content the same way the original URL does

  • firstName: This is the first Name of the Customer

  • lastName: This is the Last Name of the Customer

  • phone: This is the phone number of the Customer

  • emailAddress: This is the email address of the customer

  • metadata (optional): An object containing any extra information you'd like to store alongside the transaction

Response Body Response code : 200

{
  "value": {
    "paymentStatus": "REQUIRE_USER_OFFLINE_ACTION",
    "message": "Payment Initiated",
    "bankAuthURL": null,
    "paymentItem": {
      "channel": "PayByTransfer",
      "message": "Payment Initiated",
      "amount": 500,
      "fees": 0,
      "reference": "4f737265-27cb-40fd-84a6-f41d999a39d1",
      "metaData": {
        "transfer-info": {
          "note": "NILL",
          "bank": "Providus",
          "account_number": "9979314914",
          "account_name": "MERCHANT(jkkffg)",
          "expiration": "2023-03-04T13:43:11.0447022Z",
          "mode": "banktransfer"
        }
      }
    }
  },
  "isSuccess": true,
  "error": "",
  "message": "",
  "type": null,
  "title": null,
  "status": null,
  "detail": null,
  "instance": null
}

Step 3: Call Authenticate Payment Endpoint

Title: Authenticate Payment link

Description : This endpoint may be consumed to Authenticate (Card) transaction to confirm if it requires a 3ds authentication or not

URL: api /payment/public/Pay/get-auth-3ds

HTTP Method : GET

Headers: authorization Set value to X-API: SECRET_KEY

string

Here are the details you'll need:

Pass the Reference value id for channel Pay By transfer from Validate Payment endpoint

{
  "referenceId": "4f737265-27cb-40fd-84a6-f41d999a39d1"
}
  • reference: This is an Id that uniquely identifies a channel type (this is derived from the Validate Payment endpoint response)

Response Body Response code : 200

{
  "type": "string",
  "title": "string",
  "status": 0,
  "detail": "string",
  "instance": "string",
  "isSuccess": true,
  "error": "string",
  "message": "string",
  "responseCode": "string",
  "value": {
    "status": "string",
    "IsAuthenticationEnabled": true,
    "Recommendation": "string",
    "message": "string",
    "authenticationhtml": "string"
  },
  "additionalProp1": "string",
  "additionalProp2": "string",
  "additionalProp3": "string"
}

Step 4: Call Finalize Payment Endpoint

Title: Finalize Payment

Description : This endpoint may be consumed to finalize the transaction

URL: api /payment/pay/Finalize

HTTP Method : POST

Headers: authorization Set value to X Api: SECRET_KEY

string

Here are the details you'll need:

Pass Payment reference from Validate Payment endpoint

{
  "paymentReference": "string"
}
  • paymentreference: This is an Id that uniquely identifies a payment made

Response Body Response code : 200

{
  "type": "string",
  "title": "string",
  "status": 0,
  "detail": "string",
  "instance": "string",
  "isSuccess": true,
  "error": "string",
  "message": "string",
  "responseCode": "string",
  "value": {
    "status": "string",
    "message": "string"
  },
  "additionalProp1": "string",
  "additionalProp2": "string",
  "addi
}

Step 5: Call Transaction Reference Endpoint

Title: Get Transaction Status

Description: This endpoint may be consumed to retrieve the Transaction reference for a transaction

URL: api /payment/pay/transactions{reference}

HTTP Method : GET

Headers: authorization Set value to X-API: SECRET_KEY

string

Here are the details you'll need:

Pass reference Id from Initiate Payment endpoint

{
  "referenceId": "4f737265-27cb-40fd-84a6-f41d999a39d1"
}
  • referenceId: This is an Id that uniquely identifies a channel type (this is derived from the Validate Payment endpoint response)

Response Body Response code : 200

{
  "value": {
    "paymentReference": "TSIXIKHJYBA3DPG",
    "amount": {
      "currencyCode": "NGN",
      "amount": 500
    },
    "paymentStatus": 0
  },
  "isSuccess": true,
  "error": "",
  "message": "",
  "type": null,
  "title": null,
  "status": null,
  "detail": null,
  "instance": null
}

After the payment is initiated and completed successfully: We'll send you a webhook if you have that configured on the dev portal. We'll send an email receipt to your customer if the payment was successful (Coming soon)

  • No labels