Versions Compared

Key

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

Below shows how the Payment link flow Integration works:

...

Panel
bgColor#F4F5F7

Base URL: https://laas.leatherback.co

Panel
bgColor#F4F5F7

HTTP Method: POST

Panel
bgColor#F4F5F7

Headers: authorization string Set value to X-API: SECRET_KEYHTTP Method: POST

Panel
bgColor#FFC400

Request BodyPayload

Here are the details you'll need:

...

Code Block
languagejs
"linkType": 0 - oneTime, 1 - reusable
"amountType": 0 - Static, 1 - Dynamic

Element

Description

Type

Example

Required

name

This is a unique name for the payment link.

string

TV Payment

Yes

description

This describes the payment link in details

string

Link to pay for your TV

Yes

linkType

This indicates the payment link type.

0 - OneTime

1 - Reusable

integer

linkType: 0 | 1

Yes

amountType

This indicate how the amount will be set for the payment link, e.g you might want to give user privileges to type the amount or give the link a defined amount

 

0 - Static

1 - Dynamic

integer

amountType: 0 | 1

No

 

If not passed

We will default it to “0” => Static

currencyCode

The transaction currency code of the amount, ISO3

string

GBP | NGN

 

Note: Currency will be based on eligibility when go-live

Yes

amountInfo

 

object

 

Yes

amountInfo.currencyCode

The transaction currency code of the amount

string

 

Yes

amountInfo.amount

The transaction amount

float

100.00

Yes

Panel
bgColor#FFC400

Response Body Response code : 200

Code Block
languagejs
{
  "value": {
    "id": "4e376b57-cbcb-4c69-8258-08dc7ef7dffe",
    "name": "Invoice Test 5",
    "description": "Test",
    "alias": "0-hvhmxp0",
    "link": "https://pay.leatherback.co/0-hvhmxp0",
    "amountInfo": {
      "currencyCode": "GBP",
      "amount": 12
    },
    "linkType": "Reuseable",
    "amountType": "Dynamic",
    "supportEmail": null,
    "logo": null,
    "status": "New",
    "createdDate": "2024-06-05T22:07:21.0548519+00:00",
    "environment": "Test"
  },
  "isSuccess": true,
  "error": "",
  "message": "Request Successful",
  "type": null,
  "title": null,
  "status": null,
  "detail": null,
  "instance": null
}

Step 2: Call Validate Payment Endpoint

...

Panel
bgColor#F4F5F7

URL: :https://laas.leatherback.co/api api/payment/pay/Validatevalidate

Panel
bgColor#F4F5F7

HTTP Method : POST

Panel
bgColor#F4F5F7

Headers : authorization key string : X-API Set value to : SECRET_KEY

Panel
bgColor#FFC400

Request Body

Here are the details you'll need:

Code Block
languagejs
{
  "amount": {
    "currencyCode": "GBP",
    "amount": 2
  },
  "channels": [
    "Card",
    "PayByTransfer",
    "PayByAccount"
  ]
}

Element

Description

Type

Example

Required

amount

The transaction amount

float, integer

100

Yes

currencyCode

The currency code of the transaction

string

Allowed currency, (GBP, NGN)

Yes

channels

Channel of payment displayed to your user. If no channels is passed, all enabled channels for your account will be returned in the response

string[]

Allowed channels,

 

PayByAccount, Card, PayByTransfer

No

Panel
panelIconIdatlassian-info
panelIcon:info:
bgColor#DEEBFF

If No channel is passed, response returned will be based on the eligible channels on your account

Panel
bgColor#FFC400

Response Body Response code : 200

Code Block
languagejs
{
  "value": {
    "isValid": true,
    "channels": [
      {
        "id": "9a69343e-c18d-4aeb-a0a2-0995b44596dc",
        "name": "Card",
        "alias": "Card",
        "description": null
      },
      {
        "id": "6bdaf37f-9518-44d6-aa79-fafb382aa5c7",
        "name": "PayByAccount",
        "alias": "PayByAccount",
        "description": null
      }
    ]
  },
  "isSuccess": true,
  "error": "",
  "message": "Request Successful",
  "type": null,
  "title": null,
  "status": null,
  "detail": null,
  "instance": null
} 

...

Panel
bgColor#F4F5F7

URL:https://laas.leatherback.co/api/payment/pay/Initiate

#F4F5F7
Panel
bgColor#F4F5F7

HTTP Method: POST

Panel
bgColor

Headers: authorization key string : X-API Set value to : SECRET_KEY

Here are the details you'll need:

Panel
panelIconIdatlassian-info
panelIcon:info:
bgColor#FFC400

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

Panel
bgColor#FFC400

Request Body

Code Block
languagejs
{
  "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

Panel
bgColor#FFC400

Response Body Response code : 200

Code Block
languagejs
{
  "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
}

...

Panel
bgColor#F4F5F7

URL: https://laas.leatherback.co/api /payment/public/Paypay/get-auth-3ds

Panel
bgColor#F4F5F7

HTTP Method : GET-3ds

Panel
bgColor#F4F5F7

Headers: authorization key string : X-API Set value to : SECRET_KEYHTTP Method : GET

Here are the details you'll need:

Panel
panelIconIdatlassian-info
panelIcon:info:
bgColor#FFC400

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

Code Block
languagejs
{
  "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)

Panel
bgColor#FFC400

Response Body Response code : 200

Code Block
languagejs
{
  "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"
}

...

Panel
bgColor#F4F5F7

URL:https://laas.leatherback.co/api /payment/pay/Finalizefinalize

Panel
bgColor#F4F5F7

HTTP Method : POST

Panel
bgColor#F4F5F7

Headers: authorization key string : X-API Set value to : SECRET_KEY

Here are the details you'll need:

Panel
panelIconIdatlassian-info
panelIcon:info:
bgColor#FFC400

Pass Payment reference from Validate Payment endpoint

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

Panel
bgColor#FFC400

Response Body Response code : 200

Code Block
languagejs
{
  "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
}

...

Panel
bgColor#79E2F2

Title: Get Call Transaction StatusReference

Panel
bgColor#F4F5F7

Description: This endpoint retrieve the current transaction status for a transaction

Panel
bgColor#F4F5F7

URL: https://laas.leatherback.co/api /payment/pay/transactions{reference}

Panel
bgColor#F4F5F7

HTTP Method : GET

Panel
bgColor#F4F5F7

Headers: authorization key string : X-API Set value to : SECRET_KEY

Here are the details you'll need:

Panel
panelIconIdatlassian-info
panelIcon:info:
bgColor#FFC400

Pass reference Id from Initiate Payment endpoint

Element

Description

Type

Example

Required

reference

Transaction reference of the transaction

String | path variables

To be passed as a path variable. Possible payment status: SUCCESSFUL, FAILED & PENDING

Yes

Panel
bgColor#FFC400

Response Body Response code : 200

Code Block
languagejs
{
  "value": {
    "paymentReference": "836",
    "amount": {
      "currencyCode": "GBP",
      "amount": 1
    },
    "paymentStatus": "SUCCESSFUL | FAILED | PENDING"
  },
  "isSuccess": true,
  "error": "",
  "message": "",
  "type": null,
  "title": null,
  "status": null,
  "detail": null,
  "instance": null
}

...

Panel
panelIconIdatlassian-info
panelIcon:info:
bgColor#FFC400

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)

...