diff --git a/docs.html b/docs.html new file mode 100644 index 0000000..8877f58 --- /dev/null +++ b/docs.html @@ -0,0 +1,983 @@ + + + + + + SeerBit API Reference + + + + + + + + + +

SeerBit API Reference (1.0)

Download OpenAPI specification:Download

Authentication

Bearer

Security Scheme Type API Key
Header parameter name: Authorization

Basic

Security Scheme Type HTTP
HTTP Authorization Scheme basic

AUTHENTICATION

Generate Encrypted Secret Key

To make API calls on SeerBit, you will be required to pass a bearer token. To generate a token simply pass your pubic and secret key to rceive a token to process further API calls.

+
Request Body schema: application/json
key
required
string

This consist of the PrivateKey and the publicKey separated with a '.' in the middle(eg:{privateKey.publicKey}

+

Responses

Request samples

Content type
application/json
{
  • "key": "SBTESTSECK_9Cb8dbqR5Rc2JwZaa77P5QYHzQaeGUcrkEMD1dEi.SBTESTPUBK_9sN3TuLgW6a9redEfY48cKKkUa09Pz2u"
}

Response samples

Content type
application/json
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

STANDARD CHECKOUT

Generate Hash

This is used to ensure the request payload has not been altered

+
Request Body schema: application/json
publicKey
required
string

This is the merchant public key.

+
amount
required
string

This is the amount to be paid.

+
currency
required
string

This is the currency the transaction is to be carried out in.

+
country
required
string

This is the country from which the transaction is been carried out from

+
paymentReference
required
string

This is the unique identifier for a transaction, to be generated by merchant.

+
email
required
string

This is the email of the customer.

+
productId
required
string

This is the product id entered by the merchant.

+
productDescription
required
string

This is the product description supplied by the merchant.

+
callbackUrl
required
string

Responses

Request samples

Content type
application/json
{
  • "publicKey": "SBTESTPUBK_9sN3TuLgW6a9redEfY48cKKkUa09Pz2u",
  • "amount": "10.00",
  • "currency": "NGN",
  • "country": "NG",
  • "paymentReference": "3791090233047WZ73QN",
  • "email": "mamadou.diouf@intouchgroup.net",
  • "productId": "15013",
  • "productDescription": "touch badge",
  • "callbackUrl": "https://gutouch.com"
}

Response samples

Content type
application/json
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

Payment Link From Checkout

SeerBit Checkout Standard Initialises a transaction from merchants server to generate a payment link which redirects your customers to a page to make payment and after payment has been made the customer is redirected back to the merchants website.

+
Authorizations:
Request Body schema: application/json
publicKey
required
string

This is the merchant public key.

+
amount
required
string

This is the amount to be paid.

+
currency
required
string

This is the currency the transaction is to be carried out in.

+
country
required
string

This is the country from which the transaction is been carried out from

+
paymentReference
required
string

This is the unique identifier for a transaction, to be generated by merchant.

+
email
required
string

This is the email of the customer.

+
fullName
required
string

This is the full name of the customer.

+
tokenize
required
boolean

This indicates whether the card should be tokenized for future transactions.

+
callbackUrl
required
string

This is the callback url supplied by the merchant so that Seerbit can redirect back to it .

+

Responses

Request samples

Content type
application/json
{
  • "publicKey": "YOUR_PUBLIC_KEY",
  • "amount": "10.00",
  • "currency": "NGN",
  • "country": "NG",
  • "paymentReference": "payment_reference",
  • "email": "mamadou.diouf@intouchgroup.net",
  • "fullName": "Mamadou Diouf",
  • "tokenize": false,
  • "callbackUrl": "https://seerbit.com"
}

Response samples

Content type
application/json
{}

ORDER CHECKOUT

Create Order Before Payment

Create an order before payment

+
Authorizations:
Request Body schema: application/json

Responses

Request samples

Content type
application/json
{
  • "email": "test@mvaa.com",
  • "publicKey": "SBTESTPUBK_9sN3TuLgW6a9redEfY48cKKkUa09Pz2u",
  • "paymentReference": "2PPTG108Q13432E29P23R5L6W93I9",
  • "fullName": "",
  • "orderType": "BULK_BULK",
  • "mobileNumber": "",
  • "country": "NG",
  • "currency": "NGN",
  • "amount": "250.00",
  • "orders":
    [
    ]
}

Response samples

Content type
application/json
{}

Create Order After Payment

Create an order after payment

+
Authorizations:
Request Body schema: application/json

Responses

Request samples

Content type
application/json
{
  • "paymentReference": "0w0eimkizc41602513327447",
  • "publicKey": "SBTESTPUBK_9sN3TuLgW6a9redEfY48cKKkUa09Pz2u",
  • "orders":
    [
    ]
}

Response samples

Content type
application/json
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

Update Order

Update an order

+
Authorizations:
Request Body schema: application/json

Responses

Request samples

Content type
application/json
{
  • "paymentReference": "0w0eimkizc41602513327447",
  • "publicKey": "SBTESTPUBK_9sN3TuLgW6a9redEfY48cKKkUa09Pz2u",
  • "orders":
    [
    ]
}

Response samples

Content type
application/json
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

Get Orders

Get a list of orders

+
Authorizations:

Responses

Response samples

Content type
application/json
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

Get an Order with Payment Reference

Get order details with payment reference

+
Authorizations:

Responses

Response samples

Content type
application/json
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

Get Order with Order Id

Get order details with OrderId

+
Authorizations:

Responses

Response samples

Content type
application/json
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

PAYMENT METHOD

Initiate Payment

Accept more payments with our unified payments API. Accept payments from all major cards and the most popular local and alternative payment methods all in a single integration.

+
Authorizations:
Request Body schema: application/json

Responses

Request samples

Content type
application/json
Example
{
  • "fullName": "john doe",
  • "email": "johndoe@gmail.com",
  • "mobileNumber": 248360953,
  • "publicKey": "SBPUBK_QGOX9NBAHWDYY1PAFSG2PTDOSSZYEWXM",
  • "paymentReference": "O456S5077907982QWEuWAT05M",
  • "deviceType": "nokia 3310",
  • "sourceIP": "1.0.1.0",
  • "currency": "GHS",
  • "productDescription": "snacks",
  • "country": "GH",
  • "network": "MTN",
  • "voucherCode": "",
  • "fee": "0.00",
  • "amount": "1.00",
  • "productId": "grocery",
  • "paymentType": "MOMO"
}

Response samples

Content type
application/json
Example
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

Get Banks

Get list of banks

+

Responses

Response samples

Content type
application/json
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

MOMO

OTP Momo

When making MOMO transfers, and OTP is required to complete the payment

+
Authorizations:
Request Body schema: application/json
linkingReference
required
string

This is the internal gateway reference

+
otp
required
string

This is the TOKEN sent to customer’s phone or email

+

Responses

Request samples

Content type
application/json
{
  • "linkingReference": "CF630837081601460887752",
  • "otp": "81015"
}

Response samples

Content type
application/json
Example
null

NON 3DS PAYMENT

Charge Card

This payment option is used to charge non 3d transactions

+
Authorizations:
Request Body schema: application/json

Responses

Request samples

Content type
application/json
{
  • "publicKey": "SBTESTPUBK_dhrpzbRpR34l6VmqkCFOKA94L5E1jSTu",
  • "amount": "10.00",
  • "fullName": "Diei Okechukwu Peter",
  • "mobileNumber": 8030540611,
  • "currency": "NGN",
  • "country": "NG",
  • "paymentReference": "NGN0000037Q35",
  • "email": "okechukwu.diei2@gmail.com",
  • "productId": "Foods",
  • "productDescription": "RASPBERRY",
  • "cardNumber": "5123450000000008",
  • "expiryMonth": "05",
  • "expiryYear": "21"
}

Response samples

Content type
application/json
Example
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

CARD

Check Status

This Operation allows you to check the status of a transaction via the status check api. This is done by making a Get request to the endpoint below with your payment reference.

+
Authorizations:

Responses

Response samples

Content type
application/json
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

ACCOUNT

Validate Transaction

This option is used to complete an account transaction, when OTP is required

+
Authorizations:
Request Body schema: application/json
linkingReference
required
string

This is the internal gateway reference

+
otp
required
string

This is the TOKEN sent to customer’s phone or email

+

Responses

Request samples

Content type
application/json
{
  • "linkingReference": "F092648971601293723061",
  • "otp": "123456"
}

Response samples

Content type
application/json
Example
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

TOKENIZE

Tokenize a Card

In order to store your customers payment details, you need to pass some additional parameter when making the first payment request using the payments/tokenize endpoint, the Cvv field and pin are optional(this could be null). After the first payment is made, the payment details is collected and a token is generated for it which is then stored for future use.

+
Authorizations:
Request Body schema: application/json

Responses

Request samples

Content type
application/json
{
  • "publicKey": "SBPUBK_OMX6ZNRZPLIHQ9Y0ZG6FCNR0EAYIGIAT",
  • "amount": "0.00",
  • "fullName": "john doe",
  • "mobileNumber": 8033456599,
  • "currency": "NGN",
  • "country": "NG",
  • "paymentReference": "KES0092992991",
  • "email": "johndoe@gmail.com",
  • "productId": "Foods",
  • "productDescription": "RASPBERRY",
  • "cardNumber": "5123450000000008",
  • "cvv": "100",
  • "expiryMonth": "05",
  • "expiryYear": "21"
}

Response samples

Content type
application/json
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

AUTHORISE

Authorise

In SeerBit API, the term “authorisation” indicates, that payment is authorised but not captured. This allows a merchant to cancel transaction at their discretion, typically based but not limited to fraud-related activities. This authorisation state is valid for a limited period of time, which provides a window to cancel the transaction.

+
Authorizations:
Request Body schema: application/json

Responses

Request samples

Content type
application/json
Example
{
  • "paymentReference": "PREAUTH124456789798765k3K1CB0",
  • "publicKey": "SBTESTPUBK_dhrpzbRpR34l6VmqkCFOKA94L5E1jSTu",
  • "cardNumber": "5123450000000008",
  • "cvv": "100",
  • "expiryMonth": "05",
  • "expiryYear": "21",
  • "currency": "NGN",
  • "country": "NG",
  • "productDescription": "preauth test capture",
  • "amount": "100.00",
  • "email": "johndoe@gmail.com",
  • "fullName": "john doe"
}

Response samples

Content type
application/json
Example
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

3DS Authorise

PIN and CVV are not Required to complete Transaction. Authorization is completed on 3DS.

+
Authorizations:
Request Body schema: application/json

Responses

Request samples

Content type
application/json
{
  • "paymentReference": "30451B789S987643108hgfdsfP6W",
  • "publicKey": "SBPUBK_OMX6ZNRZPLIHQ9Y0ZG6FCNR0EAYIGIAT",
  • "cardNumber": "5242820813772165",
  • "cvv": "865",
  • "expiryMonth": "02",
  • "expiryYear": "22",
  • "currency": "NGN",
  • "country": "NG",
  • "productDescription": "preauth test capture",
  • "amount": "1.00",
  • "email": "johndoe@gmail.com",
  • "fullName": "john doe",
  • "callbackUrl": "https://google.com"
}

Response samples

Content type
application/json
Example
{}

RECURRENT

Initiate Subscription

To complete this transaction, merchant is expected to redirect to the 3DSecure site via the redirect URL provided with the response below. However if the redirect url is not returned and the code is S20 and the message is transaction is pending, the Validate OTP endpoint should be called as the customer would have received a token either by email or sms on the customers phone. To get the subscription created or the status of a subscription for the customer, the GET Subscription endpoint is called by passing the paymentReference as billingId.

+
Authorizations:
Request Body schema: application/json

Responses

Request samples

Content type
application/json
{
  • "publicKey": "SBTESTPUBK_9sN3TuLgW6a9redEfY48cKKkUa09Pz2u",
  • "paymentReference": "TPR2181t55PKR540RPP1U1W4392WO",
  • "planId": "",
  • "cardNumber": "5123450000000008",
  • "expiryMonth": "05",
  • "callbackUrl": "https://www.google.com",
  • "expiryYear": "21",
  • "cvv": "100",
  • "amount": "1000.00",
  • "currency": "NGN",
  • "productDescription": "Pilot Test Subscription",
  • "productId": "Terrain",
  • "country": "NG",
  • "startDate": "2020-02-25 00:00:00",
  • "cardName": "Kolade Samuel",
  • "billingCycle": "WEEKLY",
  • "email": "akintoyekolawole@gmail.com",
  • "mobileNumber": "08033456500",
  • "customerId": "12345678901234",
  • "pin": "0999",
  • "type": "3DSECURE",
  • "billingPeriod": "1",
  • "subscriptionAmount": true
}

Response samples

Content type
application/json
{}

Get a Subscription

Get customer subscription

+
Authorizations:

Responses

Response samples

Content type
application/json
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

Create Plan

Create a new recurring payment plan.

+
Authorizations:
header Parameters
Content-Type
required
string
Default: application/json
Request Body schema: application/json
productId
required
string

The name of the plan.

+
productDescription
required
string

The description of the plan.

+
amount
required
string

The amount for the plan.

+
billingCycle
required
string

The billing cycle (e.g., HOURLY).

+
limit
required
integer

The maximum number of cycles.

+
publicKey
required
string

The merchant public key.

+
country
required
string

The country code.

+
currency
required
string

The currency code.

+
allowPartialDebit
required
boolean

Whether partial debit is allowed.

+

Responses

Request samples

Content type
application/json
{
  • "productId": "Plan name",
  • "productDescription": "Description of Plan",
  • "amount": "100",
  • "billingCycle": "HOURLY",
  • "limit": 5,
  • "publicKey": "SBPUBK_xxxxx",
  • "country": "NG",
  • "currency": "NGN",
  • "allowPartialDebit": false
}

Response samples

Content type
application/json
{
  • "payload":
    {
    },
  • "message": "Successful",
  • "status": "SUCCESS",
  • "responseCode": "00"
}

Get Merchant Subscription

Retrieve all subscriptions for a merchant by their public key.

+
Authorizations:
path Parameters
publicKey
required
string

The merchant public key.

+

Responses

Response samples

Content type
application/json
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

Charge Subscription

Charge a recurring subscription using an authorization code.

+
Authorizations:
header Parameters
Content-Type
required
string
Default: application/json
Request Body schema: application/json
amount
required
string
publicKey
required
string
email
required
string
allowPartialDebit
required
boolean
authorizationCode
required
string
paymentReference
required
string
currency
required
string

Responses

Request samples

Content type
application/json
{
  • "amount": "200",
  • "publicKey": "YOUR_PUBLIC_KEY",
  • "email": "js@emaildomain.com",
  • "allowPartialDebit": true,
  • "authorizationCode": "1234567898765325",
  • "paymentReference": "2938765582R37065687631",
  • "currency": "NGN"
}

Response samples

Content type
application/json
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

Get Customer Subscription

Retrieve all subscriptions for a customer by their customerId and merchant public key.

+
Authorizations:
path Parameters
publicKey
required
string

The merchant public key.

+
customerId
required
string

The customer ID.

+

Responses

Response samples

Content type
application/json
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

Update Customer Subscription

Update a customer's subscription details.

+
Authorizations:
header Parameters
Content-Type
required
string
Default: application/json
Request Body schema: application/json
amount
required
string
currency
required
string
country
required
string
mobileNumber
required
string
billingId
required
string
publicKey
required
string
status
required
string

Responses

Request samples

Content type
application/json
{
  • "amount": "20000",
  • "currency": "NGN",
  • "country": "NG",
  • "mobileNumber": "08033456500",
  • "billingId": "PUBK_PjQ5d1578650322483",
  • "publicKey": "YOUR_PUBLIC_KEY",
  • "status": "INACTIVE"
}

Response samples

Content type
application/json
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

INVOICE

Create And Send Invoice

This endpoint is used to create an invoice for a customer.

+
Request Body schema: application/json
publicKey
required
string

This is the merchant public key.

+
orderNo
string

This is the order number.

+
dueDate
string

This is the date the invoice is due.

+
currency
required
string

This is the currency the transaction is to be carried out in.

+
recieversName
string

This is the name of the customer.

+
customerEmail
required
string

This is the email of the customer.

+
Array of objects

This is the list of items in the invoice.

+

Responses

Request samples

Content type
application/json
{
  • "publicKey": "SBTESTPUBK_9sN3TuLgW6a9redEfY48cKKkUa09Pz2u",
  • "orderNo": 3333332213212,
  • "dueDate": "2023-10-31",
  • "currency": "NGN",
  • "recieversName": "Muyiwa Akintade",
  • "customerEmail": "janesmith@emaildomain.com",
  • "invoiceItems":
    [
    ]
}

Response samples

Content type
application/json
{
  • "message": "Invoice created successfully",
  • "payload":
    {
    },
  • "code": "00"
}

Resend An Invoice

This endpoint is used to resend an invoice to a customer.

+
Authorizations:
path Parameters
publicKey
required
string

This is the merchant public key.

+
invoiceNo
required
string

This is the invoice number.

+

Responses

Response samples

Content type
application/json
{
  • "message": "Invoice has been sent successfully",
  • "code": "00"
}

Get Invoice By Customer Email

Retrieve all invoices for a customer by their email address.

+
Authorizations:
path Parameters
publicKey
required
string

The merchant public key.

+
customerEmail
required
string

The customer's email address.

+

Responses

Response samples

Content type
application/json
{
  • "payload":
    [
    ],
  • "code": "00"
}

Get Invoice By Invoice Number

Retrieve an invoice by its invoice number.

+
Authorizations:
path Parameters
publicKey
required
string

The merchant public key.

+
invoiceNo
required
string

The invoice number.

+

Responses

Response samples

Content type
application/json
{
  • "payload":
    [
    ],
  • "code": "00"
}

Get Invoice By Order Number

Retrieve an invoice by its order number.

+
Authorizations:
path Parameters
publicKey
required
string

The merchant public key.

+
orderNo
required
string

The order number.

+

Responses

Response samples

Content type
application/json
{
  • "payload":
    [
    ],
  • "code": "00"
}

POCKET

Authenticate Pocket

This endpoint is used to authenticate a pocket using the provided key.

+
Request Body schema: application/json
email
required
string <email>
password
required
string

Responses

Request samples

Content type
application/json
{
  • "email": "your pocket email",
  • "password": "your password"
}

Response samples

Content type
application/json
{
  • "responseCode": "00",
  • "message": "Success",
  • "data":
    {
    }
}

Add Sub-Pocket

Create a sub-pocket under a parent pocket.

+
Authorizations:
path Parameters
PocketID
required
string

The parent pocket ID.

+
header Parameters
public-key
required
string

The merchant public key.

+
Content-Type
required
string
Default: application/json
Request Body schema: application/json
Array ()
tagGroup
string
reference
required
string
pocketFunction
required
string
Enum: "BOTH" "CREDIT" "DEBIT"
currency
required
string
tagName
string
selfOwned
required
boolean
required
object

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
{
  • "responseCode": "00",
  • "message": "Success",
  • "data":
    [
    ]
}

Get Pocket Details

Retrieve details of a pocket by its ID.

+
Authorizations:
path Parameters
PocketID
required
string

The pocket ID.

+
header Parameters
public-key
required
string

The merchant public key.

+

Responses

Response samples

Content type
application/json
{
  • "responseCode": "00",
  • "message": "Success",
  • "data":
    {
    }
}

Get Pocket Balance

Retrieve the balance of a pocket by its ID.

+
Authorizations:
path Parameters
PocketID
required
string

The pocket ID.

+
header Parameters
public-key
required
string

The merchant public key.

+

Responses

Response samples

Content type
application/json
{
  • "responseCode": "00",
  • "message": "Success",
  • "data":
    {
    }
}

Get Merchant Sum

Retrieve the sum of balances for a merchant's pockets.

+
Authorizations:
path Parameters
PocketID
required
string

The pocket ID.

+
header Parameters
public-key
required
string

The merchant public key.

+

Responses

Response samples

Content type
application/json
{
  • "responseCode": "00",
  • "message": "Success",
  • "data":
    {
    }
}

Get Transaction Details

Retrieve details of a pocket transaction by its reference.

+
Authorizations:
path Parameters
reference
required
string

The transaction reference.

+
header Parameters
public-key
required
string

The merchant public key.

+

Responses

Response samples

Content type
application/json
{
  • "responseCode": "00",
  • "message": "Success",
  • "data":
    {
    }
}

Find Transactions

Search for pocket transactions with pagination.

+
Authorizations:
query Parameters
pocketId
required
string

The pocket ID.

+
page
required
integer
Default: 0

Page number (zero-based).

+
size
required
integer
Default: 10

Number of records per page.

+
header Parameters
public-key
required
string

The merchant public key.

+
Content-Type
required
string
Default: application/json

Responses

Response samples

Content type
application/json
{
  • "responseCode": "00",
  • "message": "Success",
  • "data":
    {
    }
}

Pocket to Pocket Transfer

Transfer funds from one pocket to another.

+
Authorizations:
path Parameters
fromPocketID
required
string

The source pocket ID.

+
toPocketID
required
string

The destination pocket ID.

+
header Parameters
public-key
required
string

The merchant public key.

+
Content-Type
required
string
Default: application/json
Request Body schema: application/json
amount
required
number

The amount to transfer.

+
currency
required
string

The currency of the transfer.

+
reference
required
string

The unique reference for the transfer.

+
description
required
string

A description for the transfer.

+

Responses

Request samples

Content type
application/json
{
  • "amount": 100,
  • "currency": "NGN",
  • "reference": "00112827",
  • "description": "Transfer from one pocket to another"
}

Response samples

Content type
application/json
{
  • "responseCode": "00",
  • "message": "Successful",
  • "data": { }
}

PAYOUT

Generate OTP

Generate an OTP for a pocket action. The OTP provided in the otp field should be passed as the passKey in the generatesignature and payout request.

+
Authorizations:
header Parameters
public-key
required
string

The merchant public key.

+
Content-Type
required
string
Default: application/json
Request Body schema: application/json
actionItem
required
string

The action for which the OTP is generated.

+
pocketId
required
string

The pocket ID.

+

Responses

Request samples

Content type
application/json
{
  • "actionItem": "APPROVE_DISBURSEMENT",
  • "pocketId": "your_pocket_id_here"
}

Response samples

Content type
application/json
{
  • "responseCode": "00",
  • "message": "Success",
  • "data":
    {
    }
}

Generate Signature

Generate a signature for a payout action. Instead of manually creating a signature, use the Get Signature endpoint.

+
Authorizations:
header Parameters
Content-Type
required
string
Default: application/json
Request Body schema: application/json
reference
required
string

The transaction reference.

+
amount
required
string

The amount for the payout.

+
currency
required
string

The currency for the payout.

+
description
required
string

The payout description.

+
accountNumber
required
string

The account number to credit.

+
bankCode
required
string

The bank code of the destination bank.

+
actionType
required
string

The action type (e.g., APPROVE_DISBURSEMENT).

+
passKey
required
string

The OTP or passKey for the payout.

+

Responses

Request samples

Content type
application/json
{
  • "reference": "REF123456",
  • "amount": "10",
  • "currency": "NGN",
  • "description": "test",
  • "accountNumber": "1234567890",
  • "bankCode": "000013",
  • "actionType": "APPROVE_DISBURSEMENT",
  • "passKey": "028087"
}

Response samples

Content type
application/json
{
  • "responseCode": "00",
  • "message": "Success",
  • "data": "{signature}"
}

Initiate Payout

Use the Initiate Payout endpoint, passing the generated signature in the request body.

+
Authorizations:
path Parameters
pocketId
required
string

The pocket ID.

+
header Parameters
public-key
required
string

The merchant public key.

+
Content-Type
required
string
Default: application/json
Request Body schema: application/json
reference
required
string

The transaction reference.

+
amount
required
string

The amount for the payout.

+
currency
required
string

The currency for the payout.

+
description
required
string

The payout description.

+
accountNumber
required
string

The account number to credit.

+
bankCode
required
string

The bank code of the destination bank.

+
passKey
required
string

The OTP or passKey for the payout.

+
actionType
required
string

The action type (e.g., APPROVE_DISBURSEMENT).

+
signature
required
string

The generated signature for the payout.

+

Responses

Request samples

Content type
application/json
{
  • "reference": "JIN-12345678901101",
  • "amount": "10",
  • "currency": "NGN",
  • "description": "test",
  • "accountNumber": "1234567890",
  • "bankCode": "000013",
  • "passKey": "028087",
  • "actionType": "APPROVE_DISBURSEMENT",
  • "signature": "signature-value"
}

Response samples

Content type
application/json
{
  • "responseCode": "00",
  • "message": "Successful",
  • "data":
    {
    }
}

VIRTUAL ACCOUNT

Create Virtual Account

The Virtual Account API allows you to create reserve accounts for your customers to make payments.

+
Authorizations:
header Parameters
Content-Type
required
string
Default: application/json
Request Body schema: application/json
publicKey
required
string

The merchant public key.

+
fullName
required
string

The full name of the account holder.

+
bankVerificationNumber
required
string

The BVN of the account holder.

+
currency
required
string

The currency for the account.

+
country
required
string

The country code.

+
reference
required
string

The unique reference for the account.

+
email
required
string

The email address of the account holder.

+

Responses

Request samples

Content type
application/json
{
  • "publicKey": "YOUR_PUBLIC_KEY",
  • "fullName": "Jane Smith",
  • "bankVerificationNumber": "",
  • "currency": "NGN",
  • "country": "NG",
  • "reference": "FIRST_VIRTUAl_17",
  • "email": "js@emaildomain.com"
}

Response samples

Content type
application/json
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

Get Virtual Account

Retrieve details of a virtual account by its payment reference.

+
Authorizations:
path Parameters
paymentReference
required
string

The virtual account payment reference.

+

Responses

Response samples

Content type
application/json
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

Delete a Virtual Account

Delete a virtual account by its reference.

+
Authorizations:
path Parameters
reference
required
string

The virtual account reference.

+

Responses

Response samples

Content type
application/json
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

Get Payment

Retrieve payment details for a virtual account using the public key and account number.

+
Authorizations:
path Parameters
publicKey
required
string

The merchant public key.

+
accountNumber
required
string

The customer's account number.

+

Responses

Response samples

Content type
application/json
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

CARD TOKENISATION

Create Card Token

Create a card token for future payments.

+
Authorizations:
header Parameters
Content-Type
required
string
Default: application/json
Request Body schema: application/json
publicKey
required
string
amount
required
string
fullName
required
string
mobileNumber
required
string
redirectUrl
required
string
currency
required
string
country
required
string
paymentReference
required
string
email
required
string
paymentType
required
string
cardNumber
required
string
expiryMonth
required
string
expiryYear
required
string
cvv
required
string
pin
required
string

Responses

Request samples

Content type
application/json
{
  • "publicKey": "YOUR_PUBLIC_KEY",
  • "amount": "50",
  • "fullName": "Jane Smith",
  • "mobileNumber": "03447522256",
  • "redirectUrl": "http://example.com",
  • "currency": "NGN",
  • "country": "NG",
  • "paymentReference": "204g4de74a7ib0j18dg6bi521aiaejf4",
  • "email": "janesmith@seerbit.com",
  • "paymentType": "CARD",
  • "cardNumber": "512348984984988883",
  • "expiryMonth": "01",
  • "expiryYear": "25",
  • "cvv": "000",
  • "pin": "2222"
}

Response samples

Content type
application/json
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

Get Card Authorisation Code

After the first successful transaction, you can query the transaction with the payment reference endpoint to confirm the status of transaction. The queried payment reference returns the authorizationCode that will be used for subsequent charges.

+
path Parameters
paymentReference
required
string

The payment reference for the transaction.

+

Responses

Response samples

Content type
application/json
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

Charge Authorisation Token

Charge a card using a previously obtained authorisation code (token).

+
Authorizations:
header Parameters
Content-Type
required
string
Default: application/json
Request Body schema: application/json
publicKey
required
string
amount
required
string
paymentReference
required
string
authorizationCode
required
string

Responses

Request samples

Content type
application/json
{
  • "publicKey": "YOUR_PUBLIC_KEY",
  • "amount": "110",
  • "paymentReference": "charge_test_3451",
  • "authorizationCode": "ye773838jje8837abe"
}

Response samples

Content type
application/json
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

Bulk Charge Token

Charge multiple cards using authorization tokens in a single request.

+
Authorizations:
header Parameters
Content-Type
required
string
Default: application/json
Request Body schema: application/json
Array ()
publicKey
required
string
amount
required
string
paymentReference
required
string
authorizationCode
required
string

Responses

Request samples

Content type
application/json
[
  • {
    },
  • {
    }
]

Response samples

Content type
application/json
{
  • "code": "00",
  • "message": "Successful",
  • "payload":
    {
    }
}

Query Bulk Charge with BatchId

Query the status and results of a bulk charge operation using the batchId.

+
Authorizations:
query Parameters
batchId
required
string

The batch ID of the bulk charge operation.

+

Responses

Response samples

Content type
application/json
{
  • "code": "00",
  • "message": "Successful",
  • "payload":
    {
    }
}
+ + + + \ No newline at end of file diff --git a/redoc-static.html b/redoc-static.html new file mode 100644 index 0000000..a150286 --- /dev/null +++ b/redoc-static.html @@ -0,0 +1,1011 @@ + + + + + + SeerBit API Reference + + + + + + + + + +
+ +
+ +

SeerBit API Reference (1.0)

Download OpenAPI specification:Download

Authentication

Bearer

Security Scheme Type API Key
Header parameter name: Authorization

Basic

Security Scheme Type HTTP
HTTP Authorization Scheme basic

AUTHENTICATION

Generate Encrypted Secret Key

To make API calls on SeerBit, you will be required to pass a bearer token. To generate a token simply pass your pubic and secret key to rceive a token to process further API calls.

+
Request Body schema: application/json
key
required
string

This consist of the PrivateKey and the publicKey separated with a '.' in the middle(eg:{privateKey.publicKey}

+

Responses

Request samples

Content type
application/json
{
  • "key": "SBTESTSECK_9Cb8dbqR5Rc2JwZaa77P5QYHzQaeGUcrkEMD1dEi.SBTESTPUBK_9sN3TuLgW6a9redEfY48cKKkUa09Pz2u"
}

Response samples

Content type
application/json
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

STANDARD CHECKOUT

Generate Hash

This is used to ensure the request payload has not been altered

+
Request Body schema: application/json
publicKey
required
string

This is the merchant public key.

+
amount
required
string

This is the amount to be paid.

+
currency
required
string

This is the currency the transaction is to be carried out in.

+
country
required
string

This is the country from which the transaction is been carried out from

+
paymentReference
required
string

This is the unique identifier for a transaction, to be generated by merchant.

+
email
required
string

This is the email of the customer.

+
productId
required
string

This is the product id entered by the merchant.

+
productDescription
required
string

This is the product description supplied by the merchant.

+
callbackUrl
required
string

Responses

Request samples

Content type
application/json
{
  • "publicKey": "SBTESTPUBK_9sN3TuLgW6a9redEfY48cKKkUa09Pz2u",
  • "amount": "10.00",
  • "currency": "NGN",
  • "country": "NG",
  • "paymentReference": "3791090233047WZ73QN",
  • "email": "mamadou.diouf@intouchgroup.net",
  • "productId": "15013",
  • "productDescription": "touch badge",
  • "callbackUrl": "https://gutouch.com"
}

Response samples

Content type
application/json
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

Payment Link From Checkout

SeerBit Checkout Standard Initialises a transaction from merchants server to generate a payment link which redirects your customers to a page to make payment and after payment has been made the customer is redirected back to the merchants website.

+
Authorizations:
Request Body schema: application/json
publicKey
required
string

This is the merchant public key.

+
amount
required
string

This is the amount to be paid.

+
currency
required
string

This is the currency the transaction is to be carried out in.

+
country
required
string

This is the country from which the transaction is been carried out from

+
paymentReference
required
string

This is the unique identifier for a transaction, to be generated by merchant.

+
email
required
string

This is the email of the customer.

+
fullName
required
string

This is the full name of the customer.

+
tokenize
required
boolean

This indicates whether the card should be tokenized for future transactions.

+
callbackUrl
required
string

This is the callback url supplied by the merchant so that Seerbit can redirect back to it .

+

Responses

Request samples

Content type
application/json
{
  • "publicKey": "YOUR_PUBLIC_KEY",
  • "amount": "10.00",
  • "currency": "NGN",
  • "country": "NG",
  • "paymentReference": "payment_reference",
  • "email": "mamadou.diouf@intouchgroup.net",
  • "fullName": "Mamadou Diouf",
  • "tokenize": false,
  • "callbackUrl": "https://seerbit.com"
}

Response samples

Content type
application/json
{}

ORDER CHECKOUT

Create Order Before Payment

Create an order before payment

+
Authorizations:
Request Body schema: application/json

Responses

Request samples

Content type
application/json
{
  • "email": "test@mvaa.com",
  • "publicKey": "SBTESTPUBK_9sN3TuLgW6a9redEfY48cKKkUa09Pz2u",
  • "paymentReference": "2PPTG108Q13432E29P23R5L6W93I9",
  • "fullName": "",
  • "orderType": "BULK_BULK",
  • "mobileNumber": "",
  • "country": "NG",
  • "currency": "NGN",
  • "amount": "250.00",
  • "orders":
    [
    ]
}

Response samples

Content type
application/json
{}

Create Order After Payment

Create an order after payment

+
Authorizations:
Request Body schema: application/json

Responses

Request samples

Content type
application/json
{
  • "paymentReference": "0w0eimkizc41602513327447",
  • "publicKey": "SBTESTPUBK_9sN3TuLgW6a9redEfY48cKKkUa09Pz2u",
  • "orders":
    [
    ]
}

Response samples

Content type
application/json
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

Update Order

Update an order

+
Authorizations:
Request Body schema: application/json

Responses

Request samples

Content type
application/json
{
  • "paymentReference": "0w0eimkizc41602513327447",
  • "publicKey": "SBTESTPUBK_9sN3TuLgW6a9redEfY48cKKkUa09Pz2u",
  • "orders":
    [
    ]
}

Response samples

Content type
application/json
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

Get Orders

Get a list of orders

+
Authorizations:

Responses

Response samples

Content type
application/json
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

Get an Order with Payment Reference

Get order details with payment reference

+
Authorizations:

Responses

Response samples

Content type
application/json
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

Get Order with Order Id

Get order details with OrderId

+
Authorizations:

Responses

Response samples

Content type
application/json
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

PAYMENT METHOD

Initiate Payment

Accept more payments with our unified payments API. Accept payments from all major cards and the most popular local and alternative payment methods all in a single integration.

+
Authorizations:
Request Body schema: application/json

Responses

Request samples

Content type
application/json
Example
{
  • "fullName": "john doe",
  • "email": "johndoe@gmail.com",
  • "mobileNumber": 248360953,
  • "publicKey": "SBPUBK_QGOX9NBAHWDYY1PAFSG2PTDOSSZYEWXM",
  • "paymentReference": "O456S5077907982QWEuWAT05M",
  • "deviceType": "nokia 3310",
  • "sourceIP": "1.0.1.0",
  • "currency": "GHS",
  • "productDescription": "snacks",
  • "country": "GH",
  • "network": "MTN",
  • "voucherCode": "",
  • "fee": "0.00",
  • "amount": "1.00",
  • "productId": "grocery",
  • "paymentType": "MOMO"
}

Response samples

Content type
application/json
Example
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

Get Banks

Get list of banks

+

Responses

Response samples

Content type
application/json
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

MOMO

OTP Momo

When making MOMO transfers, and OTP is required to complete the payment

+
Authorizations:
Request Body schema: application/json
linkingReference
required
string

This is the internal gateway reference

+
otp
required
string

This is the TOKEN sent to customer’s phone or email

+

Responses

Request samples

Content type
application/json
{
  • "linkingReference": "CF630837081601460887752",
  • "otp": "81015"
}

Response samples

Content type
application/json
Example
null

NON 3DS PAYMENT

Charge Card

This payment option is used to charge non 3d transactions

+
Authorizations:
Request Body schema: application/json

Responses

Request samples

Content type
application/json
{
  • "publicKey": "SBTESTPUBK_dhrpzbRpR34l6VmqkCFOKA94L5E1jSTu",
  • "amount": "10.00",
  • "fullName": "Diei Okechukwu Peter",
  • "mobileNumber": 8030540611,
  • "currency": "NGN",
  • "country": "NG",
  • "paymentReference": "NGN0000037Q35",
  • "email": "okechukwu.diei2@gmail.com",
  • "productId": "Foods",
  • "productDescription": "RASPBERRY",
  • "cardNumber": "5123450000000008",
  • "expiryMonth": "05",
  • "expiryYear": "21"
}

Response samples

Content type
application/json
Example
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

CARD

Check Status

This Operation allows you to check the status of a transaction via the status check api. This is done by making a Get request to the endpoint below with your payment reference.

+
Authorizations:

Responses

Response samples

Content type
application/json
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

ACCOUNT

Validate Transaction

This option is used to complete an account transaction, when OTP is required

+
Authorizations:
Request Body schema: application/json
linkingReference
required
string

This is the internal gateway reference

+
otp
required
string

This is the TOKEN sent to customer’s phone or email

+

Responses

Request samples

Content type
application/json
{
  • "linkingReference": "F092648971601293723061",
  • "otp": "123456"
}

Response samples

Content type
application/json
Example
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

TOKENIZE

Tokenize a Card

In order to store your customers payment details, you need to pass some additional parameter when making the first payment request using the payments/tokenize endpoint, the Cvv field and pin are optional(this could be null). After the first payment is made, the payment details is collected and a token is generated for it which is then stored for future use.

+
Authorizations:
Request Body schema: application/json

Responses

Request samples

Content type
application/json
{
  • "publicKey": "SBPUBK_OMX6ZNRZPLIHQ9Y0ZG6FCNR0EAYIGIAT",
  • "amount": "0.00",
  • "fullName": "john doe",
  • "mobileNumber": 8033456599,
  • "currency": "NGN",
  • "country": "NG",
  • "paymentReference": "KES0092992991",
  • "email": "johndoe@gmail.com",
  • "productId": "Foods",
  • "productDescription": "RASPBERRY",
  • "cardNumber": "5123450000000008",
  • "cvv": "100",
  • "expiryMonth": "05",
  • "expiryYear": "21"
}

Response samples

Content type
application/json
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

AUTHORISE

Authorise

In SeerBit API, the term “authorisation” indicates, that payment is authorised but not captured. This allows a merchant to cancel transaction at their discretion, typically based but not limited to fraud-related activities. This authorisation state is valid for a limited period of time, which provides a window to cancel the transaction.

+
Authorizations:
Request Body schema: application/json

Responses

Request samples

Content type
application/json
Example
{
  • "paymentReference": "PREAUTH124456789798765k3K1CB0",
  • "publicKey": "SBTESTPUBK_dhrpzbRpR34l6VmqkCFOKA94L5E1jSTu",
  • "cardNumber": "5123450000000008",
  • "cvv": "100",
  • "expiryMonth": "05",
  • "expiryYear": "21",
  • "currency": "NGN",
  • "country": "NG",
  • "productDescription": "preauth test capture",
  • "amount": "100.00",
  • "email": "johndoe@gmail.com",
  • "fullName": "john doe"
}

Response samples

Content type
application/json
Example
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

3DS Authorise

PIN and CVV are not Required to complete Transaction. Authorization is completed on 3DS.

+
Authorizations:
Request Body schema: application/json

Responses

Request samples

Content type
application/json
{
  • "paymentReference": "30451B789S987643108hgfdsfP6W",
  • "publicKey": "SBPUBK_OMX6ZNRZPLIHQ9Y0ZG6FCNR0EAYIGIAT",
  • "cardNumber": "5242820813772165",
  • "cvv": "865",
  • "expiryMonth": "02",
  • "expiryYear": "22",
  • "currency": "NGN",
  • "country": "NG",
  • "productDescription": "preauth test capture",
  • "amount": "1.00",
  • "email": "johndoe@gmail.com",
  • "fullName": "john doe",
  • "callbackUrl": "https://google.com"
}

Response samples

Content type
application/json
Example
{}

RECURRENT

Initiate Subscription

To complete this transaction, merchant is expected to redirect to the 3DSecure site via the redirect URL provided with the response below. However if the redirect url is not returned and the code is S20 and the message is transaction is pending, the Validate OTP endpoint should be called as the customer would have received a token either by email or sms on the customers phone. To get the subscription created or the status of a subscription for the customer, the GET Subscription endpoint is called by passing the paymentReference as billingId.

+
Authorizations:
Request Body schema: application/json

Responses

Request samples

Content type
application/json
{
  • "publicKey": "SBTESTPUBK_9sN3TuLgW6a9redEfY48cKKkUa09Pz2u",
  • "paymentReference": "TPR2181t55PKR540RPP1U1W4392WO",
  • "planId": "",
  • "cardNumber": "5123450000000008",
  • "expiryMonth": "05",
  • "callbackUrl": "https://www.google.com",
  • "expiryYear": "21",
  • "cvv": "100",
  • "amount": "1000.00",
  • "currency": "NGN",
  • "productDescription": "Pilot Test Subscription",
  • "productId": "Terrain",
  • "country": "NG",
  • "startDate": "2020-02-25 00:00:00",
  • "cardName": "Kolade Samuel",
  • "billingCycle": "WEEKLY",
  • "email": "akintoyekolawole@gmail.com",
  • "mobileNumber": "08033456500",
  • "customerId": "12345678901234",
  • "pin": "0999",
  • "type": "3DSECURE",
  • "billingPeriod": "1",
  • "subscriptionAmount": true
}

Response samples

Content type
application/json
{}

Get a Subscription

Get customer subscription

+
Authorizations:

Responses

Response samples

Content type
application/json
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

Create Plan

Create a new recurring payment plan.

+
Authorizations:
header Parameters
Content-Type
required
string
Default: application/json
Request Body schema: application/json
productId
required
string

The name of the plan.

+
productDescription
required
string

The description of the plan.

+
amount
required
string

The amount for the plan.

+
billingCycle
required
string

The billing cycle (e.g., HOURLY).

+
limit
required
integer

The maximum number of cycles.

+
publicKey
required
string

The merchant public key.

+
country
required
string

The country code.

+
currency
required
string

The currency code.

+
allowPartialDebit
required
boolean

Whether partial debit is allowed.

+

Responses

Request samples

Content type
application/json
{
  • "productId": "Plan name",
  • "productDescription": "Description of Plan",
  • "amount": "100",
  • "billingCycle": "HOURLY",
  • "limit": 5,
  • "publicKey": "SBPUBK_xxxxx",
  • "country": "NG",
  • "currency": "NGN",
  • "allowPartialDebit": false
}

Response samples

Content type
application/json
{
  • "payload":
    {
    },
  • "message": "Successful",
  • "status": "SUCCESS",
  • "responseCode": "00"
}

Get Merchant Subscription

Retrieve all subscriptions for a merchant by their public key.

+
Authorizations:
path Parameters
publicKey
required
string

The merchant public key.

+

Responses

Response samples

Content type
application/json
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

Charge Subscription

Charge a recurring subscription using an authorization code.

+
Authorizations:
header Parameters
Content-Type
required
string
Default: application/json
Request Body schema: application/json
amount
required
string
publicKey
required
string
email
required
string
allowPartialDebit
required
boolean
authorizationCode
required
string
paymentReference
required
string
currency
required
string

Responses

Request samples

Content type
application/json
{
  • "amount": "200",
  • "publicKey": "YOUR_PUBLIC_KEY",
  • "email": "js@emaildomain.com",
  • "allowPartialDebit": true,
  • "authorizationCode": "1234567898765325",
  • "paymentReference": "2938765582R37065687631",
  • "currency": "NGN"
}

Response samples

Content type
application/json
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

Get Customer Subscription

Retrieve all subscriptions for a customer by their customerId and merchant public key.

+
Authorizations:
path Parameters
publicKey
required
string

The merchant public key.

+
customerId
required
string

The customer ID.

+

Responses

Response samples

Content type
application/json
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

Update Customer Subscription

Update a customer's subscription details.

+
Authorizations:
header Parameters
Content-Type
required
string
Default: application/json
Request Body schema: application/json
amount
required
string
currency
required
string
country
required
string
mobileNumber
required
string
billingId
required
string
publicKey
required
string
status
required
string

Responses

Request samples

Content type
application/json
{
  • "amount": "20000",
  • "currency": "NGN",
  • "country": "NG",
  • "mobileNumber": "08033456500",
  • "billingId": "PUBK_PjQ5d1578650322483",
  • "publicKey": "YOUR_PUBLIC_KEY",
  • "status": "INACTIVE"
}

Response samples

Content type
application/json
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

INVOICE

Create And Send Invoice

This endpoint is used to create an invoice for a customer.

+
Request Body schema: application/json
publicKey
required
string

This is the merchant public key.

+
orderNo
string

This is the order number.

+
dueDate
string

This is the date the invoice is due.

+
currency
required
string

This is the currency the transaction is to be carried out in.

+
recieversName
string

This is the name of the customer.

+
customerEmail
required
string

This is the email of the customer.

+
Array of objects

This is the list of items in the invoice.

+

Responses

Request samples

Content type
application/json
{
  • "publicKey": "SBTESTPUBK_9sN3TuLgW6a9redEfY48cKKkUa09Pz2u",
  • "orderNo": 3333332213212,
  • "dueDate": "2023-10-31",
  • "currency": "NGN",
  • "recieversName": "Muyiwa Akintade",
  • "customerEmail": "janesmith@emaildomain.com",
  • "invoiceItems":
    [
    ]
}

Response samples

Content type
application/json
{
  • "message": "Invoice created successfully",
  • "payload":
    {
    },
  • "code": "00"
}

Resend An Invoice

This endpoint is used to resend an invoice to a customer.

+
Authorizations:
path Parameters
publicKey
required
string

This is the merchant public key.

+
invoiceNo
required
string

This is the invoice number.

+

Responses

Response samples

Content type
application/json
{
  • "message": "Invoice has been sent successfully",
  • "code": "00"
}

Get Invoice By Customer Email

Retrieve all invoices for a customer by their email address.

+
Authorizations:
path Parameters
publicKey
required
string

The merchant public key.

+
customerEmail
required
string

The customer's email address.

+

Responses

Response samples

Content type
application/json
{
  • "payload":
    [
    ],
  • "code": "00"
}

Get Invoice By Invoice Number

Retrieve an invoice by its invoice number.

+
Authorizations:
path Parameters
publicKey
required
string

The merchant public key.

+
invoiceNo
required
string

The invoice number.

+

Responses

Response samples

Content type
application/json
{
  • "payload":
    [
    ],
  • "code": "00"
}

Get Invoice By Order Number

Retrieve an invoice by its order number.

+
Authorizations:
path Parameters
publicKey
required
string

The merchant public key.

+
orderNo
required
string

The order number.

+

Responses

Response samples

Content type
application/json
{
  • "payload":
    [
    ],
  • "code": "00"
}

POCKET

Authenticate Pocket

This endpoint is used to authenticate a pocket using the provided key.

+
Request Body schema: application/json
email
required
string <email>
password
required
string

Responses

Request samples

Content type
application/json
{
  • "email": "your pocket email",
  • "password": "your password"
}

Response samples

Content type
application/json
{
  • "responseCode": "00",
  • "message": "Success",
  • "data":
    {
    }
}

Add Sub-Pocket

Create a sub-pocket under a parent pocket.

+
Authorizations:
path Parameters
PocketID
required
string

The parent pocket ID.

+
header Parameters
public-key
required
string

The merchant public key.

+
Content-Type
required
string
Default: application/json
Request Body schema: application/json
Array ()
tagGroup
string
reference
required
string
pocketFunction
required
string
Enum: "BOTH" "CREDIT" "DEBIT"
currency
required
string
tagName
string
selfOwned
required
boolean
required
object

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
{
  • "responseCode": "00",
  • "message": "Success",
  • "data":
    [
    ]
}

Get Pocket Details

Retrieve details of a pocket by its ID.

+
Authorizations:
path Parameters
PocketID
required
string

The pocket ID.

+
header Parameters
public-key
required
string

The merchant public key.

+

Responses

Response samples

Content type
application/json
{
  • "responseCode": "00",
  • "message": "Success",
  • "data":
    {
    }
}

Get Pocket Balance

Retrieve the balance of a pocket by its ID.

+
Authorizations:
path Parameters
PocketID
required
string

The pocket ID.

+
header Parameters
public-key
required
string

The merchant public key.

+

Responses

Response samples

Content type
application/json
{
  • "responseCode": "00",
  • "message": "Success",
  • "data":
    {
    }
}

Get Merchant Sum

Retrieve the sum of balances for a merchant's pockets.

+
Authorizations:
path Parameters
PocketID
required
string

The pocket ID.

+
header Parameters
public-key
required
string

The merchant public key.

+

Responses

Response samples

Content type
application/json
{
  • "responseCode": "00",
  • "message": "Success",
  • "data":
    {
    }
}

Get Transaction Details

Retrieve details of a pocket transaction by its reference.

+
Authorizations:
path Parameters
reference
required
string

The transaction reference.

+
header Parameters
public-key
required
string

The merchant public key.

+

Responses

Response samples

Content type
application/json
{
  • "responseCode": "00",
  • "message": "Success",
  • "data":
    {
    }
}

Find Transactions

Search for pocket transactions with pagination.

+
Authorizations:
query Parameters
pocketId
required
string

The pocket ID.

+
page
required
integer
Default: 0

Page number (zero-based).

+
size
required
integer
Default: 10

Number of records per page.

+
header Parameters
public-key
required
string

The merchant public key.

+
Content-Type
required
string
Default: application/json

Responses

Response samples

Content type
application/json
{
  • "responseCode": "00",
  • "message": "Success",
  • "data":
    {
    }
}

Pocket to Pocket Transfer

Transfer funds from one pocket to another.

+
Authorizations:
path Parameters
fromPocketID
required
string

The source pocket ID.

+
toPocketID
required
string

The destination pocket ID.

+
header Parameters
public-key
required
string

The merchant public key.

+
Content-Type
required
string
Default: application/json
Request Body schema: application/json
amount
required
number

The amount to transfer.

+
currency
required
string

The currency of the transfer.

+
reference
required
string

The unique reference for the transfer.

+
description
required
string

A description for the transfer.

+

Responses

Request samples

Content type
application/json
{
  • "amount": 100,
  • "currency": "NGN",
  • "reference": "00112827",
  • "description": "Transfer from one pocket to another"
}

Response samples

Content type
application/json
{
  • "responseCode": "00",
  • "message": "Successful",
  • "data": { }
}

PAYOUT

Generate OTP

Generate an OTP for a pocket action. The OTP provided in the otp field should be passed as the passKey in the generatesignature and payout request.

+
Authorizations:
header Parameters
public-key
required
string

The merchant public key.

+
Content-Type
required
string
Default: application/json
Request Body schema: application/json
actionItem
required
string

The action for which the OTP is generated.

+
pocketId
required
string

The pocket ID.

+

Responses

Request samples

Content type
application/json
{
  • "actionItem": "APPROVE_DISBURSEMENT",
  • "pocketId": "your_pocket_id_here"
}

Response samples

Content type
application/json
{
  • "responseCode": "00",
  • "message": "Success",
  • "data":
    {
    }
}

Generate Signature

Generate a signature for a payout action. Instead of manually creating a signature, use the Get Signature endpoint.

+
Authorizations:
header Parameters
Content-Type
required
string
Default: application/json
Request Body schema: application/json
reference
required
string

The transaction reference.

+
amount
required
string

The amount for the payout.

+
currency
required
string

The currency for the payout.

+
description
required
string

The payout description.

+
accountNumber
required
string

The account number to credit.

+
bankCode
required
string

The bank code of the destination bank.

+
actionType
required
string

The action type (e.g., APPROVE_DISBURSEMENT).

+
passKey
required
string

The OTP or passKey for the payout.

+

Responses

Request samples

Content type
application/json
{
  • "reference": "REF123456",
  • "amount": "10",
  • "currency": "NGN",
  • "description": "test",
  • "accountNumber": "1234567890",
  • "bankCode": "000013",
  • "actionType": "APPROVE_DISBURSEMENT",
  • "passKey": "028087"
}

Response samples

Content type
application/json
{
  • "responseCode": "00",
  • "message": "Success",
  • "data": "{signature}"
}

Initiate Payout

Use the Initiate Payout endpoint, passing the generated signature in the request body.

+
Authorizations:
path Parameters
pocketId
required
string

The pocket ID.

+
header Parameters
public-key
required
string

The merchant public key.

+
Content-Type
required
string
Default: application/json
Request Body schema: application/json
reference
required
string

The transaction reference.

+
amount
required
string

The amount for the payout.

+
currency
required
string

The currency for the payout.

+
description
required
string

The payout description.

+
accountNumber
required
string

The account number to credit.

+
bankCode
required
string

The bank code of the destination bank.

+
passKey
required
string

The OTP or passKey for the payout.

+
actionType
required
string

The action type (e.g., APPROVE_DISBURSEMENT).

+
signature
required
string

The generated signature for the payout.

+

Responses

Request samples

Content type
application/json
{
  • "reference": "JIN-12345678901101",
  • "amount": "10",
  • "currency": "NGN",
  • "description": "test",
  • "accountNumber": "1234567890",
  • "bankCode": "000013",
  • "passKey": "028087",
  • "actionType": "APPROVE_DISBURSEMENT",
  • "signature": "signature-value"
}

Response samples

Content type
application/json
{
  • "responseCode": "00",
  • "message": "Successful",
  • "data":
    {
    }
}

VIRTUAL ACCOUNT

Create Virtual Account

The Virtual Account API allows you to create reserve accounts for your customers to make payments.

+
Authorizations:
header Parameters
Content-Type
required
string
Default: application/json
Request Body schema: application/json
publicKey
required
string

The merchant public key.

+
fullName
required
string

The full name of the account holder.

+
bankVerificationNumber
required
string

The BVN of the account holder.

+
currency
required
string

The currency for the account.

+
country
required
string

The country code.

+
reference
required
string

The unique reference for the account.

+
email
required
string

The email address of the account holder.

+

Responses

Request samples

Content type
application/json
{
  • "publicKey": "YOUR_PUBLIC_KEY",
  • "fullName": "Jane Smith",
  • "bankVerificationNumber": "",
  • "currency": "NGN",
  • "country": "NG",
  • "reference": "FIRST_VIRTUAl_17",
  • "email": "js@emaildomain.com"
}

Response samples

Content type
application/json
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

Get Virtual Account

Retrieve details of a virtual account by its payment reference.

+
Authorizations:
path Parameters
paymentReference
required
string

The virtual account payment reference.

+

Responses

Response samples

Content type
application/json
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

Delete a Virtual Account

Delete a virtual account by its reference.

+
Authorizations:
path Parameters
reference
required
string

The virtual account reference.

+

Responses

Response samples

Content type
application/json
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

Get Payment

Retrieve payment details for a virtual account using the public key and account number.

+
Authorizations:
path Parameters
publicKey
required
string

The merchant public key.

+
accountNumber
required
string

The customer's account number.

+

Responses

Response samples

Content type
application/json
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

CARD TOKENISATION

Create Card Token

Create a card token for future payments.

+
Authorizations:
header Parameters
Content-Type
required
string
Default: application/json
Request Body schema: application/json
publicKey
required
string
amount
required
string
fullName
required
string
mobileNumber
required
string
redirectUrl
required
string
currency
required
string
country
required
string
paymentReference
required
string
email
required
string
paymentType
required
string
cardNumber
required
string
expiryMonth
required
string
expiryYear
required
string
cvv
required
string
pin
required
string

Responses

Request samples

Content type
application/json
{
  • "publicKey": "YOUR_PUBLIC_KEY",
  • "amount": "50",
  • "fullName": "Jane Smith",
  • "mobileNumber": "03447522256",
  • "redirectUrl": "http://example.com",
  • "currency": "NGN",
  • "country": "NG",
  • "paymentReference": "204g4de74a7ib0j18dg6bi521aiaejf4",
  • "email": "janesmith@seerbit.com",
  • "paymentType": "CARD",
  • "cardNumber": "512348984984988883",
  • "expiryMonth": "01",
  • "expiryYear": "25",
  • "cvv": "000",
  • "pin": "2222"
}

Response samples

Content type
application/json
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

Get Card Authorisation Code

After the first successful transaction, you can query the transaction with the payment reference endpoint to confirm the status of transaction. The queried payment reference returns the authorizationCode that will be used for subsequent charges.

+
path Parameters
paymentReference
required
string

The payment reference for the transaction.

+

Responses

Response samples

Content type
application/json
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

Charge Authorisation Token

Charge a card using a previously obtained authorisation code (token).

+
Authorizations:
header Parameters
Content-Type
required
string
Default: application/json
Request Body schema: application/json
publicKey
required
string
amount
required
string
paymentReference
required
string
authorizationCode
required
string

Responses

Request samples

Content type
application/json
{
  • "publicKey": "YOUR_PUBLIC_KEY",
  • "amount": "110",
  • "paymentReference": "charge_test_3451",
  • "authorizationCode": "ye773838jje8837abe"
}

Response samples

Content type
application/json
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

Bulk Charge Token

Charge multiple cards using authorization tokens in a single request.

+
Authorizations:
header Parameters
Content-Type
required
string
Default: application/json
Request Body schema: application/json
Array ()
publicKey
required
string
amount
required
string
paymentReference
required
string
authorizationCode
required
string

Responses

Request samples

Content type
application/json
[
  • {
    },
  • {
    }
]

Response samples

Content type
application/json
{
  • "code": "00",
  • "message": "Successful",
  • "payload":
    {
    }
}

Query Bulk Charge with BatchId

Query the status and results of a bulk charge operation using the batchId.

+
Authorizations:
query Parameters
batchId
required
string

The batch ID of the bulk charge operation.

+

Responses

Response samples

Content type
application/json
{
  • "code": "00",
  • "message": "Successful",
  • "payload":
    {
    }
}
+ + + + \ No newline at end of file diff --git a/scripts/modify-pm-collection.js b/scripts/modify-pm-collection.js index fb4d048..960d6d2 100644 --- a/scripts/modify-pm-collection.js +++ b/scripts/modify-pm-collection.js @@ -2,7 +2,7 @@ * Modify PM Collection * + adds variables * + variables' values read from openAPI spec yaml file - * + * * Specify optionally: * -i PM Collection to be modified * -a openAPI spec yaml file @@ -23,7 +23,7 @@ console.log("Reading auths from examples in " + apiSpecFile); var specToken, specPK; try { - specPK = apiSpec.components.schemas.CaptureRequest.example.publicKey; + specPK = apiSpec.components.schemas.GenerateHashRequest.example.publicKey; specToken = apiSpec.components.schemas.GenerateEncryptedSecretKeyResponse.example.data .EncrytedSecKey.encryptedKey; @@ -34,7 +34,7 @@ try { console.log("Token: " + specToken); console.log("Username (Public Key): " + specPK); -console.log("Reading converted PM Collection " + pmInputFile) +console.log("Reading converted PM Collection " + pmInputFile); var convertedPMC = JSON.parse(fs.readFileSync(pmInputFile).toString()); convertedPMC.variable = [ diff --git a/specs/external-api.yml b/specs/external-api.yml index e40ca3d..6c69959 100644 --- a/specs/external-api.yml +++ b/specs/external-api.yml @@ -4,33 +4,39 @@ info: contact: {} version: "1.0" servers: -- url: https://seerbitapi.com/api/v2 + - url: https://seerbitapi.com/api/v2 tags: -- name: AUTHENTICATION -- name: STANDARD CHECKOUT -- name: ORDER CHECKOUT -- name: PAYMENT METHOD -- name: MOMO -- name: NON 3DS PAYMENT -- name: CARD -- name: ACCOUNT -- name: TOKENIZE -- name: AUTHORISE -- name: PREAUTHORIZATION -- name: RECURRENT + - name: AUTHENTICATION + - name: STANDARD CHECKOUT + - name: ORDER CHECKOUT + - name: PAYMENT METHOD + - name: MOMO + - name: NON 3DS PAYMENT + - name: CARD + - name: ACCOUNT + - name: TOKENIZE + - name: AUTHORISE + # - name: PREAUTHORIZATION + - name: RECURRENT + - name: INVOICE + - name: POCKET + - name: PAYOUT + - name: VIRTUAL ACCOUNT + - name: PAYMENT LINK + - name: CARD TOKENISATION paths: /encrypt/keys: post: tags: - - AUTHENTICATION + - AUTHENTICATION summary: Generate Encrypted Secret Key - description: 'To make API calls on SeerBit, you will be required to pass a bearer token. To generate a token simply pass your pubic and secret key to rceive a token to process further API calls.' + description: "To make API calls on SeerBit, you will be required to pass a bearer token. To generate a token simply pass your pubic and secret key to rceive a token to process further API calls." operationId: GenerateEncryptedSecretKey requestBody: content: application/json: schema: - $ref: '#/components/schemas/GenerateEncryptedSecretKeyRequest' + $ref: "#/components/schemas/GenerateEncryptedSecretKeyRequest" required: true responses: 200: @@ -38,7 +44,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/GenerateEncryptedSecretKeyResponse' + $ref: "#/components/schemas/GenerateEncryptedSecretKeyResponse" 400: description: Bad Request content: @@ -47,7 +53,7 @@ paths: type: object examples: 400Response: - $ref: '#/components/examples/400Response' + $ref: "#/components/examples/400Response" 404: description: Not Found content: @@ -56,7 +62,7 @@ paths: type: object examples: 404Response: - $ref: '#/components/examples/404Response' + $ref: "#/components/examples/404Response" 500: description: Internal Server Error content: @@ -65,21 +71,21 @@ paths: type: object examples: 500Response: - $ref: '#/components/examples/500Response' + $ref: "#/components/examples/500Response" deprecated: false x-codegen-request-body-name: Body /encrypt/hashs: post: tags: - - STANDARD CHECKOUT + - STANDARD CHECKOUT summary: Generate Hash - description: 'This is used to ensure the request payload has not been altered' + description: "This is used to ensure the request payload has not been altered" operationId: GenerateHash requestBody: content: application/json: schema: - $ref: '#/components/schemas/GenerateHashRequest' + $ref: "#/components/schemas/GenerateHashRequest" required: true responses: 200: @@ -87,7 +93,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/GenerateHashResponse' + $ref: "#/components/schemas/GenerateHashResponse" 400: description: Method Not Allowed content: @@ -96,7 +102,7 @@ paths: type: object examples: 400Response: - $ref: '#/components/examples/400Response' + $ref: "#/components/examples/400Response" 404: description: Not Found content: @@ -105,7 +111,7 @@ paths: type: object examples: 404Response: - $ref: '#/components/examples/404Response1' + $ref: "#/components/examples/404Response1" 500: description: Internal Server Error content: @@ -114,21 +120,21 @@ paths: type: object examples: 500Response: - $ref: '#/components/examples/500Response' + $ref: "#/components/examples/500Response" deprecated: false x-codegen-request-body-name: Body /payments: post: tags: - - STANDARD CHECKOUT + - STANDARD CHECKOUT summary: Payment Link From Checkout - description: 'SeerBit Checkout Standard Initialises a transaction from merchants server to generate a payment link which redirects your customers to a page to make payment and after payment has been made the customer is redirected back to the merchants website.' + description: "SeerBit Checkout Standard Initialises a transaction from merchants server to generate a payment link which redirects your customers to a page to make payment and after payment has been made the customer is redirected back to the merchants website." operationId: PaymentLinkFromCheckout requestBody: content: application/json: schema: - $ref: '#/components/schemas/PaymentLinkFromCheckoutRequest' + $ref: "#/components/schemas/PaymentLinkFromCheckoutRequest" required: true responses: 200: @@ -136,7 +142,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/PaymentLinkFromCheckoutResponse' + $ref: "#/components/schemas/PaymentLinkFromCheckoutResponse" 400: description: Method Not Allowed content: @@ -145,7 +151,7 @@ paths: type: object examples: 400Response: - $ref: '#/components/examples/400Response' + $ref: "#/components/examples/400Response" 401: description: Unauthorized content: @@ -154,7 +160,7 @@ paths: type: object examples: 401Response: - $ref: '#/components/examples/401Response' + $ref: "#/components/examples/401Response" 403: description: Header Token Missing content: @@ -163,9 +169,9 @@ paths: type: object examples: 403Response: - $ref: '#/components/examples/403Response' + $ref: "#/components/examples/403Response" 403Response1: - $ref: '#/components/examples/403Response1' + $ref: "#/components/examples/403Response1" 404: description: Not Found content: @@ -174,9 +180,9 @@ paths: type: object examples: 404Response: - $ref: '#/components/examples/404Response' + $ref: "#/components/examples/404Response" 400Response1: - $ref: '#/components/examples/404Response1' + $ref: "#/components/examples/404Response1" 500: description: Internal Server Error content: @@ -185,36 +191,35 @@ paths: type: object examples: PaymentLinkFromCheckout500Response: - $ref: '#/components/examples/PaymentLinkFromCheckout500Response' + $ref: "#/components/examples/PaymentLinkFromCheckout500Response" PaymentLinkFromCheckout500Response1: - $ref: '#/components/examples/PaymentLinkFromCheckout500Response1' + $ref: "#/components/examples/PaymentLinkFromCheckout500Response1" PaymentLinkFromCheckout500Response2: - $ref: '#/components/examples/PaymentLinkFromCheckout500Response2' + $ref: "#/components/examples/PaymentLinkFromCheckout500Response2" 500Response: - $ref: '#/components/examples/500Response' + $ref: "#/components/examples/500Response" deprecated: false security: - - Bearer: [] + - Bearer: [] x-codegen-request-body-name: Body /payments/order: post: tags: - - ORDER CHECKOUT + - ORDER CHECKOUT summary: Create Order Before Payment - description: 'Create an order before payment' + description: "Create an order before payment" operationId: CreateOrderBeforePayment requestBody: content: application/json: schema: - type: object + type: object examples: # CreateOrderRequest: # $ref: '#/components/examples/CreateOrderRequest' CreateOrderRequest1: - $ref: '#/components/examples/CreateOrderRequest2' - - + $ref: "#/components/examples/CreateOrderRequest2" + required: true responses: 200: @@ -225,7 +230,7 @@ paths: type: object examples: CreateOrder200Response: - $ref: '#/components/examples/CreateOrder200Response' + $ref: "#/components/examples/CreateOrder200Response" 400: description: Method Not Allowed content: @@ -234,7 +239,7 @@ paths: type: object examples: 400Response: - $ref: '#/components/examples/400Response' + $ref: "#/components/examples/400Response" 401: description: Unauthorized content: @@ -243,7 +248,7 @@ paths: type: object examples: 401Response: - $ref: '#/components/examples/401Response' + $ref: "#/components/examples/401Response" 403: description: Missing Header Token content: @@ -252,20 +257,20 @@ paths: type: object examples: Order403Response: - $ref: '#/components/examples/Order403Response' + $ref: "#/components/examples/Order403Response" 403Response: - $ref: '#/components/examples/403Response' + $ref: "#/components/examples/403Response" 404: description: Not Found content: application/json: schema: - type: object + type: object examples: 400Response: - $ref: '#/components/examples/404Response' + $ref: "#/components/examples/404Response" CreateOrder400Response1: - $ref: '#/components/examples/Order404Response1' + $ref: "#/components/examples/Order404Response1" 500: description: Internal Server Error content: @@ -274,32 +279,31 @@ paths: type: object examples: 500Response: - $ref: '#/components/examples/500Response' + $ref: "#/components/examples/500Response" 500Response5: - $ref: '#/components/examples/500Response5' + $ref: "#/components/examples/500Response5" deprecated: false security: - - Bearer: [] - x-codegen-request-body-name: Body + - Bearer: [] + x-codegen-request-body-name: Body /products/orders: post: tags: - - ORDER CHECKOUT + - ORDER CHECKOUT summary: Create Order After Payment - description: 'Create an order after payment' + description: "Create an order after payment" operationId: CreateOrder requestBody: content: application/json: schema: - type: object + type: object examples: CreateOrderRequest: - $ref: '#/components/examples/CreateOrderRequest' + $ref: "#/components/examples/CreateOrderRequest" # CreateOrderRequest1: # $ref: '#/components/examples/CreateOrderRequest2' - - + required: true responses: 201: @@ -307,7 +311,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/CreateOrder201Response' + $ref: "#/components/schemas/CreateOrder201Response" 400: description: Method Not Allowed content: @@ -316,7 +320,7 @@ paths: type: object examples: 400Response: - $ref: '#/components/examples/400Response' + $ref: "#/components/examples/400Response" 401: description: Unauthorized content: @@ -325,7 +329,7 @@ paths: type: object examples: 401Response: - $ref: '#/components/examples/401Response' + $ref: "#/components/examples/401Response" 403: description: Missing Header Token content: @@ -334,20 +338,20 @@ paths: type: object examples: Order403Response: - $ref: '#/components/examples/Order403Response' + $ref: "#/components/examples/Order403Response" 403Response: - $ref: '#/components/examples/403Response' + $ref: "#/components/examples/403Response" 404: description: Not Found content: application/json: schema: - type: object + type: object examples: 400Response: - $ref: '#/components/examples/404Response' + $ref: "#/components/examples/404Response" CreateOrder400Response1: - $ref: '#/components/examples/Order404Response1' + $ref: "#/components/examples/Order404Response1" 500: description: Internal Server Error content: @@ -356,25 +360,25 @@ paths: type: object examples: 500Response: - $ref: '#/components/examples/500Response' + $ref: "#/components/examples/500Response" deprecated: false security: - - Bearer: [] + - Bearer: [] x-codegen-request-body-name: Body put: tags: - - ORDER CHECKOUT + - ORDER CHECKOUT summary: Update Order - description: 'Update an order' + description: "Update an order" operationId: UpdateOrder requestBody: content: application/json: schema: type: object - examples: - UpdateOrderRequest: - $ref: '#/components/examples/UpdateOrderRequest' + examples: + UpdateOrderRequest: + $ref: "#/components/examples/UpdateOrderRequest" required: true responses: 201: @@ -382,7 +386,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/UpdateOrder201Response' + $ref: "#/components/schemas/UpdateOrder201Response" 400: description: Method Not Allowed content: @@ -391,16 +395,16 @@ paths: type: object examples: 400Response: - $ref: '#/components/examples/400Response' + $ref: "#/components/examples/400Response" 401: description: Unauthorized content: application/json: schema: - type: object + type: object examples: 401Response: - $ref: '#/components/examples/401Response' + $ref: "#/components/examples/401Response" 403: description: Missing Header Token content: @@ -409,20 +413,20 @@ paths: type: object examples: CreateOrder403Response: - $ref: '#/components/examples/Order403Response' + $ref: "#/components/examples/Order403Response" 403Response: - $ref: '#/components/examples/403Response' + $ref: "#/components/examples/403Response" 404: description: Not Found content: application/json: schema: - type: object + type: object examples: 400Response: - $ref: '#/components/examples/404Response' + $ref: "#/components/examples/404Response" CreateOrder400Response1: - $ref: '#/components/examples/Order404Response1' + $ref: "#/components/examples/Order404Response1" 500: description: Internal Server Error content: @@ -431,17 +435,17 @@ paths: type: object examples: 500Response: - $ref: '#/components/examples/500Response' + $ref: "#/components/examples/500Response" deprecated: false security: - - Bearer: [] + - Bearer: [] x-codegen-request-body-name: Body /products/orders/publicKey/SBTESTPUBK_9sN3TuLgW6a9redEfY48cKKkUa09Pz2u: get: tags: - - ORDER CHECKOUT + - ORDER CHECKOUT summary: Get Orders - description: 'Get a list of orders' + description: "Get a list of orders" operationId: GetOrderByPublicKey responses: 201: @@ -449,7 +453,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/GetOrderByPublicKey201Response' + $ref: "#/components/schemas/GetOrderByPublicKey201Response" 400: description: Method Not Allowed content: @@ -458,16 +462,16 @@ paths: type: object examples: 400Response: - $ref: '#/components/examples/400Response' + $ref: "#/components/examples/400Response" 401: description: Unauthorized content: application/json: schema: - type: object + type: object examples: 401Response: - $ref: '#/components/examples/401Response' + $ref: "#/components/examples/401Response" 403: description: Missing Header Token content: @@ -476,20 +480,20 @@ paths: type: object examples: CreateOrder403Response: - $ref: '#/components/examples/Order403Response' + $ref: "#/components/examples/Order403Response" 403Response: - $ref: '#/components/examples/403Response' + $ref: "#/components/examples/403Response" 404: description: Not Found content: application/json: schema: - type: object + type: object examples: 400Response: - $ref: '#/components/examples/404Response' + $ref: "#/components/examples/404Response" CreateOrder400Response2: - $ref: '#/components/examples/Order404Response2' + $ref: "#/components/examples/Order404Response2" 500: description: Internal Server Error content: @@ -498,16 +502,16 @@ paths: type: object examples: 500Response: - $ref: '#/components/examples/500Response' + $ref: "#/components/examples/500Response" deprecated: false security: - - Bearer: [] + - Bearer: [] /products/orders/publicKey/SBTESTPUBK_9sN3TuLgW6a9redEfY48cKKkUa09Pz2u/paymentReference/0w0eimkizc41602513327447: get: tags: - - ORDER CHECKOUT + - ORDER CHECKOUT summary: Get an Order with Payment Reference - description: 'Get order details with payment reference' + description: "Get order details with payment reference" operationId: GetOrderByPublicKeyAndPaymentReference responses: 201: @@ -515,7 +519,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/GetOrderByPublicKeyAndPaymentReference201Response' + $ref: "#/components/schemas/GetOrderByPublicKeyAndPaymentReference201Response" 400: description: Method Not Allowed content: @@ -524,16 +528,16 @@ paths: type: object examples: 400Response: - $ref: '#/components/examples/400Response' + $ref: "#/components/examples/400Response" 401: description: Unauthorized content: application/json: schema: - type: object + type: object examples: 401Response: - $ref: '#/components/examples/401Response' + $ref: "#/components/examples/401Response" 403: description: Missing Header Token content: @@ -542,20 +546,20 @@ paths: type: object examples: CreateOrder403Response: - $ref: '#/components/examples/Order403Response' + $ref: "#/components/examples/Order403Response" 403Response: - $ref: '#/components/examples/403Response' + $ref: "#/components/examples/403Response" 404: description: Not Found content: application/json: schema: - type: object + type: object examples: 400Response: - $ref: '#/components/examples/404Response' + $ref: "#/components/examples/404Response" CreateOrder400Response2: - $ref: '#/components/examples/Order404Response2' + $ref: "#/components/examples/Order404Response2" 500: description: Internal Server Error content: @@ -564,16 +568,16 @@ paths: type: object examples: 500Response: - $ref: '#/components/examples/500Response' + $ref: "#/components/examples/500Response" deprecated: false security: - - Bearer: [] + - Bearer: [] /products/orders/publicKey/SBTESTPUBK_9sN3TuLgW6a9redEfY48cKKkUa09Pz2u/orderId/wil0f47b62: get: tags: - - ORDER CHECKOUT + - ORDER CHECKOUT summary: Get Order with Order Id - description: 'Get order details with OrderId' + description: "Get order details with OrderId" operationId: GetOrderByPublicKeyandOrderId responses: # 200: @@ -587,7 +591,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/GetOrderByPublicKeyAndOrderId201Response' + $ref: "#/components/schemas/GetOrderByPublicKeyAndOrderId201Response" 400: description: Method Not Allowed content: @@ -596,16 +600,16 @@ paths: type: object examples: 400Response: - $ref: '#/components/examples/400Response' + $ref: "#/components/examples/400Response" 401: description: Unauthorized content: application/json: schema: - type: object + type: object examples: 401Response: - $ref: '#/components/examples/401Response' + $ref: "#/components/examples/401Response" 403: description: Missing Header Token content: @@ -614,20 +618,20 @@ paths: type: object examples: CreateOrder403Response: - $ref: '#/components/examples/Order403Response' + $ref: "#/components/examples/Order403Response" 403Response: - $ref: '#/components/examples/403Response' + $ref: "#/components/examples/403Response" 404: description: Not Found content: application/json: schema: - type: object + type: object examples: 400Response: - $ref: '#/components/examples/404Response' + $ref: "#/components/examples/404Response" CreateOrder400Response2: - $ref: '#/components/examples/Order404Response2' + $ref: "#/components/examples/Order404Response2" 500: description: Internal Server Error content: @@ -636,17 +640,17 @@ paths: type: object examples: 500Response: - $ref: '#/components/examples/500Response' + $ref: "#/components/examples/500Response" deprecated: false security: - - Bearer: [] + - Bearer: [] x-codegen-request-body-name: Body /payments/initiates: post: tags: - - PAYMENT METHOD + - PAYMENT METHOD summary: Initiate Payment - description: 'Accept more payments with our unified payments API. Accept payments from all major cards and the most popular local and alternative payment methods all in a single integration.' + description: "Accept more payments with our unified payments API. Accept payments from all major cards and the most popular local and alternative payment methods all in a single integration." operationId: InitiatePayment requestBody: content: @@ -655,15 +659,16 @@ paths: type: object examples: momoRequestPaylaod: - $ref: '#/components/examples/momoRequestPaylaod' + $ref: "#/components/examples/momoRequestPaylaod" cardRequestPaylaod: - $ref: '#/components/examples/cardRequestPayload' + $ref: "#/components/examples/cardRequestPayload" accountRequestPaylaod: - $ref: '#/components/examples/accountRequestPaylaod' + $ref: "#/components/examples/accountRequestPaylaod" transferRequestPaylaod: - $ref: '#/components/examples/transferRequestPaylaod' - - + $ref: "#/components/examples/transferRequestPaylaod" + ussdRequestPaylaod: + $ref: "#/components/examples/ussdRequestPaylaod" + required: true responses: 200: @@ -674,21 +679,23 @@ paths: type: object examples: InitiateAccountPaymentResponse: - $ref: '#/components/examples/InitiateAccountPaymentResponse' + $ref: "#/components/examples/InitiateAccountPaymentResponse" + InitiateUSSDPaymentResponse: + $ref: "#/components/examples/InitiateUSSDPaymentResponse" InitiateAccountPaymentS12Response: - $ref: '#/components/examples/InitiateAccountPaymentS12Response' + $ref: "#/components/examples/InitiateAccountPaymentS12Response" InitiateAccountPaymentS7Response: - $ref: '#/components/examples/InitiateAccountPaymentS7Response' + $ref: "#/components/examples/InitiateAccountPaymentS7Response" InitiateCardPaymentResponse: - $ref: '#/components/examples/InitiateCardTransactionsResponse' + $ref: "#/components/examples/InitiateCardTransactionsResponse" InitiateCardTransactionsS12Response: - $ref: '#/components/examples/InitiateCardTransactionsS12Response' + $ref: "#/components/examples/InitiateCardTransactionsS12Response" InitiateCardTransactionsS18Response: - $ref: '#/components/examples/InitiateCardTransactionsS18Response' + $ref: "#/components/examples/InitiateCardTransactionsS18Response" InitiateTransferResponse: - $ref: '#/components/examples/InitiateTransferResponse' + $ref: "#/components/examples/InitiateTransferResponse" GhanaMomoResponse: - $ref: '#/components/examples/GhanaMomoResponse' + $ref: "#/components/examples/GhanaMomoResponse" 400: description: Bad Request content: @@ -697,19 +704,19 @@ paths: type: object # $ref: '#/components/schemas/InitiatePayment400Response' examples: - InitiatePayment400InputResponse: - $ref: '#/components/examples/InitiatePayment400InputResponse' - InitiatePayment400Response: - $ref: '#/components/examples/InitiatePayment400Response' + InitiatePayment400InputResponse: + $ref: "#/components/examples/InitiatePayment400InputResponse" + InitiatePayment400Response: + $ref: "#/components/examples/InitiatePayment400Response" 401: description: Unauthorized content: application/json: schema: - type: object + type: object examples: 401Response: - $ref: '#/components/examples/401Response' + $ref: "#/components/examples/401Response" 403: description: Missing Header Token content: @@ -719,18 +726,18 @@ paths: # $ref: '#/components/schemas/InitiatePayment403Response' examples: InitiatePayment403Response: - $ref: '#/components/examples/403Response' + $ref: "#/components/examples/403Response" InitiateCardTransactionsResponse403Response: - $ref: '#/components/examples/403Response1' + $ref: "#/components/examples/403Response1" 404: description: Not Found content: application/json: schema: - type: object + type: object examples: 400Response1: - $ref: '#/components/examples/404Response1' + $ref: "#/components/examples/404Response1" 500: description: Internal Server Error content: @@ -739,21 +746,20 @@ paths: type: object examples: 500Response: - $ref: '#/components/examples/500Response' + $ref: "#/components/examples/500Response" 500Response1: - $ref: '#/components/examples/500Response1' + $ref: "#/components/examples/500Response1" deprecated: false security: - - Bearer: [] + - Bearer: [] x-codegen-request-body-name: Body - - + /banks/merchant/SBTESTPUBK_p8GqvFSFNCBahSJinczKd9aIPoRUZfda: get: tags: - - PAYMENT METHOD + - PAYMENT METHOD summary: Get Banks - description: 'Get list of banks' + description: "Get list of banks" operationId: GetBanks responses: 201: @@ -764,24 +770,24 @@ paths: type: object examples: BanksResponse: - $ref: '#/components/examples/BanksResponse' + $ref: "#/components/examples/BanksResponse" 400: description: Method Not Allowed content: application/json: schema: - $ref: '#/components/schemas/OTPMomo400Response' + $ref: "#/components/schemas/OTPMomo400Response" 404: description: Not Found content: application/json: schema: - type: object + type: object examples: 400Response: - $ref: '#/components/examples/404Response' + $ref: "#/components/examples/404Response" 404Response1: - $ref: '#/components/examples/404Response1' + $ref: "#/components/examples/404Response1" 500: description: Internal Server Error content: @@ -790,24 +796,24 @@ paths: type: object examples: 500Response: - $ref: '#/components/examples/500Response' + $ref: "#/components/examples/500Response" deprecated: false # security: # - Bearer: [] - x-codegen-request-body-name: Body - + x-codegen-request-body-name: Body + /payments/momo/otp: post: tags: - - MOMO + - MOMO summary: OTP Momo - description: 'When making MOMO transfers, and OTP is required to complete the payment' + description: "When making MOMO transfers, and OTP is required to complete the payment" operationId: OTPMomo requestBody: content: application/json: schema: - $ref: '#/components/schemas/OTPMomoRequest' + $ref: "#/components/schemas/OTPMomoRequest" required: true responses: 200: @@ -818,24 +824,24 @@ paths: type: object examples: OTPMomoResponse: - $ref: '#/components/schemas/OTPMomoResponse' + $ref: "#/components/schemas/OTPMomoResponse" OTPMomoResponse1: - $ref: '#/components/examples/OTPMomoResponse1' + $ref: "#/components/examples/OTPMomoResponse1" 400: description: Method Not Allowed content: application/json: schema: - $ref: '#/components/schemas/OTPMomo400Response' + $ref: "#/components/schemas/OTPMomo400Response" 404: description: Not Found content: application/json: schema: - type: object + type: object examples: 400Response: - $ref: '#/components/examples/404Response' + $ref: "#/components/examples/404Response" 500: description: Internal Server Error content: @@ -844,26 +850,26 @@ paths: type: object examples: 500Response: - $ref: '#/components/examples/500Response' + $ref: "#/components/examples/500Response" deprecated: false security: - - Bearer: [] + - Bearer: [] x-codegen-request-body-name: Body /payments/charge: post: tags: - - NON 3DS PAYMENT + - NON 3DS PAYMENT summary: Charge Card - description: 'This payment option is used to charge non 3d transactions' + description: "This payment option is used to charge non 3d transactions" operationId: ChargeCard requestBody: content: application/json: schema: - type: object + type: object examples: ChargeCardRequest: - $ref: '#/components/examples/ChargeCardRequest' + $ref: "#/components/examples/ChargeCardRequest" required: true responses: 201: @@ -874,9 +880,9 @@ paths: type: object examples: ChargeCardResponse: - $ref: '#/components/examples/ChargeCardResponse' + $ref: "#/components/examples/ChargeCardResponse" ChargeCardResponse1: - $ref: '#/components/examples/ChargeCardResponse1' + $ref: "#/components/examples/ChargeCardResponse1" 400: description: Method Not Allowed content: @@ -885,23 +891,23 @@ paths: type: object examples: 400Response: - $ref: '#/components/examples/400Response' + $ref: "#/components/examples/400Response" 400Response1: - $ref: '#/components/examples/400Response1' + $ref: "#/components/examples/400Response1" 400Response2: - $ref: '#/components/examples/400Response2' + $ref: "#/components/examples/400Response2" 400Response3: - $ref: '#/components/examples/400Response3' + $ref: "#/components/examples/400Response3" 400Response4: - $ref: '#/components/examples/400Response4' + $ref: "#/components/examples/400Response4" 400Response5: - $ref: '#/components/examples/400Response5' + $ref: "#/components/examples/400Response5" 400Response6: - $ref: '#/components/examples/400Response6' + $ref: "#/components/examples/400Response6" 400Response7: - $ref: '#/components/examples/400Response7' + $ref: "#/components/examples/400Response7" 400Response8: - $ref: '#/components/examples/400Response8' + $ref: "#/components/examples/400Response8" 403: description: Missing Header Token content: @@ -910,24 +916,24 @@ paths: type: object examples: CreateOrder403Response: - $ref: '#/components/examples/Order403Response' + $ref: "#/components/examples/Order403Response" 403Response: - $ref: '#/components/examples/403Response' + $ref: "#/components/examples/403Response" 403Response2: - $ref: '#/components/examples/403Response2' + $ref: "#/components/examples/403Response2" 403Response3: - $ref: '#/components/examples/403Response3' + $ref: "#/components/examples/403Response3" 403Response4: - $ref: '#/components/examples/403Response4' + $ref: "#/components/examples/403Response4" 404: description: Not Found content: application/json: schema: - type: object + type: object examples: 400Response: - $ref: '#/components/examples/404Response' + $ref: "#/components/examples/404Response" 500: description: Internal Server Error content: @@ -936,17 +942,17 @@ paths: type: object examples: 500Response: - $ref: '#/components/examples/500Response' + $ref: "#/components/examples/500Response" deprecated: false security: - - Basic: [] + - Basic: [] x-codegen-request-body-name: Body /payments/query/STG10948E242065R569A22tAQM85EQW4: get: tags: - - CARD + - CARD summary: Check Status - description: 'This Operation allows you to check the status of a transaction via the status check api. This is done by making a Get request to the endpoint below with your payment reference.' + description: "This Operation allows you to check the status of a transaction via the status check api. This is done by making a Get request to the endpoint below with your payment reference." operationId: CheckStatus responses: 200: @@ -954,7 +960,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/CheckStatusResponse' + $ref: "#/components/schemas/CheckStatusResponse" 400: description: Method Not Allowed content: @@ -963,18 +969,18 @@ paths: type: object examples: 400Response: - $ref: '#/components/examples/400Response' + $ref: "#/components/examples/400Response" 404: description: Not Found content: application/json: schema: - type: object + type: object examples: 400Response: - $ref: '#/components/examples/404Response' + $ref: "#/components/examples/404Response" CreateOrder400Response1: - $ref: '#/components/examples/404Response1' + $ref: "#/components/examples/404Response1" 500: description: Internal Server Error content: @@ -983,25 +989,25 @@ paths: type: object examples: 500Response: - $ref: '#/components/examples/500Response' + $ref: "#/components/examples/500Response" 500Response4: - $ref: '#/components/examples/500Response4' + $ref: "#/components/examples/500Response4" deprecated: false security: - - Bearer: [] + - Bearer: [] x-codegen-request-body-name: Body /payments/validate: post: tags: - - ACCOUNT + - ACCOUNT summary: Validate Transaction - description: 'This option is used to complete an account transaction, when OTP is required' + description: "This option is used to complete an account transaction, when OTP is required" operationId: ValidateTransaction requestBody: content: application/json: schema: - $ref: '#/components/schemas/ValidateTransactionRequest' + $ref: "#/components/schemas/ValidateTransactionRequest" required: true responses: 200: @@ -1012,13 +1018,13 @@ paths: type: object examples: ValidateTransactionResponse: - $ref: '#/components/examples/ValidateTransactionResponse' + $ref: "#/components/examples/ValidateTransactionResponse" ValidateTransactionResponse1: - $ref: '#/components/examples/ValidateTransactionResponse1' + $ref: "#/components/examples/ValidateTransactionResponse1" ValidateTransactionResponse2: - $ref: '#/components/examples/ValidateTransactionResponse2' + $ref: "#/components/examples/ValidateTransactionResponse2" ValidateTransactionResponse3: - $ref: '#/components/examples/ValidateTransactionResponse3' + $ref: "#/components/examples/ValidateTransactionResponse3" 400: description: Method Not Allowed content: @@ -1027,7 +1033,7 @@ paths: type: object examples: 400Response: - $ref: '#/components/examples/400Response' + $ref: "#/components/examples/400Response" 500: description: Internal Server Error content: @@ -1036,26 +1042,26 @@ paths: type: object examples: 500Response: - $ref: '#/components/examples/500Response' + $ref: "#/components/examples/500Response" deprecated: false security: - - Bearer: [] + - Bearer: [] x-codegen-request-body-name: Body /payments/tokenize: post: tags: - - TOKENIZE + - TOKENIZE summary: Tokenize a Card - description: 'In order to store your customers payment details, you need to pass some additional parameter when making the first payment request using the payments/tokenize endpoint, the Cvv field and pin are optional(this could be null). After the first payment is made, the payment details is collected and a token is generated for it which is then stored for future use.' + description: "In order to store your customers payment details, you need to pass some additional parameter when making the first payment request using the payments/tokenize endpoint, the Cvv field and pin are optional(this could be null). After the first payment is made, the payment details is collected and a token is generated for it which is then stored for future use." operationId: TokenizeaCard requestBody: content: application/json: schema: type: object - examples: - TokenizeaCardRequest: - $ref: '#/components/examples/TokenizeaCardRequest' + examples: + TokenizeaCardRequest: + $ref: "#/components/examples/TokenizeaCardRequest" required: true responses: 200: @@ -1063,7 +1069,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/TokenizeCardResponse' + $ref: "#/components/schemas/TokenizeCardResponse" 400: description: Method Not Allowed content: @@ -1072,17 +1078,17 @@ paths: type: object examples: 400Response: - $ref: '#/components/examples/400Response' + $ref: "#/components/examples/400Response" 400Response9: - $ref: '#/components/examples/400Response9' + $ref: "#/components/examples/400Response9" 400Response10: - $ref: '#/components/examples/400Response10' + $ref: "#/components/examples/400Response10" 401: description: Unauthorized content: application/json: schema: - $ref: '#/components/schemas/TokenizeCard401Response' + $ref: "#/components/schemas/TokenizeCard401Response" 403: description: Missing Header Token content: @@ -1091,16 +1097,16 @@ paths: type: object examples: 403Response3: - $ref: '#/components/examples/403Response3' + $ref: "#/components/examples/403Response3" 404: description: Not Found content: application/json: schema: - type: object + type: object examples: 404Response1: - $ref: '#/components/examples/404Response1' + $ref: "#/components/examples/404Response1" 500: description: Internal Server Error content: @@ -1109,28 +1115,28 @@ paths: type: object examples: 500Response: - $ref: '#/components/examples/500Response' + $ref: "#/components/examples/500Response" deprecated: false security: - - Basic: [] + - Basic: [] x-codegen-request-body-name: Body /payments/authorise: post: tags: - - AUTHORISE + - AUTHORISE summary: Authorise - description: 'In SeerBit API, the term “authorisation” indicates, that payment is authorised but not captured. This allows a merchant to cancel transaction at their discretion, typically based but not limited to fraud-related activities. This authorisation state is valid for a limited period of time, which provides a window to cancel the transaction.' + description: "In SeerBit API, the term “authorisation” indicates, that payment is authorised but not captured. This allows a merchant to cancel transaction at their discretion, typically based but not limited to fraud-related activities. This authorisation state is valid for a limited period of time, which provides a window to cancel the transaction." operationId: Authorise requestBody: content: application/json: schema: - type: object + type: object examples: AuthoriseRequest: - $ref: '#/components/examples/AuthoriseRequest' + $ref: "#/components/examples/AuthoriseRequest" AuthorisewithCardTokenRequest: - $ref: '#/components/examples/AuthorisewithCardTokenRequest' + $ref: "#/components/examples/AuthorisewithCardTokenRequest" required: true responses: 201: @@ -1141,14 +1147,14 @@ paths: type: object examples: Authorise201Response: - $ref: '#/components/examples/Authorise201Response' + $ref: "#/components/examples/Authorise201Response" Authorise201Response1: - $ref: '#/components/examples/Authorise201Response1' + $ref: "#/components/examples/Authorise201Response1" AuthorisewithCardTokenResponse1: - $ref: '#/components/examples/AuthorisewithCardTokenResponse1' + $ref: "#/components/examples/AuthorisewithCardTokenResponse1" AuthorisewithCardTokenResponse: - $ref: '#/components/examples/AuthorisewithCardTokenResponse' - + $ref: "#/components/examples/AuthorisewithCardTokenResponse" + 400: description: Method Not Allowed content: @@ -1157,19 +1163,19 @@ paths: type: object examples: 400Response: - $ref: '#/components/examples/400Response' + $ref: "#/components/examples/400Response" 400Response1: - $ref: '#/components/examples/400Response1' + $ref: "#/components/examples/400Response1" 400Response3: - $ref: '#/components/examples/400Response3' + $ref: "#/components/examples/400Response3" 400Response5: - $ref: '#/components/examples/400Response5' + $ref: "#/components/examples/400Response5" 400Response6: - $ref: '#/components/examples/400Response6' + $ref: "#/components/examples/400Response6" 400Response7: - $ref: '#/components/examples/400Response7' + $ref: "#/components/examples/400Response7" 400Response8: - $ref: '#/components/examples/400Response8' + $ref: "#/components/examples/400Response8" 401: description: Unauthorized content: @@ -1178,7 +1184,7 @@ paths: type: object examples: 401Response1: - $ref: '#/components/examples/401Response1' + $ref: "#/components/examples/401Response1" 403: description: Missing Header Token content: @@ -1187,24 +1193,24 @@ paths: type: object examples: CreateOrder403Response: - $ref: '#/components/examples/Order403Response' + $ref: "#/components/examples/Order403Response" 403Response: - $ref: '#/components/examples/403Response' + $ref: "#/components/examples/403Response" 403Response2: - $ref: '#/components/examples/403Response2' + $ref: "#/components/examples/403Response2" 403Response3: - $ref: '#/components/examples/403Response3' + $ref: "#/components/examples/403Response3" 403Response4: - $ref: '#/components/examples/403Response4' + $ref: "#/components/examples/403Response4" 404: description: Not Found content: application/json: schema: - type: object + type: object examples: 404Response1: - $ref: '#/components/examples/404Response1' + $ref: "#/components/examples/404Response1" 500: description: Internal Server Error content: @@ -1213,26 +1219,26 @@ paths: type: object examples: 500Response: - $ref: '#/components/examples/500Response' + $ref: "#/components/examples/500Response" deprecated: false security: - - Basic: [] + - Basic: [] x-codegen-request-body-name: Body /payments/authorise3ds: post: tags: - - AUTHORISE + - AUTHORISE summary: 3DS Authorise - description: 'PIN and CVV are not Required to complete Transaction. Authorization is completed on 3DS.' + description: "PIN and CVV are not Required to complete Transaction. Authorization is completed on 3DS." operationId: 3DSAuthorise requestBody: content: application/json: schema: - type: object + type: object examples: 3DSAuthoriseRequest: - $ref: '#/components/examples/3DSAuthoriseRequest' + $ref: "#/components/examples/3DSAuthoriseRequest" required: true responses: 200: @@ -1243,9 +1249,9 @@ paths: type: object examples: 3DSAuthoriseResponse: - $ref: '#/components/examples/3DSAuthoriseResponse' + $ref: "#/components/examples/3DSAuthoriseResponse" 3DSAuthoriseResponse1: - $ref: '#/components/examples/3DSAuthoriseResponse1' + $ref: "#/components/examples/3DSAuthoriseResponse1" 400: description: Method Not Allowed content: @@ -1254,7 +1260,7 @@ paths: type: object examples: 400Response: - $ref: '#/components/examples/400Response' + $ref: "#/components/examples/400Response" 401: description: Unauthorized content: @@ -1263,7 +1269,7 @@ paths: type: object examples: 401Response: - $ref: '#/components/examples/401Response' + $ref: "#/components/examples/401Response" 403: description: Missing Header Token content: @@ -1272,24 +1278,24 @@ paths: type: object examples: CreateOrder403Response: - $ref: '#/components/examples/Order403Response' + $ref: "#/components/examples/Order403Response" 403Response: - $ref: '#/components/examples/403Response' + $ref: "#/components/examples/403Response" 403Response2: - $ref: '#/components/examples/403Response2' + $ref: "#/components/examples/403Response2" 403Response3: - $ref: '#/components/examples/403Response3' + $ref: "#/components/examples/403Response3" 403Response4: - $ref: '#/components/examples/403Response4' + $ref: "#/components/examples/403Response4" 404: description: Not Found content: application/json: schema: - type: object + type: object examples: 400Response1: - $ref: '#/components/examples/404Response1' + $ref: "#/components/examples/404Response1" 500: description: Internal Server Error content: @@ -1298,36 +1304,270 @@ paths: type: object examples: 500Response: - $ref: '#/components/examples/500Response' + $ref: "#/components/examples/500Response" deprecated: false security: - - Bearer: [] + - Bearer: [] x-codegen-request-body-name: Body - /payments/capture: + # /payments/capture: + # post: + # tags: + # - PREAUTHORIZATION + # summary: Capture + # description: "Captures a payment if supported by the payment method." + # operationId: Capture + # requestBody: + # content: + # application/json: + # schema: + # $ref: "#/components/schemas/CaptureRequest" + # required: true + # responses: + # 201: + # description: "" + # content: + # application/json: + # schema: + # type: object + # examples: + # CaptureResponse: + # $ref: "#/components/examples/Capture201Response" + # CaptureResponse1: + # $ref: "#/components/examples/Capture201Response1" + # 400: + # description: Method Not Allowed + # content: + # application/json: + # schema: + # type: object + # examples: + # 400Response: + # $ref: "#/components/examples/400Response" + # 400Response2: + # $ref: "#/components/examples/400Response2" + # 400Response3: + # $ref: "#/components/examples/400Response3" + # 400Response4: + # $ref: "#/components/examples/400Response4" + # 400Response5: + # $ref: "#/components/examples/400Response5" + # 400Response6: + # $ref: "#/components/examples/400Response6" + # 400Response8: + # $ref: "#/components/examples/400Response8" + # 400Response11: + # $ref: "#/components/examples/400Response11" + + # 403: + # description: Missing Header Token + # content: + # application/json: + # schema: + # type: object + # examples: + # 403Response: + # $ref: "#/components/examples/403Response" + # 403Response2: + # $ref: "#/components/examples/403Response2" + # 403Response3: + # $ref: "#/components/examples/403Response3" + # 404: + # description: Not Found + # content: + # application/json: + # schema: + # type: object + # examples: + # 400Response: + # $ref: "#/components/examples/404Response1" + # 500: + # description: Internal Server Error + # content: + # application/json: + # schema: + # type: object + # examples: + # 500Response: + # $ref: "#/components/examples/500Response" + # deprecated: false + # security: + # - Basic: [] + # x-codegen-request-body-name: Body + # /payments/refund: + # post: + # tags: + # - PREAUTHORIZATION + # summary: Refund + # description: "Refunds a payment if supported by the payment method." + # operationId: Refund + # requestBody: + # content: + # application/json: + # schema: + # $ref: "#/components/schemas/RefundRequest" + # required: true + # responses: + # 201: + # description: "" + # content: + # application/json: + # schema: + # $ref: "#/components/schemas/Refund201Response" + # 400: + # description: Method Not Allowed + # content: + # application/json: + # schema: + # type: object + # examples: + # 400Response: + # $ref: "#/components/examples/400Response" + # 400Response2: + # $ref: "#/components/examples/400Response2" + # 400Response3: + # $ref: "#/components/examples/400Response3" + # 400Response4: + # $ref: "#/components/examples/400Response4" + # 400Response5: + # $ref: "#/components/examples/400Response5" + # 400Response6: + # $ref: "#/components/examples/400Response6" + # 400Response8: + # $ref: "#/components/examples/400Response8" + # 400Response11: + # $ref: "#/components/examples/400Response11" + # 403: + # description: Missing Header Token + # content: + # application/json: + # schema: + # type: object + # examples: + # 403Response: + # $ref: "#/components/examples/403Response" + # 403Response2: + # $ref: "#/components/examples/403Response2" + # 403Response3: + # $ref: "#/components/examples/403Response3" + # 404: + # description: Not Found + # content: + # application/json: + # schema: + # type: object + # examples: + # 400Response: + # $ref: "#/components/examples/404Response1" + # 500: + # description: Internal Server Error + # content: + # application/json: + # schema: + # type: object + # examples: + # 500Response: + # $ref: "#/components/examples/500Response" + # deprecated: false + # security: + # - Basic: [] + # x-codegen-request-body-name: Body + # /payments/cancel: + # post: + # tags: + # - PREAUTHORIZATION + # summary: Cancel + # description: "Cancel a payment if supported by the payment method." + # operationId: Cancel + # requestBody: + # content: + # application/json: + # schema: + # $ref: "#/components/schemas/CancelRequest" + # required: true + # responses: + # 201: + # description: "" + # content: + # application/json: + # schema: + # $ref: "#/components/schemas/Cancel201Response" + # 400: + # description: Method Not Allowed + # content: + # application/json: + # schema: + # type: object + # examples: + # 400Response: + # $ref: "#/components/examples/400Response" + # 400Response2: + # $ref: "#/components/examples/400Response2" + # 400Response3: + # $ref: "#/components/examples/400Response3" + # 400Response4: + # $ref: "#/components/examples/400Response4" + # 400Response5: + # $ref: "#/components/examples/400Response5" + # 400Response6: + # $ref: "#/components/examples/400Response6" + # 400Response11: + # $ref: "#/components/examples/400Response11" + # 403: + # description: Missing Header Token + # content: + # application/json: + # schema: + # type: object + # examples: + # 403Response2: + # $ref: "#/components/examples/403Response2" + # 403Response3: + # $ref: "#/components/examples/403Response3" + # 404: + # description: Not Found + # content: + # application/json: + # schema: + # type: object + # examples: + # 400Response: + # $ref: "#/components/examples/404Response1" + # 500: + # description: Internal Server Error + # content: + # application/json: + # schema: + # type: object + # examples: + # 500Response: + # $ref: "#/components/examples/500Response" + # deprecated: false + # security: + # - Basic: [] + # x-codegen-request-body-name: Body + /recurring/subscribes: post: tags: - - PREAUTHORIZATION - summary: Capture - description: 'Captures a payment if supported by the payment method.' - operationId: Capture + - RECURRENT + summary: Initiate Subscription + description: "To complete this transaction, merchant is expected to redirect to the 3DSecure site via the redirect URL provided with the response below. However if the redirect url is not returned and the code is S20 and the message is transaction is pending, the Validate OTP endpoint should be called as the customer would have received a token either by email or sms on the customers phone. To get the subscription created or the status of a subscription for the customer, the GET Subscription endpoint is called by passing the paymentReference as billingId." + operationId: InitiateSubscription requestBody: content: application/json: schema: - $ref: '#/components/schemas/CaptureRequest' + type: object + examples: + InitiateSubscriptionRequest: + $ref: "#/components/examples/InitiateSubscriptionRequest" required: true responses: - 201: + 200: description: "" content: application/json: schema: - type: object - examples: - CaptureResponse: - $ref: '#/components/examples/Capture201Response' - CaptureResponse1: - $ref: '#/components/examples/Capture201Response1' + $ref: "#/components/schemas/InitiateSubscriptionResponse" 400: description: Method Not Allowed content: @@ -1336,22 +1576,26 @@ paths: type: object examples: 400Response: - $ref: '#/components/examples/400Response' - 400Response2: - $ref: '#/components/examples/400Response2' + $ref: "#/components/examples/400Response" + 400Response1: + $ref: "#/components/examples/400Response12" 400Response3: - $ref: '#/components/examples/400Response3' + $ref: "#/components/examples/400Response13" 400Response4: - $ref: '#/components/examples/400Response4' + $ref: "#/components/examples/400Response14" 400Response5: - $ref: '#/components/examples/400Response5' + $ref: "#/components/examples/400Response15" 400Response6: - $ref: '#/components/examples/400Response6' - 400Response8: - $ref: '#/components/examples/400Response8' - 400Response11: - $ref: '#/components/examples/400Response11' - + $ref: "#/components/examples/400Response16" + 401: + description: Unauthorized + content: + application/json: + schema: + type: object + examples: + 401Response: + $ref: "#/components/examples/401Response" 403: description: Missing Header Token content: @@ -1359,21 +1603,28 @@ paths: schema: type: object examples: + CreateOrder403Response: + $ref: "#/components/examples/Order403Response" 403Response: - $ref: '#/components/examples/403Response' - 403Response2: - $ref: '#/components/examples/403Response2' - 403Response3: - $ref: '#/components/examples/403Response3' + $ref: "#/components/examples/403Response" 404: description: Not Found content: application/json: schema: - type: object + type: object examples: 400Response: - $ref: '#/components/examples/404Response1' + $ref: "#/components/examples/404Response" + 409: + description: Conflict + content: + application/json: + schema: + type: object + examples: + 409Response: + $ref: "#/components/examples/409Response" 500: description: Internal Server Error content: @@ -1382,31 +1633,25 @@ paths: type: object examples: 500Response: - $ref: '#/components/examples/500Response' + $ref: "#/components/examples/500Response" deprecated: false security: - - Basic: [] + - Bearer: [] x-codegen-request-body-name: Body - /payments/refund: - post: + /recurring/billingId/TPR2181t55PER542RPP1U1W4391WO: + get: tags: - - PREAUTHORIZATION - summary: Refund - description: 'Refunds a payment if supported by the payment method.' - operationId: Refund - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/RefundRequest' - required: true + - RECURRENT + summary: Get a Subscription + description: "Get customer subscription" + operationId: GetaSubscription responses: - 201: + 200: description: "" content: application/json: schema: - $ref: '#/components/schemas/Refund201Response' + $ref: "#/components/schemas/GetSubscriptionResponse" 400: description: Method Not Allowed content: @@ -1415,43 +1660,18 @@ paths: type: object examples: 400Response: - $ref: '#/components/examples/400Response' - 400Response2: - $ref: '#/components/examples/400Response2' - 400Response3: - $ref: '#/components/examples/400Response3' - 400Response4: - $ref: '#/components/examples/400Response4' - 400Response5: - $ref: '#/components/examples/400Response5' - 400Response6: - $ref: '#/components/examples/400Response6' - 400Response8: - $ref: '#/components/examples/400Response8' - 400Response11: - $ref: '#/components/examples/400Response11' - 403: - description: Missing Header Token - content: - application/json: - schema: - type: object - examples: - 403Response: - $ref: '#/components/examples/403Response' - 403Response2: - $ref: '#/components/examples/403Response2' - 403Response3: - $ref: '#/components/examples/403Response3' + $ref: "#/components/examples/400Response" 404: description: Not Found content: application/json: schema: - type: object + type: object examples: - 400Response: - $ref: '#/components/examples/404Response1' + 400Response1: + $ref: "#/components/examples/404Response1" + 400Response2: + $ref: "#/components/examples/404Response2" 500: description: Internal Server Error content: @@ -1460,72 +1680,204 @@ paths: type: object examples: 500Response: - $ref: '#/components/examples/500Response' + $ref: "#/components/examples/500Response" deprecated: false security: - - Basic: [] + - Bearer: [] x-codegen-request-body-name: Body - /payments/cancel: + + # create a plan + /recurrent/plan/create: post: tags: - - PREAUTHORIZATION - summary: Cancel - description: 'Cancel a payment if supported by the payment method.' - operationId: Cancel + - RECURRENT + summary: Create Plan + description: "Create a new recurring payment plan." + operationId: CreatePlan + servers: + - url: https://merchants.seerbitapi.com/api/v1 + description: SeerBit Merchant Recurring Server + parameters: + - name: Content-Type + in: header + required: true + schema: + type: string + default: application/json requestBody: + required: true content: application/json: schema: - $ref: '#/components/schemas/CancelRequest' - required: true + $ref: "#/components/schemas/CreatePlanRequest" + examples: + CreatePlanRequest: + value: + productId: "Plan name" + productDescription: "Description of Plan" + amount: "100" + billingCycle: "HOURLY" + limit: 5 + publicKey: "SBPUBK_xxxxx" + country: "NG" + currency: "NGN" + allowPartialDebit: false responses: - 201: - description: "" + 200: + description: OK content: application/json: schema: - $ref: '#/components/schemas/Cancel201Response' - 400: - description: Method Not Allowed + $ref: "#/components/schemas/CreatePlanResponse" + examples: + CreatePlanResponse: + value: + payload: + country: "NG" + createdAt: 1715607343498 + amount: 100 + productId: "Plan name" + billingCycle: "HOURLY" + currency: "NGN" + payUrl: "https://pay.seerbitapi.com/db1ea861993689a57dac" + details: + country: "NG" + amount: 100 + productId: "Plan name" + allowPartialDebit: false + payLinkUrl: "https://pay.seerbitapi.com/db1ea861993689a57dac" + publicKey: "SBPUBK_xxxxx" + createdAt: 1715607343498 + trialDuration: 0 + trialPeriod: false + billingCycle: "HOURLY" + limit: 5 + planId: "db1ea861993689a57dac" + currency: "NGN" + id: 20031 + productDescription: "Description of Plan" + updatedAt: null + status: "ACTIVE" + publicKey: "SBPUBK_xxxxx" + plan: "db1ea861993689a57dac" + productDescription: "Description of Plan" + message: "Successful" + status: "SUCCESS" + responseCode: "00" + 401: + description: Unauthorized content: application/json: schema: type: object examples: - 400Response: - $ref: '#/components/examples/400Response' - 400Response2: - $ref: '#/components/examples/400Response2' - 400Response3: - $ref: '#/components/examples/400Response3' - 400Response4: - $ref: '#/components/examples/400Response4' - 400Response5: - $ref: '#/components/examples/400Response5' - 400Response6: - $ref: '#/components/examples/400Response6' - 400Response11: - $ref: '#/components/examples/400Response11' - 403: - description: Missing Header Token + UnauthorizedPlan: + value: + message: "Invalid Authentication Token" + error: "INPUT" + 404: + description: Bad Request content: application/json: schema: type: object examples: - 403Response2: - $ref: '#/components/examples/403Response2' - 403Response3: - $ref: '#/components/examples/403Response3' + BadRequestPlan: + value: + message: "Bad Request" + error: "There has been a problem with reading or understanding the request." + 500: + description: Internal Server Error + content: + application/json: + schema: + type: object + examples: + Plan500Response: + value: + message: "Internal server error" + security: + - Bearer: [] + deprecated: false + # get merchant subscription plans + /recurring/publicKey/{publicKey}: + get: + tags: + - RECURRENT + summary: Get Merchant Subscription + description: "Retrieve all subscriptions for a merchant by their public key." + operationId: GetMerchantSubscription + servers: + - url: https://seerbitapi.com/api/v2 + description: SeerBit API Server + parameters: + - name: publicKey + in: path + required: true + description: The merchant public key. + schema: + type: string + responses: + 200: + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/GetMerchantSubscriptionResponse" + examples: + GetMerchantSubscriptionResponse: + value: + status: "SUCCESS" + data: + subscriptions: + - publicKey: "SBTEST**************************viTF" + amount: "20" + country: "NG" + customerId: "651d33a62ad69c9f37c4" + cardName: "Jane Smith" + cardNumber: "2223-00xx-xxxx-0007" + plan: "ae702f51220000722dca" + status: "ACTIVE" + billingId: "WQ6676yPOpr12348o" + authorizationCode: "2beb0ccdd347e604552a" + startDate: "2019-01-11 00:00:00" + createdAt: 1578648329000 + - publicKey: "SBTEST**************************viTF" + amount: "100" + country: "NG" + customerId: "ba981a0b7ed1c68ad245" + cardName: "Jane Smith" + cardNumber: "5123-45xx-xxxx-0008" + plan: "ead5e697f42c1cd60813" + status: "ACTIVE" + billingId: "PUBK_PjQ5d1578649732262" + authorizationCode: "145a3bb3418824c14d65" + startDate: "2020-10-01 10:47:49" + createdAt: 1578649752000 + code: "00" + message: "successful" + 401: + description: Unauthorized + content: + application/json: + schema: + type: object + examples: + UnauthorizedMerchantSubscription: + value: + message: "Invalid Authentication Token" + error: "INPUT" 404: description: Not Found content: application/json: schema: - type: object + type: object examples: - 400Response: - $ref: '#/components/examples/404Response1' + NotFoundMerchantSubscription: + value: + message: "Not Found" + error: "The server can not find the requested resource" 500: description: Internal Server Error content: @@ -1533,92 +1885,189 @@ paths: schema: type: object examples: - 500Response: - $ref: '#/components/examples/500Response' - deprecated: false + MerchantSubscription500Response: + value: + message: "Internal Server Error" security: - - Basic: [] - x-codegen-request-body-name: Body - /recurring/subscribes: + - Bearer: [] + deprecated: false + # charge subscription + /recurring/charge: post: tags: - - RECURRENT - summary: Initiate Subscription - description: 'To complete this transaction, merchant is expected to redirect to the 3DSecure site via the redirect URL provided with the response below. However if the redirect url is not returned and the code is S20 and the message is transaction is pending, the Validate OTP endpoint should be called as the customer would have received a token either by email or sms on the customers phone. To get the subscription created or the status of a subscription for the customer, the GET Subscription endpoint is called by passing the paymentReference as billingId.' - operationId: InitiateSubscription + - RECURRENT + summary: Charge Subscription + description: "Charge a recurring subscription using an authorization code." + operationId: ChargeSubscription + servers: + - url: https://seerbitapi.com/api/v2 + description: SeerBit API Server + parameters: + - name: Content-Type + in: header + required: true + schema: + type: string + default: application/json requestBody: + required: true content: application/json: schema: - type: object + $ref: "#/components/schemas/ChargeSubscriptionRequest" examples: - InitiateSubscriptionRequest: - $ref: '#/components/examples/InitiateSubscriptionRequest' - required: true + ChargeSubscriptionRequest: + value: + amount: "200" + publicKey: "YOUR_PUBLIC_KEY" + email: "js@emaildomain.com" + allowPartialDebit: true + authorizationCode: "1234567898765325" + paymentReference: "2938765582R37065687631" + currency: "NGN" responses: 200: - description: "" + description: OK content: application/json: schema: - $ref: '#/components/schemas/InitiateSubscriptionResponse' - 400: - description: Method Not Allowed + $ref: "#/components/schemas/ChargeSubscriptionResponse" + examples: + ChargeSubscriptionResponse: + value: + status: "SUCCESS" + data: + code: "00" + payments: + code: "00" + message: "Successful" + paymentReference: "2938765582R37065687631" + publicKey: "SBTEST**************************viTF" + amount: "200" + currency: "NGN" + country: "NG" + email: "js@emaildomain.com" + productDescription: "Authorised charge" + message: "Successful" + 401: + description: Unauthorized content: application/json: schema: type: object examples: - 400Response: - $ref: '#/components/examples/400Response' - 400Response1: - $ref: '#/components/examples/400Response12' - 400Response3: - $ref: '#/components/examples/400Response13' - 400Response4: - $ref: '#/components/examples/400Response14' - 400Response5: - $ref: '#/components/examples/400Response15' - 400Response6: - $ref: '#/components/examples/400Response16' - 401: - description: Unauthorized + UnauthorizedChargeSubscription: + value: + message: "Invalid Authentication Token" + error: "INPUT" + 404: + description: Not Found content: application/json: schema: type: object examples: - 401Response: - $ref: '#/components/examples/401Response' - 403: - description: Missing Header Token + NotFoundChargeSubscription: + value: + message: "Not Found" + error: "The server can not find the requested resource" + 500: + description: Internal Server Error content: application/json: schema: type: object examples: - CreateOrder403Response: - $ref: '#/components/examples/Order403Response' - 403Response: - $ref: '#/components/examples/403Response' - 404: - description: Not Found + ChargeSubscription500Response: + value: + message: "Internal Server Error" + security: + - Bearer: [] + deprecated: false + # get customer subscription + /recurring/{publicKey}/customerId/{customerId}: + get: + tags: + - RECURRENT + summary: Get Customer Subscription + description: "Retrieve all subscriptions for a customer by their customerId and merchant public key." + operationId: GetCustomerSubscription + servers: + - url: https://seerbitapi.com/api/v2 + description: SeerBit API Server + parameters: + - name: publicKey + in: path + required: true + description: The merchant public key. + schema: + type: string + - name: customerId + in: path + required: true + description: The customer ID. + schema: + type: string + responses: + 200: + description: OK content: application/json: schema: - type: object + $ref: "#/components/schemas/GetCustomerSubscriptionResponse" examples: - 400Response: - $ref: '#/components/examples/404Response' - 409: - description: Conflict + GetCustomerSubscriptionResponse: + value: + status: "SUCCESS" + data: + subscriptions: + - publicKey: "SBTEST**************************viTF" + amount: "100" + country: "NG" + customerId: "ba981a0b7ed1c68ad245" + cardName: "Jane Smith" + cardNumber: "5123-45xx-xxxx-0008" + plan: "ead5e697f42c1cd60813" + status: "ACTIVE" + billingId: "PUBK_PjQ5d1578649732262" + authorizationCode: "145a3bb3418824c14d65" + startDate: "2020-10-01 10:47:49" + createdAt: 1578649752000 + - publicKey: "SBTEST**************************viTF" + amount: "20000" + country: "NG" + customerId: "ba981a0b7ed1c68ad245" + cardName: "John Smith" + cardNumber: "5123-45xx-xxxx-0008" + plan: "80b0854b35a0e279efc3" + status: "INACTIVE" + billingId: "PUBK_PjQ5d1578650322483" + authorizationCode: "ddfce36aa4f3abc7cf72" + startDate: "2020-10-01 10:58:25" + createdAt: 1578650353000 + code: "00" + 401: + description: Unauthorized content: application/json: schema: type: object examples: - 409Response: - $ref: '#/components/examples/409Response' + UnauthorizedCustomerSubscription: + value: + message: "Invalid Authentication Token" + error: "INPUT" + 404: + description: Not Found + content: + application/json: + schema: + type: object + examples: + NotFoundCustomerSubscription: + value: + message: "Not Found" + error: "The server can not find the requested resource" 500: description: Internal Server Error content: @@ -1626,46 +2075,95 @@ paths: schema: type: object examples: - 500Response: - $ref: '#/components/examples/500Response' - deprecated: false + CustomerSubscription500Response: + value: + message: "Internal Server Error" security: - - Bearer: [] - x-codegen-request-body-name: Body - /recurring/billingId/TPR2181t55PER542RPP1U1W4391WO: - get: + - Bearer: [] + deprecated: false + # update customer subscription + /recurring/updates: + post: tags: - - RECURRENT - summary: Get a Subscription - description: 'Get customer subscription' - operationId: GetaSubscription + - RECURRENT + summary: Update Customer Subscription + description: "Update a customer's subscription details." + operationId: UpdateCustomerSubscription + servers: + - url: https://seerbitapi.com/api/v2 + description: SeerBit API Server + parameters: + - name: Content-Type + in: header + required: true + schema: + type: string + default: application/json + requestBody: + required: true + content: + application/json: + schema: + $ref: "#/components/schemas/UpdateCustomerSubscriptionRequest" + examples: + UpdateCustomerSubscriptionRequest: + value: + amount: "20000" + currency: "NGN" + country: "NG" + mobileNumber: "08033456500" + billingId: "PUBK_PjQ5d1578650322483" + publicKey: "YOUR_PUBLIC_KEY" + status: "INACTIVE" responses: 200: - description: "" + description: OK content: application/json: schema: - $ref: '#/components/schemas/GetSubscriptionResponse' - 400: - description: Method Not Allowed + $ref: "#/components/schemas/UpdateCustomerSubscriptionResponse" + examples: + UpdateCustomerSubscriptionResponse: + value: + status: "SUCCESS" + data: + subscriptions: + publicKey: "SBTEST**************************viTF" + amount: "20000" + country: "NG" + customerId: "ba981a0b7ed1c68ad245" + cardName: "Jane Smith" + cardNumber: "5123-45xx-xxxx-0008" + plan: "80b0854b35a0e279efc3" + status: "INACTIVE" + billingId: "PUBK_PjQ5d1578650322483" + authorizationCode: "ddfce36aa4f3abc7cf72" + startDate: "2020-10-01 10:58:25" + createdAt: 1578650353000 + code: "00" + message: "Successful" + 401: + description: Unauthorized content: application/json: schema: type: object examples: - 400Response: - $ref: '#/components/examples/400Response' + UnauthorizedUpdateCustomerSubscription: + value: + message: "Invalid Authentication Token" + error: "INPUT" 404: description: Not Found content: application/json: schema: - type: object + type: object examples: - 400Response1: - $ref: '#/components/examples/404Response1' - 400Response2: - $ref: '#/components/examples/404Response2' + NotFoundUpdateCustomerSubscription: + value: + message: "Not Found" + error: "The server can not find the requested resource" 500: description: Internal Server Error content: @@ -1673,265 +2171,4446 @@ paths: schema: type: object examples: - 500Response: - $ref: '#/components/examples/500Response' - deprecated: false + UpdateCustomerSubscription500Response: + value: + message: "Internal Server Error" security: - - Bearer: [] -components: - schemas: - GenerateEncryptedSecretKeyRequest: - title: GenerateEncryptedSecretKeyRequest - required: - - key - type: object - properties: - key: - type: string - description: This consist of the PrivateKey and the publicKey separated with a '.' in the middle(eg:{privateKey.publicKey} - example: - key: SBTESTSECK_9Cb8dbqR5Rc2JwZaa77P5QYHzQaeGUcrkEMD1dEi.SBTESTPUBK_9sN3TuLgW6a9redEfY48cKKkUa09Pz2u - GenerateHashRequest: - title: GenerateHashRequest - required: - - amount - - callbackUrl - - country - - currency - - email - - paymentReference - - productDescription - - productId - - publicKey - type: object - properties: - publicKey: - type: string - description: This is the merchant public key. - amount: + - Bearer: [] + deprecated: false + # invoice + /invoice/create: + post: + servers: + - url: https://merchant.seerbitapi.com + description: SeerBit Merchant Server + tags: + - INVOICE + summary: Create And Send Invoice + description: "This endpoint is used to create an invoice for a customer." + operationId: CreateInvoice + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/CreateInvoiceRequest" + required: true + responses: + 201: + description: "Created" + content: + application/json: + schema: + $ref: "#/components/schemas/CreateInvoiceResponse" + 400: + description: Method Not Allowed + content: + application/json: + schema: + type: object + examples: + 400Response: + $ref: "#/components/examples/400Response" + 400Response1: + $ref: "#/components/examples/400Response1" + 400Response2: + $ref: "#/components/examples/400Response2" + + 404: + description: Not Found + content: + application/json: + schema: + type: object + examples: + 400Response1: + $ref: "#/components/examples/404Response1" + 400Response2: + $ref: "#/components/examples/404Response2" + 500: + description: Internal Server Error + content: + application/json: + schema: + type: object + examples: + 500Response: + $ref: "#/components/examples/500Response" + /invoice/{publicKey}/send/{invoiceNo}: + get: + servers: + - url: https://merchant.seerbitapi.com + description: SeerBit Merchant Server + tags: + - INVOICE + summary: Resend An Invoice + description: "This endpoint is used to resend an invoice to a customer." + operationId: ResendInvoice + parameters: + - name: publicKey + in: path + required: true + description: "This is the merchant public key." + schema: + type: string + - name: invoiceNo + in: path + required: true + description: "This is the invoice number." + schema: + type: string + responses: + 200: + description: "Created" + content: + application/json: + schema: + $ref: "#/components/schemas/ResendInvoiceResponse" + + 400: + description: Method Not Allowed + content: + application/json: + schema: + type: object + examples: + 400Response: + $ref: "#/components/examples/400Response" + 400Response1: + $ref: "#/components/examples/400Response1" + 400Response2: + $ref: "#/components/examples/400Response2" + 404: + description: Not Found + content: + application/json: + schema: + type: object + examples: + 400Response1: + $ref: "#/components/examples/404Response1" + 400Response2: + $ref: "#/components/examples/404Response2" + 500: + description: Internal Server Error + content: + application/json: + schema: + type: object + examples: + 500Response: + $ref: "#/components/examples/500Response" + security: + - Bearer: [] + # get invoice by customer email + /invoice/{publicKey}/customer/{customerEmail}: + get: + servers: + - url: https://merchant.seerbitapi.com + description: SeerBit Merchant Server + tags: + - INVOICE + summary: Get Invoice By Customer Email + description: "Retrieve all invoices for a customer by their email address." + operationId: GetInvoiceByCustomerEmail + parameters: + - name: publicKey + in: path + required: true + description: The merchant public key. + schema: + type: string + - name: customerEmail + in: path + required: true + description: The customer's email address. + schema: + type: string + responses: + 200: + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/GetInvoiceByCustomerEmailResponse" + examples: + GetInvoiceByCustomerEmailResponse: + $ref: "#/components/examples/GetInvoiceByCustomerEmailResponse" + 400: + description: Method Not Allowed + content: + application/json: + schema: + type: object + examples: + 400Response: + $ref: "#/components/examples/400Response" + 400Response1: + $ref: "#/components/examples/400Response1" + 400Response2: + $ref: "#/components/examples/400Response2" + 404: + description: Not Found + content: + application/json: + schema: + type: object + examples: + 400Response1: + $ref: "#/components/examples/404Response1" + 400Response2: + $ref: "#/components/examples/404Response2" + 500: + description: Internal Server Error + content: + application/json: + schema: + type: object + examples: + 500Response: + $ref: "#/components/examples/500Response" + deprecated: false + security: + - Bearer: [] + + # get invoice by invoice number + /invoice/{publicKey}/{invoiceNo}: + get: + servers: + - url: https://merchant.seerbitapi.com + description: SeerBit Merchant Server + tags: + - INVOICE + summary: Get Invoice By Invoice Number + description: "Retrieve an invoice by its invoice number." + operationId: GetInvoiceByInvoiceNumber + parameters: + - name: publicKey + in: path + required: true + description: The merchant public key. + schema: + type: string + - name: invoiceNo + in: path + required: true + description: The invoice number. + schema: + type: string + responses: + 200: + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/GetInvoiceByInvoiceNumberResponse" + examples: + GetInvoiceByInvoiceNumberResponse: + $ref: "#/components/examples/GetInvoiceByInvoiceNumberResponse" + 400: + description: Method Not Allowed + content: + application/json: + schema: + type: object + examples: + 400Response: + $ref: "#/components/examples/400Response" + 400Response1: + $ref: "#/components/examples/400Response1" + 400Response2: + $ref: "#/components/examples/400Response2" + 404: + description: Not Found + content: + application/json: + schema: + type: object + examples: + 400Response1: + $ref: "#/components/examples/404Response1" + 400Response2: + $ref: "#/components/examples/404Response2" + 500: + description: Internal Server Error + content: + application/json: + schema: + type: object + examples: + 500Response: + $ref: "#/components/examples/500Response" + deprecated: false + security: + - Bearer: [] + + # get invoice by orderNo + /invoice/{publicKey}/order/{orderNo}: + get: + servers: + - url: https://merchant.seerbitapi.com + description: SeerBit Merchant Server + tags: + - INVOICE + summary: Get Invoice By Order Number + description: "Retrieve an invoice by its order number." + operationId: GetInvoiceByOrderNumber + parameters: + - name: publicKey + in: path + required: true + description: The merchant public key. + schema: + type: string + - name: orderNo + in: path + required: true + description: The order number. + schema: + type: string + responses: + 200: + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/GetInvoiceByOrderNumberResponse" + examples: + GetInvoiceByOrderNumberResponse: + $ref: "#/components/examples/GetInvoiceByOrderNumberResponse" + 400: + description: Method Not Allowed + content: + application/json: + schema: + type: object + examples: + 400Response: + $ref: "#/components/examples/400Response" + 400Response1: + $ref: "#/components/examples/400Response1" + 400Response2: + $ref: "#/components/examples/400Response2" + 404: + description: Not Found + content: + application/json: + schema: + type: object + examples: + 400Response1: + $ref: "#/components/examples/404Response1" + 400Response2: + $ref: "#/components/examples/404Response2" + 500: + description: Internal Server Error + content: + application/json: + schema: + type: object + examples: + 500Response: + $ref: "#/components/examples/500Response" + deprecated: false + security: + - Bearer: [] + # authenticate pocket + /pocket/authenticate: + post: + servers: + - url: https://pocket.seerbitapi.com + description: SeerBit Pocket Server + tags: + - POCKET + summary: Authenticate Pocket + description: "This endpoint is used to authenticate a pocket using the provided key." + operationId: AuthenticatePocket + requestBody: + required: true + content: + application/json: + schema: + $ref: "#/components/schemas/PocketAuthRequest" + examples: + PocketAuthRequest: + value: + email: your pocket email + password: your password + responses: + 200: + description: Authentication successful + content: + application/json: + schema: + $ref: "#/components/schemas/PocketAuthResponse" + examples: + PocketAuthResponse: + value: + responseCode: "00" + message: Success + data: + bearerToken: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.randomtoken" + expiryTime: "2025-07-07T20:12:28" + requirePasswordChange: true + 401: + description: Unauthorized + content: + application/json: + schema: + type: object + examples: + UnauthorizedPocketAuth: + value: + responseCode: "01" + message: Invalid credentials + 500: + description: Internal Server Error + content: + application/json: + schema: + type: object + examples: + PocketAuth500Response: + value: + responseCode: "96" + message: Internal Server Error + deprecated: false + # adding a sub-pocket + /pocket/pocket-id/{PocketID}/sub-pocket: + post: + servers: + - url: https://pocket.seerbitapi.com + description: SeerBit Pocket Server + tags: + - POCKET + summary: Add Sub-Pocket + description: "Create a sub-pocket under a parent pocket." + operationId: AddSubPocket + parameters: + - name: PocketID + in: path + required: true + description: The parent pocket ID. + schema: + type: string + - name: public-key + in: header + required: true + description: The merchant public key. + schema: + type: string + - name: Content-Type + in: header + required: true + schema: + type: string + default: application/json + requestBody: + required: true + content: + application/json: + schema: + type: array + items: + $ref: "#/components/schemas/AddSubPocketRequest" + examples: + AddSubPocketRequest: + value: + - tagGroup: "" + reference: "Create_subpo77899ck987et45" + pocketFunction: "BOTH" + currency: "NGN" + tagName: "" + selfOwned: false + pocketOwner: + existingPocketOwner: "false" + pocketOwnerDetails: + firstName: "Bola" + lastName: "Are" + emailAddress: "youremail.com" + phoneNumber: "08824485749" + businessName: "samsn and sons" + responses: + 200: + description: Sub-pocket created successfully + content: + application/json: + schema: + $ref: "#/components/schemas/AddSubPocketResponse" + examples: + AddSubPocketResponse: + value: + responseCode: "00" + message: Success + data: + - pocketId: "SBP0018103" + parentId: 3771 + bankAccountNumber: "7750209735" + bankAccountName: "samsn and sons" + bankCode: "WEMA" + bankName: "Wema Bank" + canRetailPockets: false + subPocketUserResponse: + userName: "youremail.com" + password: "$2a$12$VCyQhEK0ULRoxuZXXEEzJ.N56.fE5tiY6u2fxm7KWzEAUnVVDMn5K" + 401: + description: Unauthorized + content: + application/json: + schema: + type: object + examples: + UnauthorizedPocket: + value: + responseCode: "01" + message: Invalid credentials + 500: + description: Internal Server Error + content: + application/json: + schema: + type: object + examples: + Pocket500Response: + value: + responseCode: "400" + message: Internal Server Error + security: + - Bearer: [] + deprecated: false + # get pocket details + /pocket/pocket-id/{PocketID}: + get: + servers: + - url: https://pocket.seerbitapi.com + description: SeerBit Pocket Server + tags: + - POCKET + summary: Get Pocket Details + description: "Retrieve details of a pocket by its ID." + operationId: GetPocketDetails + parameters: + - name: PocketID + in: path + required: true + description: The pocket ID. + schema: + type: string + - name: public-key + in: header + required: true + description: The merchant public key. + schema: + type: string + responses: + 200: + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/GetPocketDetailsResponse" + examples: + GetPocketDetailsResponse: + value: + responseCode: "00" + message: "Success" + data: + pocketId: "SBP0016348" + accountNumber: "0010028394" + status: "ACTIVE" + pocketFunction: "BOTH" + availableBalanceAmount: "2873651.75" + availableBalanceCurrency: "NGN" + ledgerBalanceAmount: "2873651.75" + ledgerBalanceCurrency: "NGN" + parentId: null + fundingLink: "?ps=JJUGwRt5&po=SBP0016348" + accountVerifierScheme: "BVN" + accountVerifierNumber: "00000000000" + reference: "primary-zbscq5nj" + tier: "UNLIMITED" + subPockets: null + pocketOwner: + pocketOwnerId: "JJUGwRt5" + businessName: "Kings Cafe" + firstName: "Kings Cafe" + lastName: "Kings Cafe" + emailAddress: "tonyadeyeye1@gmail.com" + phoneNumber: "08033453733" + ownerVerifierScheme: "NIN" + ownerVerifierNumber: "00000000000" + pocketAccounts: + - accountId: "ag61lht8d5i0" + accountNumber: "4013383325" + bankCode: "9PSB" + bankName: "9 Payment Service Bank " + reference: "9gyw1pcbfvo74l3ns" + pocketFundings: null + pocketLimits: [] + pocketMomos: [] + 401: + description: Unauthorized + content: + application/json: + schema: + type: object + examples: + UnauthorizedPocket: + value: + responseCode: "01" + message: Invalid credentials + 500: + description: Internal Server Error + content: + application/json: + schema: + type: object + examples: + Pocket500Response: + value: + responseCode: "400" + message: Internal Server Error + security: + - Bearer: [] + deprecated: false + # get pocket balance + /pocket/balance/pocket-id/{PocketID}: + get: + servers: + - url: https://pocket.seerbitapi.com + description: SeerBit Pocket Server + tags: + - POCKET + summary: Get Pocket Balance + description: "Retrieve the balance of a pocket by its ID." + operationId: GetPocketBalance + parameters: + - name: PocketID + in: path + required: true + description: The pocket ID. + schema: + type: string + - name: public-key + in: header + required: true + description: The merchant public key. + schema: + type: string + responses: + 200: + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/GetPocketBalanceResponse" + examples: + GetPocketBalanceResponse: + value: + responseCode: "00" + message: "Success" + data: + balanceAt: "2025-07-07T15:44:00" + availableBalanceCurrency: "NGN" + availableBalanceAmount: "2873651.75" + lastTransactionAt: "2025-07-07T08:49:23" + 401: + description: Unauthorized + content: + application/json: + schema: + type: object + examples: + UnauthorizedPocket: + value: + responseCode: "01" + message: Invalid credentials + 500: + description: Internal Server Error + content: + application/json: + schema: + type: object + examples: + Pocket500Response: + value: + responseCode: "400" + message: Internal Server Error + security: + - Bearer: [] + deprecated: false + # Get merchant sum + /pocket/balances-summation/pocket-id/{PocketID}: + get: + servers: + - url: https://pocket.seerbitapi.com + description: SeerBit Pocket Server + tags: + - POCKET + summary: Get Merchant Sum + description: "Retrieve the sum of balances for a merchant's pockets." + operationId: GetMerchantSum + parameters: + - name: PocketID + in: path + required: true + description: The pocket ID. + schema: + type: string + - name: public-key + in: header + required: true + description: The merchant public key. + schema: + type: string + responses: + 200: + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/GetMerchantSumResponse" + examples: + GetMerchantSumResponse: + value: + responseCode: "00" + message: "Success" + data: + merchantSubPocketsBalanceSummation: "" + merchantSubPocketsBalanceSummationCurrency: "NGN" + merchantAllPocketsBalanceSummation: "631.75" + merchantAllPocketsBalanceSummationCurrency: "NGN" + 401: + description: Unauthorized + content: + application/json: + schema: + type: object + examples: + UnauthorizedPocket: + value: + responseCode: "01" + message: Invalid credentials + 500: + description: Internal Server Error + content: + application/json: + schema: + type: object + examples: + Pocket500Response: + value: + responseCode: "400" + message: Internal Server Error + security: + - Bearer: [] + deprecated: false + # Get Transaction details + /pocket/transaction/reference/{reference}: + get: + servers: + - url: https://pocket.seerbitapi.com + description: SeerBit Pocket Server + tags: + - POCKET + summary: Get Transaction Details + description: "Retrieve details of a pocket transaction by its reference." + operationId: GetPocketTransactionDetails + parameters: + - name: reference + in: path + required: true + description: The transaction reference. + schema: + type: string + - name: public-key + in: header + required: true + description: The merchant public key. + schema: + type: string + responses: + 200: + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/GetPocketTransactionDetailsResponse" + examples: + GetPocketTransactionDetailsResponse: + value: + responseCode: "00" + message: "Success" + data: + reference: "Charge-000015250618102028000001302219-pr6ndt" + pocketId: "SBP0016348" + transactionLeg: "DEBIT" + transactionAmount: "0.00" + transactionCurrency: "NGN" + narration: "Reason:Fee:Debited:SBP0016348:Amount:NGN0.00" + description: "Fee - Funding by account - Primary pockets" + createdAt: "2025-06-18T09:21:07" + createdBy: "pockets@seerbit.com" + transactionId: "n1a0sl6q29d5" + transactionType: "FEE" + batchId: null + status: "00" + message: "Success" + receiverName: "Office" + receiverAccountNumber: "0010010001" + receiverBankCode: "SEERBIT" + receiverBankName: null + sender: "Kings Cafe" + 401: + description: Unauthorized + content: + application/json: + schema: + type: object + examples: + UnauthorizedPocket: + value: + responseCode: "01" + message: Invalid credentials + 500: + description: Internal Server Error + content: + application/json: + schema: + type: object + examples: + Pocket500Response: + value: + responseCode: "400" + message: Internal Server Error + security: + - Bearer: [] + deprecated: false + # Find transactions + /pocket/transaction/search?pocketId={pocketId}&page={page}&size={size}: + get: + servers: + - url: https://pocket.seerbitapi.com + description: SeerBit Pocket Server + tags: + - POCKET + summary: Find Transactions + description: "Search for pocket transactions with pagination." + operationId: FindPocketTransactions + parameters: + - name: pocketId + in: query + required: true + description: The pocket ID. + schema: + type: string + - name: page + in: query + required: true + description: Page number (zero-based). + schema: + type: integer + default: 0 + - name: size + in: query + required: true + description: Number of records per page. + schema: + type: integer + default: 10 + - name: public-key + in: header + required: true + description: The merchant public key. + schema: + type: string + - name: Content-Type + in: header + required: true + schema: + type: string + default: application/json + responses: + 200: + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/FindPocketTransactionsResponse" + examples: + FindPocketTransactionsResponse: + value: + responseCode: "00" + message: "Success" + data: + content: + - createdAt: "2025-07-07T15:58:10" + reference: "Charge-F00016450103-x7heaw" + pocketId: "SBP0016348" + transactionLeg: "DEBIT" + transactionCurrency: "NGN" + availableBalanceCurrency: "NGN" + ledgerBalanceCurrency: "NGN" + narration: "Reason:Fee:Debited:SBP0016348:Amount:NGN20.00" + transactionId: "hvizyx70bdge" + description: "Fee - Pocket to gl transfer - Primary pockets" + tagGroup: "GENERIC" + tagName: "ALL-PURPOSE" + pocketTier: "UNLIMITED" + receiverName: "Office" + receiverAccountNumber: "0010010001" + receiverBankCode: "SEERBIT" + transactionType: "FEE" + publicKey: "JJUGwRt5" + status: "00" + message: "Success" + batchId: null + transactionSource: "Fee: Pocket-to-Bank" + transactionOrigin: null + linkingReference: null + transactionAmount: "20.00" + availableBalanceAmount: "2873631.75" + ledgerBalanceAmount: "2873631.75" + accountNumber: "4013383325" + - createdAt: "2025-07-07T08:49:18" + reference: "000015250707094843000001100434-C" + pocketId: "SBP0016348" + transactionLeg: "CREDIT" + transactionCurrency: "NGN" + availableBalanceCurrency: "NGN" + ledgerBalanceCurrency: "NGN" + narration: "Reason:Funding:Debited:SBP0000001:Amount:NGN157213.94" + transactionId: "1pg25outak4x" + description: "63C2O6XI8K7PMEV KINGS CAFE LTD" + tagGroup: "GENERIC" + tagName: "ALL-PURPOSE" + pocketTier: "UNLIMITED" + receiverName: "Kings Cafe" + receiverAccountNumber: "0010028394" + receiverBankCode: "SEERBIT" + transactionType: "FUNDING" + publicKey: "Office" + status: "00" + message: "Success" + batchId: null + transactionSource: "Bank-To-Pocket" + transactionOrigin: null + linkingReference: "9PSB241126145618012260602" + transactionAmount: "157213.94" + availableBalanceAmount: "1338300.85" + ledgerBalanceAmount: "1338300.85" + accountNumber: "4013383325" + pageable: + sort: + empty: false + sorted: true + unsorted: false + offset: 0 + pageSize: 10 + pageNumber: 0 + unpaged: false + paged: true + totalElements: 590 + totalPages: 59 + last: false + size: 10 + number: 0 + sort: + empty: false + sorted: true + unsorted: false + numberOfElements: 10 + first: true + empty: false + 401: + description: Unauthorized + content: + application/json: + schema: + type: object + examples: + UnauthorizedPocket: + value: + responseCode: "01" + message: Invalid credentials + 500: + description: Internal Server Error + content: + application/json: + schema: + type: object + examples: + Pocket500Response: + value: + responseCode: "400" + message: Internal Server Error + security: + - Bearer: [] + deprecated: false + # Pocket to Pocket Transfer + /pocket/transfer/from-pocket/{fromPocketID}/to-pocket/{toPocketID}: + post: + servers: + - url: https://pocket.seerbitapi.com + description: SeerBit Pocket Server + tags: + - POCKET + summary: Pocket to Pocket Transfer + description: "Transfer funds from one pocket to another." + operationId: PocketToPocketTransfer + parameters: + - name: fromPocketID + in: path + required: true + description: The source pocket ID. + schema: + type: string + - name: toPocketID + in: path + required: true + description: The destination pocket ID. + schema: + type: string + - name: public-key + in: header + required: true + description: The merchant public key. + schema: + type: string + - name: Content-Type + in: header + required: true + + schema: + type: string + default: application/json + requestBody: + required: true + content: + application/json: + schema: + $ref: "#/components/schemas/PocketToPocketTransferRequest" + examples: + PocketToPocketTransferRequest: + value: + amount: 100 + currency: "NGN" + reference: "00112827" + description: "Transfer from one pocket to another" + responses: + 200: + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/PocketToPocketTransferResponse" + examples: + PocketToPocketTransferResponse: + value: + responseCode: "00" + message: "Successful" + data: {} + 401: + description: Unauthorized + content: + application/json: + schema: + type: object + examples: + UnauthorizedPocket: + value: + responseCode: "01" + message: Invalid credentials + 500: + description: Internal Server Error + content: + application/json: + schema: + type: object + examples: + Pocket500Response: + value: + responseCode: "400" + message: Internal Server Error + security: + - Bearer: [] + deprecated: false + + # start of payout + + # generate OTP + /pocket/getOtp: + post: + servers: + - url: https://pocket.seerbitapi.com + description: SeerBit Pocket Server + tags: + - PAYOUT + summary: Generate OTP + description: "Generate an OTP for a pocket action. The OTP provided in the *otp* field should be passed as the *passKey* in the generatesignature and payout request." + operationId: GeneratePocketOtp + parameters: + - name: public-key + in: header + required: true + description: The merchant public key. + schema: + type: string + - name: Content-Type + in: header + required: true + schema: + type: string + default: application/json + requestBody: + required: true + content: + application/json: + schema: + $ref: "#/components/schemas/GeneratePocketOtpRequest" + examples: + GeneratePocketOtpRequest: + value: + actionItem: "APPROVE_DISBURSEMENT" + pocketId: "your_pocket_id_here" + responses: + 200: + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/GeneratePocketOtpResponse" + examples: + GeneratePocketOtpResponse: + value: + responseCode: "00" + message: "Success" + data: + otp: "028087" + category: "APPROVE_DISBURSEMENT" + expires: "2025-02-25T19:20:12.649104071" + 401: + description: Unauthorized + content: + application/json: + schema: + type: object + examples: + UnauthorizedPocket: + value: + responseCode: "01" + message: Invalid credentials + 500: + description: Internal Server Error + content: + application/json: + schema: + type: object + examples: + Pocket500Response: + value: + responseCode: "400" + message: Internal Server Error + security: + - Bearer: [] + deprecated: false + + # generate signature + /pocket/payout/get-signature: + post: + servers: + - url: https://pocket.seerbitapi.com + description: SeerBit Pocket Server + tags: + - PAYOUT + summary: Generate Signature + description: "Generate a signature for a payout action. Instead of manually creating a signature, use the *Get Signature* endpoint." + operationId: GeneratePocketSignature + parameters: + - name: Content-Type + in: header + required: true + schema: + type: string + default: application/json + requestBody: + required: true + content: + application/json: + schema: + $ref: "#/components/schemas/GeneratePocketSignatureRequest" + examples: + GeneratePocketSignatureRequest: + value: + reference: "REF123456" + amount: "10" + currency: "NGN" + description: "test" + accountNumber: "1234567890" + bankCode: "000013" + actionType: "APPROVE_DISBURSEMENT" + passKey: "028087" + responses: + 200: + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/GeneratePocketSignatureResponse" + examples: + GeneratePocketSignatureResponse: + value: + responseCode: "00" + message: "Success" + data: "{signature}" + 401: + description: Unauthorized + content: + application/json: + schema: + type: object + examples: + UnauthorizedPocket: + value: + responseCode: "01" + message: Invalid credentials + 500: + description: Internal Server Error + content: + application/json: + schema: + type: object + examples: + Pocket500Response: + value: + responseCode: "400" + message: Internal Server Error + security: + - Bearer: [] + deprecated: false + # Initiate Payout + /pocket/payout/encrypted/pocket-id/{{pocketID}}: + post: + servers: + - url: https://pocket.seerbitapi.com + description: SeerBit Pocket Server + tags: + - PAYOUT + summary: Initiate Payout + description: "Use the *Initiate Payout* endpoint, passing the generated signature in the request body." + operationId: InitiatePocketPayout + parameters: + - name: pocketId + in: path + required: true + description: The pocket ID. + schema: + type: string + - name: public-key + in: header + required: true + description: The merchant public key. + schema: + type: string + - name: Content-Type + in: header + required: true + schema: + type: string + default: application/json + requestBody: + required: true + content: + application/json: + schema: + $ref: "#/components/schemas/InitiatePocketPayoutRequest" + examples: + InitiatePocketPayoutRequest: + value: + reference: "JIN-12345678901101" + amount: "10" + currency: "NGN" + description: "test" + accountNumber: "1234567890" + bankCode: "000013" + passKey: "028087" + actionType: "APPROVE_DISBURSEMENT" + signature: "signature-value" + responses: + 200: + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/InitiatePocketPayoutResponse" + examples: + InitiatePocketPayoutResponse: + value: + responseCode: "00" + message: "Successful" + data: + reference: "JIN-12345678901101" + linkingreference: "F00230472990" + 401: + description: Unauthorized + content: + application/json: + schema: + type: object + examples: + UnauthorizedPocket: + value: + responseCode: "01" + message: Invalid credentials + 500: + description: Internal Server Error + content: + application/json: + schema: + type: object + examples: + Pocket500Response: + value: + responseCode: "400" + message: Internal Server Error + security: + - Bearer: [] + deprecated: false + # end of payout + + # start of VA + # Create a VA + /virtual-accounts: + post: + tags: + - VIRTUAL ACCOUNT + summary: Create Virtual Account + description: "The Virtual Account API allows you to create reserve accounts for your customers to make payments." + operationId: CreateVirtualAccount + servers: + - url: https://seerbitapi.com/api/v2 + description: SeerBit API Server + parameters: + - name: Content-Type + in: header + required: true + schema: + type: string + default: application/json + requestBody: + required: true + content: + application/json: + schema: + $ref: "#/components/schemas/CreateVirtualAccountRequest" + examples: + CreateVirtualAccountRequest: + value: + publicKey: "YOUR_PUBLIC_KEY" + fullName: "Jane Smith" + bankVerificationNumber: "" + currency: "NGN" + country: "NG" + reference: "FIRST_VIRTUAl_17" + email: "js@emaildomain.com" + responses: + 200: + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/CreateVirtualAccountResponse" + examples: + CreateVirtualAccountResponse: + value: + status: "SUCCESS" + data: + code: "S20" + payments: + reference: "FIRST_VIRTUAl_7" + walletName: "SEERBIT(Business Name)" + bankName: "9PAYMENT SERVICE BANK" + accountNumber: "Account Number" + message: "Account created " + 401: + description: Unauthorized + content: + application/json: + schema: + type: object + examples: + UnauthorizedAccount: + value: + status: "ERROR" + message: "Invalid credentials" + 500: + description: Internal Server Error + content: + application/json: + schema: + type: object + examples: + Account500Response: + value: + status: "ERROR" + message: "Internal Server Error" + security: + - Bearer: [] + deprecated: false + + # Get VA + /virtual-accounts/{paymentReference}: + get: + tags: + - VIRTUAL ACCOUNT + summary: Get Virtual Account + description: "Retrieve details of a virtual account by its payment reference." + operationId: GetVirtualAccount + servers: + - url: https://seerbitapi.com/api/v2 + description: SeerBit API Server + parameters: + - name: paymentReference + in: path + required: true + description: The virtual account payment reference. + schema: + type: string + responses: + 200: + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/GetVirtualAccountResponse" + examples: + GetVirtualAccountResponse: + value: + status: "SUCCESS" + data: + code: "00" + payments: + reference: "VA_1" + linkingReference: "9PSB641860391656618499020" + walletName: "SEERBIT(Business Name)" + wallet: "Account Number" + bankName: "_9PAYMENT_SERVICE_BANK" + accountNumber: "Account Number" + message: "" + 401: + description: Unauthorized + content: + application/json: + schema: + type: object + examples: + UnauthorizedAccount: + value: + status: "ERROR" + message: "Invalid credentials" + 404: + description: Not Found + content: + application/json: + schema: + type: object + examples: + NotFoundAccount: + value: + status: "ERROR" + message: "Virtual account not found" + 500: + description: Internal Server Error + content: + application/json: + schema: + type: object + examples: + Account500Response: + value: + status: "ERROR" + message: "Internal Server Error" + security: + - Bearer: [] + deprecated: false + + # Delete VA + /virtual-accounts/{reference}: + delete: + tags: + - VIRTUAL ACCOUNT + summary: Delete a Virtual Account + description: "Delete a virtual account by its reference." + operationId: DeleteVirtualAccount + servers: + - url: https://seerbitapi.com/api/v2 + description: SeerBit API Server + parameters: + - name: reference + in: path + required: true + description: The virtual account reference. + schema: + type: string + responses: + 200: + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/DeleteVirtualAccountResponse" + examples: + DeleteVirtualAccountResponse: + value: + status: "SUCCESS" + data: + code: "00" + message: "Virtual account has been deleted" + 401: + description: Unauthorized + content: + application/json: + schema: + type: object + examples: + UnauthorizedAccount: + value: + status: "ERROR" + message: "Invalid credentials" + 404: + description: Not Found + content: + application/json: + schema: + type: object + examples: + NotFoundAccount: + value: + status: "ERROR" + message: "Virtual account not found" + 500: + description: Internal Server Error + content: + application/json: + schema: + type: object + examples: + Account500Response: + value: + status: "ERROR" + message: "Internal Server Error" + security: + - Bearer: [] + deprecated: false + + # Get A Payment + /virtual-accounts/{publicKey}/{accountNumber}: + get: + tags: + - VIRTUAL ACCOUNT + summary: Get Payment + description: "Retrieve payment details for a virtual account using the public key and account number." + operationId: GetVirtualAccountPayment + servers: + - url: https://seerbitapi.com/api/v2 + description: SeerBit API Server + parameters: + - name: publicKey + in: path + required: true + description: The merchant public key. + schema: + type: string + - name: accountNumber + in: path + required: true + description: The customer's account number. + schema: + type: string + responses: + 200: + description: Ok + content: + application/json: + schema: + $ref: "#/components/schemas/GetVirtualAccountPaymentResponse" + examples: + GetVirtualAccountPaymentResponse: + value: + status: "SUCCESS" + data: + code: "00" + payload: + - id: 14705414 + fullName: "Customer Name" + publicKey: "YOUR_PUBLIC_KEY" + processor: "_9PAYMENT_SERVICE_BANK" + paymentType: "TRANSFER" + amount: 100.0 + email: "customeremail@gmail.com" + gateway: "_9PAYMENT_SERVICE_BANK" + gatewayMessage: "Successful" + gatewayCode: "00" + transactionRef: "GT-01" + gatewayRef: "100004230627104826104793084015" + businessName: "Business Name" + mode: "LIVE" + channelType: "transfer" + country: "NG" + currency: "NGN" + internalreference: "_SBT_N7N7EU523C" + accountNumber: "customer account number" + creditAccountName: "Seerbit(Tola Sambo)" + transferType: "RESERVE_ACCOUNT" + paymentReference: "GT-01_SBT_N7N7EU523C" + creditAccountNumber: "4015310501" + settlementCode: "00" + settlementMessage: "Push Successful" + settlementTime: "2023-06-27 11:49:37" + status: "PUSHED" + mobileNumber: "404" + transferedAmount: 100.0 + isCardInternational: "LOCAL" + reason: "Successful" + retry: false + createdAt: "2023-06-27T10:49:28.000+0000" + updatedAt: "2023-06-27T10:49:28.000+0000" + processorCode: "00" + processorMessage: "Successful" + message: "successful" + 401: + description: Unauthorized + content: + application/json: + schema: + type: object + examples: + UnauthorizedAccount: + value: + status: "ERROR" + message: "Invalid credentials" + 404: + description: Not Found + content: + application/json: + schema: + type: object + examples: + NotFoundAccount: + value: + status: "ERROR" + message: "Payment not found" + 500: + description: Internal Server Error + content: + application/json: + schema: + type: object + examples: + Account500Response: + value: + status: "ERROR" + message: "Internal Server Error" + security: + - Bearer: [] + deprecated: false + + # end of VA + + #start of Payment Link + + # create payment link + /paymentlink/v2/payLinks/api: + post: + tags: + - PAYMENT LINK + summary: Create Payment Link + description: "Create a new payment link for collecting payments." + operationId: CreatePaymentLink + servers: + - url: https://paymentlink.seerbitapi.com + description: SeerBit Payment Link Server + parameters: + - name: Content-Type + in: header + required: true + schema: + type: string + default: application/json + requestBody: + required: true + content: + application/json: + schema: + $ref: "#/components/schemas/CreatePaymentLinkRequest" + examples: + CreatePaymentLinkRequest: + value: + status: "ACTIVE" + paymentLinkName: "Donations" + description: "Give out donations" + currency: "NGN" + successMessage: "Thank you for your payment" + publicKey: "YOUR_PUBLIC_KEY" + customizationName: "testing1" + paymentFrequency: "ONE_TIME" + paymentReference: "" + email: "js@emaildomain.com" + requiredFields: + address: true + amount: true + customerName: true + mobileNumber: true + invoiceNumber: false + additionalData: "Customer Email: js@mailinator.com" + linkExpirable: false + expiryDate: "" + oneTime: false + responses: + 200: + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/CreatePaymentLinkResponse" + examples: + CreatePaymentLinkResponse: + value: + data: + paymentLinks: + publicKey: "SBPUBK_******************PHI" + status: "ACTIVE" + additionalData: "custom1:null||custom2:null||custom3:null" + paymentLinkName: "Donationas" + description: "Donation" + successMessage: "Payment made successfully!" + paymentLinkId: "000000000" + currency: "NGN" + paymentReference: "" + paymentFrequency: "RECURRENT" + paymentLinkUrl: "https://pay.seerbitapi.com/paymentLinkId" + customizationName: "utbesti22" + environment: "LIVE" + requiredFields: + address: true + amount: true + customerName: true + mobileNumber: true + invoiceNumber: false + expiryDuration: 0 + linkExpirable: false + createdAt: "2021-09-21T10:49:17.728" + updatedAt: "2021-09-21T10:49:17.728" + oneTime: false + splitPayment: false + 401: + description: Unauthorized + content: + application/json: + schema: + type: object + examples: + UnauthorizedPaymentLink: + value: + message: "Invalid credentials" + 500: + description: Internal Server Error + content: + application/json: + schema: + type: object + examples: + PaymentLink500Response: + value: + message: "Internal Server Error" + security: + - Bearer: [] + deprecated: false + # Update Payment Link + put: + tags: + - PAYMENT LINK + summary: Update Payment Link + description: "Update an existing payment link." + operationId: UpdatePaymentLink + servers: + - url: https://paymentlink.seerbitapi.com + description: SeerBit Payment Link Server + parameters: + - name: Content-Type + in: header + required: true + schema: + type: string + default: application/json + requestBody: + required: true + content: + application/json: + schema: + $ref: "#/components/schemas/UpdatePaymentLinkRequest" + examples: + UpdatePaymentLinkRequest: + value: + paymentLinkId: "0000000" + status: "INACTIVE" + description: "Test paymentLink" + successMessage: "Payment made successfully!" + businessName: "My Business" + publicKey: "publickKey" + customizationName: "my_link_3" + paymentFrequency: "RECURRENT" + email: "customer@seerbit.com" + requiredFields: + address: true + amount: true + customerName: true + mobileNumber: true + invoiceNumber: false + linkExpirable: false + expiryDate: "" + oneTime: false + responses: + 200: + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/UpdatePaymentLinkResponse" + examples: + UpdatePaymentLinkResponse: + value: + data: + paymentLinks: + publicKey: "PublicKey" + status: "INACTIVE" + description: "Test paymentLink" + successMessage: "Payment made successfully!" + paymentLinkId: "0000000" + paymentFrequency: "RECURRENT" + paymentLinkUrl: "null/my_link_3" + customizationName: "my_link_3" + environment: "LIVE" + requiredFields: + address: true + amount: true + customerName: true + mobileNumber: true + invoiceNumber: false + expiryDuration: 0 + linkExpirable: false + updatedAt: "2021-09-21T11:12:57.404" + oneTime: false + splitPayment: false + 401: + description: Unauthorized + content: + application/json: + schema: + type: object + examples: + UnauthorizedPaymentLink: + value: + message: "Invalid credentials" + 404: + description: Not Found + content: + application/json: + schema: + type: object + examples: + NotFoundPaymentLink: + value: + message: "Payment link not found" + 500: + description: Internal Server Error + content: + application/json: + schema: + type: object + examples: + PaymentLink500Response: + value: + message: "Internal Server Error" + security: + - Bearer: [] + deprecated: false + + # Get Payment Link + /paymentlink/v2/payLinks/api/{publicKey}: + get: + tags: + - PAYMENT LINK + summary: Get Merchant Payment Links + description: "Retrieve all payment links for a merchant by their public key." + operationId: GetMerchantPaymentLinks + servers: + - url: https://paymentlink.seerbitapi.com + description: SeerBit Payment Link Server + parameters: + - name: publicKey + in: path + required: true + description: The merchant public key. + schema: + type: string + responses: + 200: + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/GetMerchantPaymentLinksResponse" + examples: + GetMerchantPaymentLinksResponse: + value: + currentPage: 0 + responseCode: "00" + payload: + - businessId: "00000051" + publicKey: "publickey" + status: "ACTIVE" + amount: 10000.00 + customisationName: "SeerBitPay" + additionalData: "" + paymentLinkName: "SeerBit Payment Link" + description: "Buy Items" + paymentLinkId: "00000000" + paymentFrequency: "ONE_TIME" + paymentLinkUrl: "https://pay.seerbitapi.com/paymentLinkID" + pocketReference: "" + environment: "LIVE" + requiredFields: + address: true + amount: false + customerName: true + mobileNumber: false + invoiceNumber: false + expiryDuration: 0 + linkExpirable: false + customTime: "" + createdAt: "2021-07-17T12:05:55" + updatedAt: "2021-07-17T12:05:55" + oneTime: false + splitPayment: false + responseMessage: "successful" + 401: + description: Unauthorized + content: + application/json: + schema: + type: object + examples: + UnauthorizedPaymentLink: + value: + message: "Invalid credentials" + 404: + description: Not Found + content: + application/json: + schema: + type: object + examples: + NotFoundPaymentLink: + value: + message: "No payment links found" + 500: + description: Internal Server Error + content: + application/json: + schema: + type: object + examples: + PaymentLink500Response: + value: + message: "Internal Server Error" + security: + - Bearer: [] + deprecated: false + # Delete Payment Link + /paymentlink/v2/payLinks/api/deleteLink/{paymentLinkId}: + delete: + tags: + - PAYMENT LINK + summary: Delete Payment Link + description: "Delete a payment link by its paymentLinkId." + operationId: DeletePaymentLink + servers: + - url: https://paymentlink.seerbitapi.com + description: SeerBit Payment Link Server + parameters: + - name: paymentLinkId + in: path + required: true + description: The payment link ID to delete. + schema: + type: string + responses: + 200: + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/DeletePaymentLinkResponse" + examples: + DeletePaymentLinkResponse: + value: + status: "Deleted" + 401: + description: Unauthorized + content: + application/json: + schema: + type: object + examples: + UnauthorizedPaymentLink: + value: + message: "Invalid credentials" + 404: + description: Not Found + content: + application/json: + schema: + type: object + examples: + NotFoundPaymentLink: + value: + message: "Payment link not found" + 500: + description: Internal Server Error + content: + application/json: + schema: + type: object + examples: + PaymentLink500Response: + value: + message: "Internal Server Error" + security: + - Bearer: [] + deprecated: false + + # end of Payment Link + + # start of card tokenisation + /payments/create-token: + post: + tags: + - CARD TOKENISATION + summary: Create Card Token + description: "Create a card token for future payments." + operationId: CreateCardToken + servers: + - url: https://seerbitapi.com/api/v2 + description: SeerBit API Server + parameters: + - name: Content-Type + in: header + required: true + schema: + type: string + default: application/json + requestBody: + required: true + content: + application/json: + schema: + $ref: "#/components/schemas/CreateCardTokenRequest" + examples: + CreateCardTokenRequest: + value: + publicKey: "YOUR_PUBLIC_KEY" + amount: "50" + fullName: "Jane Smith" + mobileNumber: "03447522256" + redirectUrl: "http://example.com" + currency: "NGN" + country: "NG" + paymentReference: "204g4de74a7ib0j18dg6bi521aiaejf4" + email: "janesmith@seerbit.com" + paymentType: "CARD" + cardNumber: "512348984984988883" + expiryMonth: "01" + expiryYear: "25" + cvv: "000" + pin: "2222" + responses: + 200: + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/CreateCardTokenResponse" + examples: + CreateCardTokenResponse: + value: + status: "SUCCESS" + data: + code: "S20" + message: "Transaction is pending" + payments: + paymentReference: "204g4de74a7ib0j18dg6bi521aiaejf4" + linkingReference: "SEERBIT60416746746373661414266005" + redirectUrl: "https://seerbitapi.com/50E84E82C25D" + 401: + description: Unauthorized + content: + application/json: + schema: + type: object + examples: + UnauthorizedCreateCardToken: + value: + message: "Invalid Authentication Token" + error: "INPUT" + 404: + description: Not Found + content: + application/json: + schema: + type: object + examples: + NotFoundCreateCardToken: + value: + message: "Not Found" + error: "The server can not find the requested resource" + 500: + description: Internal Server Error + content: + application/json: + schema: + type: object + examples: + CreateCardToken500Response: + value: + message: "Internal Server Error" + security: + - Bearer: [] + deprecated: false + + # get card auth token + /payments/query/{paymentReference}: + get: + tags: + - CARD TOKENISATION + summary: Get Card Authorisation Code + description: "After the first successful transaction, you can query the transaction with the payment reference endpoint to confirm the status of transaction. The queried payment reference returns the authorizationCode that will be used for subsequent charges." + operationId: GetCardAuthorisationCode + servers: + - url: https://seerbitapi.com/api/v3 + description: SeerBit API v3 Server + parameters: + - name: paymentReference + in: path + required: true + description: The payment reference for the transaction. + schema: + type: string + responses: + 200: + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/GetCardAuthorisationCodeResponse" + examples: + GetCardAuthorisationCodeResponse: + value: + status: "SUCCESS" + data: + code: "00" + message: "Successful" + payments: + amount: 50 + mobilenumber: "08387522256" + publicKey: "{{publicKey}}" + paymentType: "CARD" + maskedPan: "5123-40xx-xxxx-0008" + gatewayMessage: "Successful" + gatewayCode: "00" + gatewayref: "SEERBIT674774783883" + businessName: "Green Technological Concepts" + mode: "live" + channelType: "MASTERCARD" + cardBin: "5123" + lastFourDigits: "0008" + country: "NG" + currency: "NGN" + paymentReference: "{{paymentReference}}" + transactionProcessTime: "2022-08-25 08:57:45.634" + reason: "Successful" + authorizationCode: "6636373737222" + customers: + customerId: "SBT56736733yye663737" + customerName: "Jane Smith" + customerMobile: "08387522256" + customerEmail: "seerbit@emaildomain.com" + 404: + description: Not Found + content: + application/json: + schema: + type: object + examples: + NotFoundCardAuthorisationCode: + value: + message: "Not Found" + error: "The server can not find the requested resource" + 500: + description: Internal Server Error + content: + application/json: + schema: + type: object + examples: + CardAuthorisationCode500Response: + value: + message: "Internal Server Error" + deprecated: false + + # charge authorised token + /payments/charge-token: + post: + tags: + - CARD TOKENISATION + summary: Charge Authorisation Token + description: "Charge a card using a previously obtained authorisation code (token)." + operationId: ChargeAuthorisationToken + servers: + - url: https://seerbitapi.com/api/v2 + description: SeerBit API Server + parameters: + - name: Content-Type + in: header + required: true + schema: + type: string + default: application/json + requestBody: + required: true + content: + application/json: + schema: + $ref: "#/components/schemas/ChargeAuthorisationTokenRequest" + examples: + ChargeAuthorisationTokenRequest: + value: + publicKey: "YOUR_PUBLIC_KEY" + amount: "110" + paymentReference: "charge_test_3451" + authorizationCode: "ye773838jje8837abe" + responses: + 200: + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/ChargeAuthorisationTokenResponse" + examples: + ChargeAuthorisationTokenResponse: + value: + status: "SUCCESS" + data: + code: "00" + message: "APPROVED" + payments: + paymentReference: "9288383999393" + linkingReference: "SEERBIT43376378378377720196" + 401: + description: Unauthorized + content: + application/json: + schema: + type: object + examples: + UnauthorizedChargeAuthorisationToken: + value: + message: "Invalid Authentication Token" + error: "INPUT" + 404: + description: Not Found + content: + application/json: + schema: + type: object + examples: + NotFoundChargeAuthorisationToken: + value: + message: "Not Found" + error: "The server can not find the requested resource" + 500: + description: Internal Server Error + content: + application/json: + schema: + type: object + examples: + ChargeAuthorisationToken500Response: + value: + message: "Internal Server Error" + security: + - Bearer: [] + deprecated: false + + # Bulk charge token + /payments/bulk-tokenize-charge: + post: + tags: + - CARD TOKENISATION + summary: Bulk Charge Token + description: "Charge multiple cards using authorization tokens in a single request." + operationId: BulkChargeToken + servers: + - url: https://seerbitapi.com/api/v2 + description: SeerBit API Server + parameters: + - name: Content-Type + in: header + required: true + schema: + type: string + default: application/json + requestBody: + required: true + content: + application/json: + schema: + type: array + items: + $ref: "#/components/schemas/ChargeAuthorisationTokenRequest" + examples: + BulkChargeTokenRequest: + value: + - publicKey: "publickKey" + amount: "11" + paymentReference: "reference" + authorizationCode: "authorizationCode" + - publicKey: "publickKey" + amount: "11" + paymentReference: "reference" + authorizationCode: "authorizationCode" + responses: + 200: + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/BulkChargeTokenResponse" + examples: + BulkChargeTokenResponse: + value: + code: "00" + message: "Successful" + payload: + batchId: "d4wnvzc" + 401: + description: Unauthorized + content: + application/json: + schema: + type: object + examples: + UnauthorizedBulkChargeToken: + value: + message: "Invalid Authentication Token" + error: "INPUT" + 404: + description: Not Found + content: + application/json: + schema: + type: object + examples: + NotFoundBulkChargeToken: + value: + message: "Not Found" + error: "The server can not find the requested resource" + 500: + description: Internal Server Error + content: + application/json: + schema: + type: object + examples: + BulkChargeToken500Response: + value: + message: "Internal Server Error" + security: + - Bearer: [] + deprecated: false + + # query bulk charge token + /payments/bulk-tokenize-charge-search?batchId={batchId}: + get: + tags: + - CARD TOKENISATION + summary: Query Bulk Charge with BatchId + description: "Query the status and results of a bulk charge operation using the batchId." + operationId: QueryBulkChargeWithBatchId + servers: + - url: https://seerbitapi.com/api/v2 + description: SeerBit API Server + parameters: + - name: batchId + in: query + required: true + description: The batch ID of the bulk charge operation. + schema: + type: string + responses: + 200: + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/QueryBulkChargeWithBatchIdResponse" + examples: + QueryBulkChargeWithBatchIdResponse: + value: + code: "00" + message: "Successful" + payload: + content: + - id: 7 + authorizationCode: "authocode" + statusCode: "00" + message: "Successful" + createdAt: "2022-10-12T09:58:40.102" + updatedAt: "2022-10-12T09:58:40.102" + batchId: "k2auyutyr" + currency: "NGN" + cardBin: "5123400" + cardLastFourDigits: "0739" + cardType: "VISA" + amount: "10.00" + - id: 8 + authorizationCode: "authocode" + statusCode: "00" + message: "Successful" + createdAt: "2022-10-12T09:58:46.443" + updatedAt: "2022-10-12T09:58:46.443" + batchId: "kuiuyu" + currency: "NGN" + cardBin: "5123400" + cardLastFourDigits: "0008" + cardType: "VISA" + amount: "15.00" + pageable: + sort: + sorted: true + unsorted: false + empty: false + pageNumber: 0 + pageSize: 10 + offset: 0 + paged: true + unpaged: false + last: true + totalElements: 2 + totalPages: 1 + sort: + sorted: true + unsorted: false + empty: false + first: true + numberOfElements: 2 + size: 10 + number: 0 + empty: false + 401: + description: Unauthorized + content: + application/json: + schema: + type: object + examples: + UnauthorizedQueryBulkChargeWithBatchId: + value: + message: "Invalid Authentication Token" + error: "INPUT" + 404: + description: Not Found + content: + application/json: + schema: + type: object + examples: + NotFoundQueryBulkChargeWithBatchId: + value: + message: "Not Found" + error: "The server can not find the requested resource" + 500: + description: Internal Server Error + content: + application/json: + schema: + type: object + examples: + QueryBulkChargeWithBatchId500Response: + value: + message: "Internal Server Error" + security: + - Bearer: [] + deprecated: false + +components: + schemas: + GenerateEncryptedSecretKeyRequest: + title: GenerateEncryptedSecretKeyRequest + required: + - key + type: object + properties: + key: + type: string + description: This consist of the PrivateKey and the publicKey separated with a '.' in the middle(eg:{privateKey.publicKey} + example: + key: SBTESTSECK_9Cb8dbqR5Rc2JwZaa77P5QYHzQaeGUcrkEMD1dEi.SBTESTPUBK_9sN3TuLgW6a9redEfY48cKKkUa09Pz2u + GenerateHashRequest: + title: GenerateHashRequest + required: + - amount + - callbackUrl + - country + - currency + - email + - paymentReference + - productDescription + - productId + - publicKey + type: object + properties: + publicKey: + type: string + description: This is the merchant public key. + amount: + type: string + description: This is the amount to be paid. + currency: + type: string + description: This is the currency the transaction is to be carried out in. + country: + type: string + description: This is the country from which the transaction is been carried out from + paymentReference: + type: string + description: This is the unique identifier for a transaction, to be generated by merchant. + email: + type: string + description: This is the email of the customer. + productId: + type: string + description: This is the product id entered by the merchant. + productDescription: + type: string + description: This is the product description supplied by the merchant. + callbackUrl: + type: string + example: + publicKey: SBTESTPUBK_9sN3TuLgW6a9redEfY48cKKkUa09Pz2u + amount: "10.00" + currency: NGN + country: NG + paymentReference: 3791090233047WZ73QN + email: mamadou.diouf@intouchgroup.net + productId: "15013" + productDescription: touch badge + callbackUrl: https://gutouch.com + PaymentLinkFromCheckoutRequest: + title: PaymentLinkFromCheckoutRequest + required: + - amount + - callbackUrl + - country + - currency + - email + - fullName + - tokenize + - paymentReference + # - productDescription + # - productId + - publicKey + type: object + properties: + publicKey: + type: string + description: This is the merchant public key. + amount: + type: string + description: This is the amount to be paid. + currency: + type: string + description: This is the currency the transaction is to be carried out in. + country: + type: string + description: This is the country from which the transaction is been carried out from + paymentReference: + type: string + description: This is the unique identifier for a transaction, to be generated by merchant. + email: + type: string + description: This is the email of the customer. + fullName: + type: string + description: This is the full name of the customer. + tokenize: + type: boolean + description: This indicates whether the card should be tokenized for future transactions. + # productId: + # type: string + # description: This is the product id entered by the merchant. + # productDescription: + # type: string + # description: This is the product description supplied by the merchant. + callbackUrl: + type: string + description: This is the callback url supplied by the merchant so that Seerbit can redirect back to it . + # hash: + # type: string + # description: This is the hash of the concatenated string for payment. Check hash module for more clarification. + # hashType: + # type: string + # description: This refers to the hash type used in generating the hash + example: + publicKey: YOUR_PUBLIC_KEY + amount: "10.00" + currency: NGN + country: NG + paymentReference: payment_reference + email: mamadou.diouf@intouchgroup.net + fullName: Mamadou Diouf + tokenize: false + # productId: "15013" + # productDescription: touch badge + callbackUrl: https://seerbit.com + # hash: cfb5464ea21cce315ea72fb28f7ea45c4b61c443783eeff82dea98e57d445e15 + # hashType: sha256 + OTPMomoRequest: + title: OTPMomoRequest + required: + - linkingReference + - otp + type: object + properties: + linkingReference: + type: string + description: This is the internal gateway reference + otp: + type: string + description: This is the TOKEN sent to customer’s phone or email + example: + linkingReference: CF630837081601460887752 + otp: "81015" + ValidateTransactionRequest: + title: ValidateTransactionRequest + required: + - linkingReference + - otp + type: object + properties: + linkingReference: + type: string + description: This is the internal gateway reference + otp: + type: string + description: This is the TOKEN sent to customer’s phone or email + example: + linkingReference: F092648971601293723061 + otp: "123456" + + # start of preauth + # CaptureRequest: + # title: CaptureRequest + # required: + # - amount + # - country + # - currency + # - paymentReference + # - productDescription + # - publicKey + # type: object + # properties: + # paymentReference: + # type: string + # description: This is the unique identifier for a transaction, to be generated by merchant. + # currency: + # type: string + # description: This is the currency the transaction is to be carried out in. + # country: + # type: string + # description: This is the country the customer is doing the transaction from + # productDescription: + # type: string + # description: This is the product description supplied by the merchant. + # amount: + # type: string + # description: This is the amount to be paid. + # publicKey: + # type: string + # description: This is the merchant public key. + # example: + # paymentReference: PREAUTH124456789798765k321CB0 + # currency: NGN + # country: NG + # productDescription: preauth test capture + # amount: "5.10" + # publicKey: SBTESTPUBK_dhrpzbRpR34l6VmqkCFOKA94L5E1jSTu + # RefundRequest: + # title: RefundRequest + # required: + # - amount + # - country + # - currency + # - paymentReference + # - productDescription + # - publicKey + # type: object + # properties: + # paymentReference: + # type: string + # description: This is the unique identifier for a transaction, to be generated by merchant. + # currency: + # type: string + # description: This is the currency the transaction is to be carried out in. + # country: + # type: string + # description: This is the country the customer is doing the transaction from + # productDescription: + # type: string + # description: This is the product description supplied by the merchant. + # amount: + # type: string + # description: This is the amount to be paid. + # publicKey: + # type: string + # description: This is the merchant public key. + # example: + # paymentReference: PREAUTH124456789798765432CB0 + # currency: NGN + # country: NG + # productDescription: preauth test capture + # amount: "5.10" + # publicKey: SBTESTPUBK_dhrpzbRpR34l6VmqkCFOKA94L5E1jSTu + # CancelRequest: + # title: CancelRequest + # required: + # - country + # - paymentReference + # - productDescription + # - publicKey + # type: object + # properties: + # paymentReference: + # type: string + # description: This is the unique identifier for a transaction, to be generated by merchant. + # publicKey: + # type: string + # description: This is the merchant public key. + # country: + # type: string + # description: This is the country the customer is doing the transaction from + # productDescription: + # type: string + # description: This is the product description supplied by the merchant. + # example: + # paymentReference: PREAUTH124456789798765k3L1CB0 + # publicKey: SBTESTPUBK_dhrpzbRpR34l6VmqkCFOKA94L5E1jSTu + # country: NG + # productDescription: test void + # invoice + CreateInvoiceRequest: + title: CreateInvoiceRequest + required: + - amount + - currency + - customerEmail + - customerName + - description + - invoiceNumber + - publicKey + type: object + properties: + publicKey: + type: string + description: This is the merchant public key. + orderNo: + type: string + description: This is the order number. + dueDate: + type: string + description: This is the date the invoice is due. + currency: + type: string + description: This is the currency the transaction is to be carried out in. + recieversName: + type: string + description: This is the name of the customer. + customerEmail: + type: string + description: This is the email of the customer. + invoiceItems: + type: array + items: + type: object + properties: + itemName: + type: string + description: This is the name of the item. + quantity: + type: string + description: This is the quantity of the item. + rate: + type: string + description: This is the price of the item. + tax: + type: string + description: This is the tax on the item. + required: + - itemName + - quantity + - rate + - tax + description: This is the list of items in the invoice. + example: + publicKey: SBTESTPUBK_9sN3TuLgW6a9redEfY48cKKkUa09Pz2u + orderNo: 3333332213212 + dueDate: "2023-10-31" + currency: NGN + recieversName: Muyiwa Akintade + customerEmail: janesmith@emaildomain.com + invoiceItems: + - itemName: Bluetooth Pods + quantity: 1 + rate: 2500 + tax: 7.5 + - itemName: Quest 10 + quantity: 4 + rate: 1500 + tax: 7.5 + # invoice respsonse + CreateInvoiceResponse: + title: CreateInvoiceResponse + type: object + example: + message: Invoice created successfully + payload: + InvoiceID: 2039 + InvoiceNo: SBT-INV-002039 + code: "00" + + ResendInvoiceResponse: + title: ResendInvoiceResponse + type: object + example: + message: Invoice has been sent successfully + code: "00" + + # get invoice by customer email response + GetInvoiceByCustomerEmailResponse: + type: object + properties: + payload: + type: array + items: + type: object + properties: + invoiceId: + type: integer + invoiceNo: + type: string + totalAmount: + type: number + subTotal: + type: number + publicKey: + type: string + testKey: + type: string + supportEmail: + type: string + receiversName: + type: string + customerEmail: + type: string + businessName: + type: string + tax: + type: number + dueDate: + type: string + currency: + type: string + invoiceItems: + type: array + items: + type: object + properties: + itemName: + type: string + unitPrice: + type: number + vat: + type: number + amount: + type: number + quantity: + type: integer + customer: + type: object + properties: + externalIdentify: + type: string + businessName: + type: string + customerEmail: + type: string + businessId: + type: string + id: + type: integer + billingCycle: + type: boolean + payButtonOnInvoices: + type: boolean + enableAdvancedOptions: + type: boolean + partialPayment: + type: boolean + status: + type: string + createdAt: + type: string + mode: + type: string + code: + type: string + + # invocie by invoiceNo + GetInvoiceByInvoiceNumberResponse: + type: object + properties: + payload: + type: array + items: + type: object + properties: + invoiceId: + type: integer + invoiceNo: + type: string + totalAmount: + type: number + subTotal: + type: number + publicKey: + type: string + testKey: + type: string + supportEmail: + type: string + receiversName: + type: string + customerEmail: + type: string + businessName: + type: string + tax: + type: number + dueDate: + type: string + currency: + type: string + invoiceItems: + type: array + items: + type: object + properties: + itemName: + type: string + unitPrice: + type: number + vat: + type: number + amount: + type: number + quantity: + type: integer + customer: + type: object + properties: + externalIdentify: + type: string + businessName: + type: string + customerEmail: + type: string + businessId: + type: string + id: + type: integer + billingCycle: + type: boolean + payButtonOnInvoices: + type: boolean + enableAdvancedOptions: + type: boolean + partialPayment: + type: boolean + status: + type: string + createdAt: + type: string + mode: + type: string + code: + type: string + # get invoice by orderNo + GetInvoiceByOrderNumberResponse: + type: object + properties: + payload: + type: array + items: + type: object + properties: + invoiceId: + type: integer + invoiceNo: + type: string + totalAmount: + type: number + subTotal: + type: number + publicKey: + type: string + testKey: + type: string + supportEmail: + type: string + receiversName: + type: string + customerEmail: + type: string + businessName: + type: string + tax: + type: number + dueDate: + type: string + currency: + type: string + invoiceItems: + type: array + items: + type: object + properties: + itemName: + type: string + unitPrice: + type: number + vat: + type: number + amount: + type: number + quantity: + type: integer + customer: + type: object + properties: + externalIdentify: + type: string + businessName: + type: string + customerEmail: + type: string + businessId: + type: string + id: + type: integer + billingCycle: + type: boolean + payButtonOnInvoices: + type: boolean + enableAdvancedOptions: + type: boolean + partialPayment: + type: boolean + status: + type: string + createdAt: + type: string + mode: + type: string + code: + type: string + + # end of invoice + # start of pocket + + # authenticate pocket + PocketAuthRequest: + type: object + required: + - email + - password + properties: + email: + type: string + format: email + password: + type: string + + PocketAuthResponse: + type: object + properties: + responseCode: + type: string + message: + type: string + data: + type: object + properties: + bearerToken: + type: string + expiryTime: + type: string + format: date-time + requirePasswordChange: + type: boolean + # add sub-pocket + AddSubPocketRequest: + type: object + required: + - reference + - pocketFunction + - currency + - selfOwned + - pocketOwner + properties: + tagGroup: + type: string + reference: + type: string + pocketFunction: + type: string + enum: [BOTH, CREDIT, DEBIT] + currency: + type: string + tagName: + type: string + selfOwned: + type: boolean + pocketOwner: + type: object + required: + - existingPocketOwner + - pocketOwnerDetails + properties: + existingPocketOwner: + type: string + enum: ["true", "false"] + pocketOwnerDetails: + type: object + required: + - firstName + - lastName + - emailAddress + - phoneNumber + - businessName + properties: + firstName: + type: string + lastName: + type: string + emailAddress: + type: string + phoneNumber: + type: string + businessName: + type: string + + AddSubPocketResponse: + type: object + properties: + responseCode: + type: string + message: + type: string + data: + type: array + items: + type: object + properties: + pocketId: + type: string + parentId: + type: integer + bankAccountNumber: + type: string + bankAccountName: + type: string + bankCode: + type: string + bankName: + type: string + canRetailPockets: + type: boolean + subPocketUserResponse: + type: object + properties: + userName: + type: string + password: + type: string + # get pocket details + GetPocketDetailsResponse: + type: object + properties: + responseCode: + type: string + message: + type: string + data: + type: object + properties: + pocketId: + type: string + accountNumber: + type: string + status: + type: string + pocketFunction: + type: string + availableBalanceAmount: + type: string + availableBalanceCurrency: + type: string + ledgerBalanceAmount: + type: string + ledgerBalanceCurrency: + type: string + parentId: + type: string + nullable: true + fundingLink: + type: string + accountVerifierScheme: + type: string + accountVerifierNumber: + type: string + reference: + type: string + tier: + type: string + subPockets: + nullable: true + pocketOwner: + type: object + properties: + pocketOwnerId: + type: string + businessName: + type: string + firstName: + type: string + lastName: + type: string + emailAddress: + type: string + phoneNumber: + type: string + ownerVerifierScheme: + type: string + ownerVerifierNumber: + type: string + pocketAccounts: + type: array + items: + type: object + properties: + accountId: + type: string + accountNumber: + type: string + bankCode: + type: string + bankName: + type: string + reference: + type: string + pocketFundings: + nullable: true + pocketLimits: + type: array + items: {} + pocketMomos: + type: array + items: {} + + # get pocket balance + GetPocketBalanceResponse: + type: object + properties: + responseCode: + type: string + message: + type: string + data: + type: object + properties: + balanceAt: + type: string + format: date-time + availableBalanceCurrency: + type: string + availableBalanceAmount: + type: string + lastTransactionAt: + type: string + format: date-time + # get merchant sum + GetMerchantSumResponse: + type: object + properties: + responseCode: + type: string + message: + type: string + data: + type: object + properties: + merchantSubPocketsBalanceSummation: + type: string + merchantSubPocketsBalanceSummationCurrency: + type: string + merchantAllPocketsBalanceSummation: + type: string + merchantAllPocketsBalanceSummationCurrency: + type: string + + # get transaction details + GetPocketTransactionDetailsResponse: + type: object + properties: + responseCode: + type: string + message: + type: string + data: + type: object + properties: + reference: + type: string + pocketId: + type: string + transactionLeg: + type: string + transactionAmount: + type: string + transactionCurrency: + type: string + narration: + type: string + description: + type: string + createdAt: + type: string + format: date-time + createdBy: + type: string + transactionId: + type: string + transactionType: + type: string + batchId: + type: string + nullable: true + status: + type: string + message: + type: string + receiverName: + type: string + receiverAccountNumber: + type: string + receiverBankCode: + type: string + receiverBankName: + type: string + nullable: true + sender: + type: string + # find pocket transactions + FindPocketTransactionsResponse: + type: object + properties: + responseCode: + type: string + message: + type: string + data: + type: object + properties: + content: + type: array + items: + type: object + properties: + createdAt: + type: string + format: date-time + reference: + type: string + pocketId: + type: string + transactionLeg: + type: string + transactionCurrency: + type: string + availableBalanceCurrency: + type: string + ledgerBalanceCurrency: + type: string + narration: + type: string + transactionId: + type: string + description: + type: string + tagGroup: + type: string + tagName: + type: string + pocketTier: + type: string + receiverName: + type: string + receiverAccountNumber: + type: string + receiverBankCode: + type: string + transactionType: + type: string + publicKey: + type: string + status: + type: string + message: + type: string + batchId: + type: string + nullable: true + transactionSource: + type: string + transactionOrigin: + type: string + nullable: true + linkingReference: + type: string + nullable: true + transactionAmount: + type: string + availableBalanceAmount: + type: string + ledgerBalanceAmount: + type: string + accountNumber: + type: string + pageable: + type: object + properties: + sort: + type: object + properties: + empty: + type: boolean + sorted: + type: boolean + unsorted: + type: boolean + offset: + type: integer + pageSize: + type: integer + pageNumber: + type: integer + unpaged: + type: boolean + paged: + type: boolean + totalElements: + type: integer + totalPages: + type: integer + last: + type: boolean + size: + type: integer + number: + type: integer + sort: + type: object + properties: + empty: + type: boolean + sorted: + type: boolean + unsorted: + type: boolean + numberOfElements: + type: integer + first: + type: boolean + empty: + type: boolean + + # pocket to pocket transfer + PocketToPocketTransferRequest: + type: object + required: + - amount + - currency + - reference + - description + properties: + amount: + type: number + description: The amount to transfer. + currency: + type: string + description: The currency of the transfer. + reference: + type: string + description: The unique reference for the transfer. + description: + type: string + description: A description for the transfer. + + PocketToPocketTransferResponse: + type: object + properties: + responseCode: type: string - description: This is the amount to be paid. + message: + type: string + data: + type: object + description: Empty object on success. + + # end of pocket + + # start of payout + # generate pocket otp + GeneratePocketOtpRequest: + type: object + required: + - actionItem + - pocketId + properties: + actionItem: + type: string + description: The action for which the OTP is generated. + pocketId: + type: string + description: The pocket ID. + + GeneratePocketOtpResponse: + type: object + properties: + responseCode: + type: string + message: + type: string + data: + type: object + properties: + otp: + type: string + category: + type: string + expires: + type: string + format: date-time + + # generate pocket signature + GeneratePocketSignatureRequest: + type: object + required: + - reference + - amount + - currency + - description + - accountNumber + - bankCode + - actionType + - passKey + properties: + reference: + type: string + description: The transaction reference. + amount: + type: string + description: The amount for the payout. currency: type: string - description: This is the currency the transaction is to be carried out in. - country: + description: The currency for the payout. + description: type: string - description: This is the country from which the transaction is been carried out from - paymentReference: + description: The payout description. + accountNumber: type: string - description: This is the unique identifier for a transaction, to be generated by merchant. - email: + description: The account number to credit. + bankCode: type: string - description: This is the email of the customer. - productId: + description: The bank code of the destination bank. + actionType: type: string - description: This is the product id entered by the merchant. - productDescription: + description: The action type (e.g., APPROVE_DISBURSEMENT). + passKey: type: string - description: This is the product description supplied by the merchant. - callbackUrl: + description: The OTP or passKey for the payout. + + GeneratePocketSignatureResponse: + type: object + properties: + responseCode: type: string - example: - publicKey: SBTESTPUBK_9sN3TuLgW6a9redEfY48cKKkUa09Pz2u - amount: "10.00" - currency: NGN - country: NG - paymentReference: 3791090233047WZ73QN - email: mamadou.diouf@intouchgroup.net - productId: "15013" - productDescription: touch badge - callbackUrl: https://gutouch.com - PaymentLinkFromCheckoutRequest: - title: PaymentLinkFromCheckoutRequest - required: - - amount - - callbackUrl - - country - - currency - - email - - hash - - hashType - - paymentReference - - productDescription - - productId - - publicKey + message: + type: string + data: + type: string + description: The generated signature. + + # initiate payout + InitiatePocketPayoutRequest: type: object + required: + - reference + - amount + - currency + - description + - accountNumber + - bankCode + - passKey + - actionType + - signature properties: - publicKey: + reference: type: string - description: This is the merchant public key. + description: The transaction reference. amount: type: string - description: This is the amount to be paid. + description: The amount for the payout. currency: type: string - description: This is the currency the transaction is to be carried out in. - country: + description: The currency for the payout. + description: type: string - description: This is the country from which the transaction is been carried out from - paymentReference: + description: The payout description. + accountNumber: type: string - description: This is the unique identifier for a transaction, to be generated by merchant. - email: + description: The account number to credit. + bankCode: type: string - description: This is the email of the customer. - productId: + description: The bank code of the destination bank. + passKey: type: string - description: This is the product id entered by the merchant. - productDescription: + description: The OTP or passKey for the payout. + actionType: type: string - description: This is the product description supplied by the merchant. - callbackUrl: + description: The action type (e.g., APPROVE_DISBURSEMENT). + signature: type: string - description: This is the callback url supplied by the merchant so that Seerbit can redirect back to it . - hash: + description: The generated signature for the payout. + + InitiatePocketPayoutResponse: + type: object + properties: + responseCode: type: string - description: This is the hash of the concatenated string for payment. Check hash module for more clarification. - hashType: + message: type: string - description: This refers to the hash type used in generating the hash - example: - publicKey: SBTESTPUBK_9sN3TuLgW6a9redEfY48cKKkUa09Pz2u - amount: "10.00" - currency: NGN - country: NG - paymentReference: P791090233047WZ73QN - email: mamadou.diouf@intouchgroup.net - productId: "15013" - productDescription: touch badge - callbackUrl: https://gutouch.com - hash: cfb5464ea21cce315ea72fb28f7ea45c4b61c443783eeff82dea98e57d445e15 - hashType: sha256 - OTPMomoRequest: - title: OTPMomoRequest + data: + type: object + properties: + reference: + type: string + linkingreference: + type: string + # end of payout + + # start of VA + # create VA + CreateVirtualAccountRequest: + type: object required: - - linkingReference - - otp + - publicKey + - fullName + - bankVerificationNumber + - currency + - country + - reference + - email + properties: + publicKey: + type: string + description: The merchant public key. + fullName: + type: string + description: The full name of the account holder. + bankVerificationNumber: + type: string + description: The BVN of the account holder. + currency: + type: string + description: The currency for the account. + country: + type: string + description: The country code. + reference: + type: string + description: The unique reference for the account. + email: + type: string + description: The email address of the account holder. + + CreateVirtualAccountResponse: type: object properties: - linkingReference: + status: type: string - description: This is the internal gateway reference - otp: + data: + type: object + properties: + code: + type: string + payments: + type: object + properties: + reference: + type: string + walletName: + type: string + bankName: + type: string + accountNumber: + type: string + message: + type: string + # get VA by payment reference + GetVirtualAccountResponse: + type: object + properties: + status: type: string - description: This is the TOKEN sent to customer’s phone or email - example: - linkingReference: CF630837081601460887752 - otp: "81015" - ValidateTransactionRequest: - title: ValidateTransactionRequest - required: - - linkingReference - - otp + data: + type: object + properties: + code: + type: string + payments: + type: object + properties: + reference: + type: string + linkingReference: + type: string + walletName: + type: string + wallet: + type: string + bankName: + type: string + accountNumber: + type: string + message: + type: string + # delete a VA + DeleteVirtualAccountResponse: type: object properties: - linkingReference: + status: type: string - description: This is the internal gateway reference - otp: + data: + type: object + properties: + code: + type: string + message: + type: string + # Get Payment + GetVirtualAccountPaymentResponse: + type: object + properties: + status: type: string - description: This is the TOKEN sent to customer’s phone or email - example: - linkingReference: F092648971601293723061 - otp: "123456" - CaptureRequest: - title: CaptureRequest - required: - - amount - - country - - currency - - paymentReference - - productDescription - - publicKey + data: + type: object + properties: + code: + type: string + payload: + type: array + items: + type: object + properties: + id: + type: integer + fullName: + type: string + publicKey: + type: string + processor: + type: string + paymentType: + type: string + amount: + type: number + email: + type: string + gateway: + type: string + gatewayMessage: + type: string + gatewayCode: + type: string + transactionRef: + type: string + gatewayRef: + type: string + businessName: + type: string + mode: + type: string + channelType: + type: string + country: + type: string + currency: + type: string + internalreference: + type: string + accountNumber: + type: string + creditAccountName: + type: string + transferType: + type: string + paymentReference: + type: string + creditAccountNumber: + type: string + settlementCode: + type: string + settlementMessage: + type: string + settlementTime: + type: string + status: + type: string + mobileNumber: + type: string + transferedAmount: + type: number + isCardInternational: + type: string + reason: + type: string + retry: + type: boolean + createdAt: + type: string + updatedAt: + type: string + processorCode: + type: string + processorMessage: + type: string + message: + type: string + # end of VA + + # start of payment link + # create payment link + CreatePaymentLinkRequest: type: object + required: + - status + - paymentLinkName + - description + - currency + - successMessage + - publicKey + - customizationName + - paymentFrequency + - email + - requiredFields + - linkExpirable + - oneTime properties: - paymentReference: + status: type: string - description: This is the unique identifier for a transaction, to be generated by merchant. - currency: + paymentLinkName: type: string - description: This is the currency the transaction is to be carried out in. - country: + description: type: string - description: This is the country the customer is doing the transaction from - productDescription: + currency: type: string - description: This is the product description supplied by the merchant. - amount: + successMessage: type: string - description: This is the amount to be paid. publicKey: type: string - description: This is the merchant public key. - example: - paymentReference: PREAUTH124456789798765k321CB0 - currency: NGN - country: NG - productDescription: preauth test capture - amount: "5.10" - publicKey: SBTESTPUBK_dhrpzbRpR34l6VmqkCFOKA94L5E1jSTu - RefundRequest: - title: RefundRequest + customizationName: + type: string + paymentFrequency: + type: string + paymentReference: + type: string + email: + type: string + requiredFields: + type: object + properties: + address: + type: boolean + amount: + type: boolean + customerName: + type: boolean + mobileNumber: + type: boolean + invoiceNumber: + type: boolean + additionalData: + type: string + linkExpirable: + type: boolean + expiryDate: + type: string + oneTime: + type: boolean + + CreatePaymentLinkResponse: + type: object + properties: + data: + type: object + properties: + paymentLinks: + type: object + properties: + publicKey: + type: string + status: + type: string + additionalData: + type: string + paymentLinkName: + type: string + description: + type: string + successMessage: + type: string + paymentLinkId: + type: string + currency: + type: string + paymentReference: + type: string + paymentFrequency: + type: string + paymentLinkUrl: + type: string + customizationName: + type: string + environment: + type: string + requiredFields: + type: object + properties: + address: + type: boolean + amount: + type: boolean + customerName: + type: boolean + mobileNumber: + type: boolean + invoiceNumber: + type: boolean + expiryDuration: + type: integer + linkExpirable: + type: boolean + createdAt: + type: string + updatedAt: + type: string + oneTime: + type: boolean + splitPayment: + type: boolean + + # get payment link by public key + GetMerchantPaymentLinksResponse: + type: object + properties: + currentPage: + type: integer + responseCode: + type: string + payload: + type: array + items: + type: object + properties: + businessId: + type: string + publicKey: + type: string + status: + type: string + amount: + type: number + customisationName: + type: string + additionalData: + type: string + paymentLinkName: + type: string + description: + type: string + paymentLinkId: + type: string + paymentFrequency: + type: string + paymentLinkUrl: + type: string + pocketReference: + type: string + environment: + type: string + requiredFields: + type: object + properties: + address: + type: boolean + amount: + type: boolean + customerName: + type: boolean + mobileNumber: + type: boolean + invoiceNumber: + type: boolean + expiryDuration: + type: integer + linkExpirable: + type: boolean + customTime: + type: string + createdAt: + type: string + updatedAt: + type: string + oneTime: + type: boolean + splitPayment: + type: boolean + responseMessage: + type: string + + # Update payment link + UpdatePaymentLinkRequest: + type: object required: - - amount - - country - - currency - - paymentReference - - productDescription - - publicKey + - paymentLinkId + - status + - description + - successMessage + - businessName + - publicKey + - customizationName + - paymentFrequency + - email + - requiredFields + - linkExpirable + - oneTime + properties: + paymentLinkId: + type: string + status: + type: string + description: + type: string + successMessage: + type: string + businessName: + type: string + publicKey: + type: string + customizationName: + type: string + paymentFrequency: + type: string + email: + type: string + requiredFields: + type: object + properties: + address: + type: boolean + amount: + type: boolean + customerName: + type: boolean + mobileNumber: + type: boolean + invoiceNumber: + type: boolean + linkExpirable: + type: boolean + expiryDate: + type: string + oneTime: + type: boolean + + UpdatePaymentLinkResponse: type: object properties: - paymentReference: + data: + type: object + properties: + paymentLinks: + type: object + properties: + publicKey: + type: string + status: + type: string + description: + type: string + successMessage: + type: string + paymentLinkId: + type: string + paymentFrequency: + type: string + paymentLinkUrl: + type: string + customizationName: + type: string + environment: + type: string + requiredFields: + type: object + properties: + address: + type: boolean + amount: + type: boolean + customerName: + type: boolean + mobileNumber: + type: boolean + invoiceNumber: + type: boolean + expiryDuration: + type: integer + linkExpirable: + type: boolean + updatedAt: + type: string + oneTime: + type: boolean + splitPayment: + type: boolean + # Delete payment link + DeletePaymentLinkResponse: + type: object + properties: + status: + type: string + + # end of payment link + + # start of card tokenisation + CreateCardTokenRequest: + type: object + required: + - publicKey + - amount + - fullName + - mobileNumber + - redirectUrl + - currency + - country + - paymentReference + - email + - paymentType + - cardNumber + - expiryMonth + - expiryYear + - cvv + - pin + properties: + publicKey: + type: string + amount: + type: string + fullName: + type: string + mobileNumber: + type: string + redirectUrl: type: string - description: This is the unique identifier for a transaction, to be generated by merchant. currency: type: string - description: This is the currency the transaction is to be carried out in. country: type: string - description: This is the country the customer is doing the transaction from - productDescription: + paymentReference: type: string - description: This is the product description supplied by the merchant. - amount: + email: type: string - description: This is the amount to be paid. - publicKey: + paymentType: type: string - description: This is the merchant public key. - example: - paymentReference: PREAUTH124456789798765432CB0 - currency: NGN - country: NG - productDescription: preauth test capture - amount: "5.10" - publicKey: SBTESTPUBK_dhrpzbRpR34l6VmqkCFOKA94L5E1jSTu - CancelRequest: - title: CancelRequest - required: - - country - - paymentReference - - productDescription - - publicKey + cardNumber: + type: string + expiryMonth: + type: string + expiryYear: + type: string + cvv: + type: string + pin: + type: string + + CreateCardTokenResponse: type: object properties: + status: + type: string + data: + type: object + properties: + code: + type: string + message: + type: string + payments: + type: object + properties: + paymentReference: + type: string + linkingReference: + type: string + redirectUrl: + type: string + + # get card auth token' + GetCardAuthorisationCodeResponse: + type: object + properties: + status: + type: string + data: + type: object + properties: + code: + type: string + message: + type: string + payments: + type: object + properties: + amount: + type: number + mobilenumber: + type: string + publicKey: + type: string + paymentType: + type: string + maskedPan: + type: string + gatewayMessage: + type: string + gatewayCode: + type: string + gatewayref: + type: string + businessName: + type: string + mode: + type: string + channelType: + type: string + cardBin: + type: string + lastFourDigits: + type: string + country: + type: string + currency: + type: string + paymentReference: + type: string + transactionProcessTime: + type: string + reason: + type: string + authorizationCode: + type: string + customers: + type: object + properties: + customerId: + type: string + customerName: + type: string + customerMobile: + type: string + customerEmail: + type: string + + # charge authorisation token + ChargeAuthorisationTokenRequest: + type: object + required: + - publicKey + - amount + - paymentReference + - authorizationCode + properties: + publicKey: + type: string + amount: + type: string paymentReference: type: string - description: This is the unique identifier for a transaction, to be generated by merchant. - publicKey: + authorizationCode: + type: string + + ChargeAuthorisationTokenResponse: + type: object + properties: + status: + type: string + data: + type: object + properties: + code: + type: string + message: + type: string + payments: + type: object + properties: + paymentReference: + type: string + linkingReference: + type: string + + # Bulk charge token + BulkChargeTokenResponse: + type: object + properties: + code: + type: string + message: type: string - description: This is the merchant public key. - country: + payload: + type: object + properties: + batchId: + type: string + + # query bulk charge token + QueryBulkChargeWithBatchIdResponse: + type: object + properties: + code: type: string - description: This is the country the customer is doing the transaction from - productDescription: + message: type: string - description: This is the product description supplied by the merchant. - example: - paymentReference: PREAUTH124456789798765k3L1CB0 - publicKey: SBTESTPUBK_dhrpzbRpR34l6VmqkCFOKA94L5E1jSTu - country: NG - productDescription: test void + payload: + type: object + properties: + content: + type: array + items: + type: object + properties: + id: + type: integer + authorizationCode: + type: string + statusCode: + type: string + message: + type: string + createdAt: + type: string + updatedAt: + type: string + batchId: + type: string + currency: + type: string + cardBin: + type: string + cardLastFourDigits: + type: string + cardType: + type: string + amount: + type: string + pageable: + type: object + properties: + sort: + type: object + properties: + sorted: + type: boolean + unsorted: + type: boolean + empty: + type: boolean + pageNumber: + type: integer + pageSize: + type: integer + offset: + type: integer + paged: + type: boolean + unpaged: + type: boolean + last: + type: boolean + totalElements: + type: integer + totalPages: + type: integer + sort: + type: object + properties: + sorted: + type: boolean + unsorted: + type: boolean + empty: + type: boolean + first: + type: boolean + numberOfElements: + type: integer + size: + type: integer + number: + type: integer + empty: + type: boolean GenerateEncryptedSecretKeyResponse: title: GenerateEncryptedSecretKeyRequest type: object @@ -1972,22 +6651,22 @@ components: code: "00" message: Successful products: - - amount: 100 - currency: NGN - productId: 1089162.0 - productDescription: FODD ITEM - paymentReference: 0w0eimkizc41602513327447 - orderId: wil61c8cd7 - createdAt: 2020-10-16T11:41:05.723 - updatedAt: 2020-10-16T11:41:05.723 - - amount: 300 - currency: NGN - productId: 3081869.0 - productDescription: SKIN CARE - paymentReference: 0w0eimkizc41602513327447 - orderId: wil9b10fbe - createdAt: 2020-10-16T11:41:07.17 - updatedAt: 2020-10-16T11:41:07.17 + - amount: 100 + currency: NGN + productId: 1089162.0 + productDescription: FODD ITEM + paymentReference: 0w0eimkizc41602513327447 + orderId: wil61c8cd7 + createdAt: 2020-10-16T11:41:05.723 + updatedAt: 2020-10-16T11:41:05.723 + - amount: 300 + currency: NGN + productId: 3081869.0 + productDescription: SKIN CARE + paymentReference: 0w0eimkizc41602513327447 + orderId: wil9b10fbe + createdAt: 2020-10-16T11:41:07.17 + updatedAt: 2020-10-16T11:41:07.17 UpdateOrder201Response: title: CreateOrderResponse type: object @@ -1997,19 +6676,19 @@ components: code: "00" message: Successful products: - - amount: 800 - currency: NGN - productId: 1089162.0 - productDescription: FODD ITEM UPDATE - paymentReference: 0w0eimkizc41602513327447 - orderId: wil0f47b62 - - amount: 400 - currency: NGN - productId: 3081869.0 - productDescription: SKIN CARE UPDATE TEST - paymentReference: 0w0eimkizc41602513327447 - orderId: wil1cc231f - + - amount: 800 + currency: NGN + productId: 1089162.0 + productDescription: FODD ITEM UPDATE + paymentReference: 0w0eimkizc41602513327447 + orderId: wil0f47b62 + - amount: 400 + currency: NGN + productId: 3081869.0 + productDescription: SKIN CARE UPDATE TEST + paymentReference: 0w0eimkizc41602513327447 + orderId: wil1cc231f + GetOrderByPublicKey201Response: title: GetOrderByPublicKeyResponse type: object @@ -2019,22 +6698,22 @@ components: code: "00" message: Successful products: - - amount: 100 - currency: NGN - productId: 1089162.0 - productDescription: FODD ITEM UPDATE - paymentReference: 0w0eimkizc41602513327447 - orderId: wil0f47b62 - createdAt: 2020-10-12T15:38:28 - updatedAt: 2020-10-17T21:56:54 - - amount: 300 - currency: NGN - productId: 1089162.0 - productDescription: FODD ITEM UPDATE - paymentReference: 0w0eimkizc41602513327447 - orderId: wil0f47b62 - createdAt: 2020-10-12T15:38:29 - updatedAt: 2020-10-17T21:56:54 + - amount: 100 + currency: NGN + productId: 1089162.0 + productDescription: FODD ITEM UPDATE + paymentReference: 0w0eimkizc41602513327447 + orderId: wil0f47b62 + createdAt: 2020-10-12T15:38:28 + updatedAt: 2020-10-17T21:56:54 + - amount: 300 + currency: NGN + productId: 1089162.0 + productDescription: FODD ITEM UPDATE + paymentReference: 0w0eimkizc41602513327447 + orderId: wil0f47b62 + createdAt: 2020-10-12T15:38:29 + updatedAt: 2020-10-17T21:56:54 GetOrderByPublicKeyAndPaymentReference201Response: title: GetOrderByPublicKeyResponse type: object @@ -2044,22 +6723,22 @@ components: code: "00" message: Successful products: - - amount: 100 - currency: NGN - productId: 1089162.0 - productDescription: FODD ITEM UPDATE - paymentReference: 0w0eimkizc41602513327447 - orderId: wil0f47b62 - createdAt: 2020-10-12T15:38:28 - updatedAt: 2020-10-17T21:56:54 - - amount: 300 - currency: NGN - productId: 1089162.0 - productDescription: FODD ITEM UPDATE - paymentReference: 0w0eimkizc41602513327447 - orderId: wil0f47b62 - createdAt: 2020-10-12T15:38:29 - updatedAt: 2020-10-17T21:56:54 + - amount: 100 + currency: NGN + productId: 1089162.0 + productDescription: FODD ITEM UPDATE + paymentReference: 0w0eimkizc41602513327447 + orderId: wil0f47b62 + createdAt: 2020-10-12T15:38:28 + updatedAt: 2020-10-17T21:56:54 + - amount: 300 + currency: NGN + productId: 1089162.0 + productDescription: FODD ITEM UPDATE + paymentReference: 0w0eimkizc41602513327447 + orderId: wil0f47b62 + createdAt: 2020-10-12T15:38:29 + updatedAt: 2020-10-17T21:56:54 GetOrderByPublicKeyAndOrderId201Response: title: GetOrderByPublicKeyResponse type: object @@ -2069,22 +6748,22 @@ components: code: "00" message: Successful products: - - amount: 100 - currency: NGN - productId: 1089162.0 - productDescription: FODD ITEM UPDATE - paymentReference: 0w0eimkizc41602513327447 - orderId: wil0f47b62 - createdAt: 2020-10-12T15:38:28 - updatedAt: 2020-10-17T21:56:54 - - amount: 300 - currency: NGN - productId: 1089162.0 - productDescription: FODD ITEM UPDATE - paymentReference: 0w0eimkizc41602513327447 - orderId: wil0f47b62 - createdAt: 2020-10-12T15:38:29 - updatedAt: 2020-10-17T21:56:54 + - amount: 100 + currency: NGN + productId: 1089162.0 + productDescription: FODD ITEM UPDATE + paymentReference: 0w0eimkizc41602513327447 + orderId: wil0f47b62 + createdAt: 2020-10-12T15:38:28 + updatedAt: 2020-10-17T21:56:54 + - amount: 300 + currency: NGN + productId: 1089162.0 + productDescription: FODD ITEM UPDATE + paymentReference: 0w0eimkizc41602513327447 + orderId: wil0f47b62 + createdAt: 2020-10-12T15:38:29 + updatedAt: 2020-10-17T21:56:54 OTPMomoResponse: title: OTPMomoResponse type: object @@ -2192,6 +6871,8 @@ components: bin: "512345" last4: "0008" message: APPROVED + + # start of subscription InitiateSubscriptionResponse: title: InitiateSubscriptionResponse type: object @@ -2225,6 +6906,329 @@ components: createdAt: 1601385265000 code: "00" message: Successful + # create a plan + CreatePlanRequest: + type: object + required: + - productId + - productDescription + - amount + - billingCycle + - limit + - publicKey + - country + - currency + - allowPartialDebit + properties: + productId: + type: string + description: The name of the plan. + productDescription: + type: string + description: The description of the plan. + amount: + type: string + description: The amount for the plan. + billingCycle: + type: string + description: The billing cycle (e.g., HOURLY). + limit: + type: integer + description: The maximum number of cycles. + publicKey: + type: string + description: The merchant public key. + country: + type: string + description: The country code. + currency: + type: string + description: The currency code. + allowPartialDebit: + type: boolean + description: Whether partial debit is allowed. + + CreatePlanResponse: + type: object + properties: + payload: + type: object + properties: + country: + type: string + createdAt: + type: integer + amount: + type: number + productId: + type: string + billingCycle: + type: string + currency: + type: string + payUrl: + type: string + details: + type: object + properties: + country: + type: string + amount: + type: number + productId: + type: string + allowPartialDebit: + type: boolean + payLinkUrl: + type: string + publicKey: + type: string + createdAt: + type: integer + trialDuration: + type: integer + trialPeriod: + type: boolean + billingCycle: + type: string + limit: + type: integer + planId: + type: string + currency: + type: string + id: + type: integer + productDescription: + type: string + updatedAt: + nullable: true + status: + type: string + publicKey: + type: string + plan: + type: string + productDescription: + type: string + message: + type: string + status: + type: string + responseCode: + type: string + + # get merchant plans + GetMerchantSubscriptionResponse: + type: object + properties: + status: + type: string + data: + type: object + properties: + subscriptions: + type: array + items: + type: object + properties: + publicKey: + type: string + amount: + type: string + country: + type: string + customerId: + type: string + cardName: + type: string + cardNumber: + type: string + plan: + type: string + status: + type: string + billingId: + type: string + authorizationCode: + type: string + startDate: + type: string + createdAt: + type: integer + code: + type: string + message: + type: string + # charge subscription + ChargeSubscriptionRequest: + type: object + required: + - amount + - publicKey + - email + - allowPartialDebit + - authorizationCode + - paymentReference + - currency + properties: + amount: + type: string + publicKey: + type: string + email: + type: string + allowPartialDebit: + type: boolean + authorizationCode: + type: string + paymentReference: + type: string + currency: + type: string + + ChargeSubscriptionResponse: + type: object + properties: + status: + type: string + data: + type: object + properties: + code: + type: string + payments: + type: object + properties: + code: + type: string + message: + type: string + paymentReference: + type: string + publicKey: + type: string + amount: + type: string + currency: + type: string + country: + type: string + email: + type: string + productDescription: + type: string + message: + type: string + # get customer subscriptions + GetCustomerSubscriptionResponse: + type: object + properties: + status: + type: string + data: + type: object + properties: + subscriptions: + type: array + items: + type: object + properties: + publicKey: + type: string + amount: + type: string + country: + type: string + customerId: + type: string + cardName: + type: string + cardNumber: + type: string + plan: + type: string + status: + type: string + billingId: + type: string + authorizationCode: + type: string + startDate: + type: string + createdAt: + type: integer + code: + type: string + + # update subscription + UpdateCustomerSubscriptionRequest: + type: object + required: + - amount + - currency + - country + - mobileNumber + - billingId + - publicKey + - status + properties: + amount: + type: string + currency: + type: string + country: + type: string + mobileNumber: + type: string + billingId: + type: string + publicKey: + type: string + status: + type: string + + UpdateCustomerSubscriptionResponse: + type: object + properties: + status: + type: string + data: + type: object + properties: + subscriptions: + type: object + properties: + publicKey: + type: string + amount: + type: string + country: + type: string + customerId: + type: string + cardName: + type: string + cardNumber: + type: string + plan: + type: string + status: + type: string + billingId: + type: string + authorizationCode: + type: string + startDate: + type: string + createdAt: + type: integer + code: + type: string + message: + type: string + + # end of subscription securitySchemes: Bearer: type: apiKey @@ -2240,14 +7244,14 @@ components: paymentReference: 0w0eimkizc41602513327447 publicKey: SBTESTPUBK_9sN3TuLgW6a9redEfY48cKKkUa09Pz2u orders: - - amount: "100.00" - productId: 1089162.0 - productDescription: FODD ITEM - currency: NGN - - amount: "300.00" - productId: 3081869.0 - productDescription: SKIN CARE - currency: NGN + - amount: "100.00" + productId: 1089162.0 + productDescription: FODD ITEM + currency: NGN + - amount: "300.00" + productId: 3081869.0 + productDescription: SKIN CARE + currency: NGN CreateOrderRequest2: summary: An example of order before payment request payload value: @@ -2261,7 +7265,7 @@ components: country: NG currency: NGN amount: "250.00" - orders: + orders: - orderId: "1235567-113227878-64332q" currency: NGN amount: "125.00" @@ -2272,11 +7276,11 @@ components: amount: "125.00" productId: "4030018" productDescription: WEIGHING AND ADMIN CHARGES - + cardRequestPayload: summary: An example of card request payload value: - publicKey: SBTESTPUBK_9sN3TuLgW6a9redEfY48cKKkUa09Pz2u + publicKey: YOUR_PUBLIC_KEY amount: "100.00" fee: "10" fullName: Kola Victor @@ -2298,11 +7302,11 @@ components: cvv: "100" expiryMonth: "05" expiryYear: "21" - pin: '####' + pin: "####" source: "" retry: "false" - invoiceNumber: 10000123abc123 - isCvv: "true" + # invoiceNumber: 10000123abc123 + # isCvv: "true" accountRequestPaylaod: summary: An example of account request payload value: @@ -2316,60 +7320,60 @@ components: paymentReference: VERS2FURTHERTESTAc029456784 email: kolawole@gmail.com productId: Foods - productDescription: 'Uba Account Transaction ' + productDescription: "Uba Account Transaction " clientAppCode: kpp64 - channelType: BANK_ACCOUNT + # channelType: BANK_ACCOUNT redirectUrl: https://checkout.seerbit.com - callbackUrl: https://checkout.seerbit.com - paymentType: ACCOUNT - deviceType: Apple Laptop - sourceIP: 127.0.0.1:3456 - accountName: kolawole Alagbon - accountNumber: "1234567890" - bankCode: "033" - bvn: "12345678901" - dateOfBirth: 4011984.0 - source: "" - retry: "false" - invoiceNumber: 1234567891abc123ac + # callbackUrl: https://checkout.seerbit.com + # paymentType: ACCOUNT + # deviceType: Apple Laptop + # sourceIP: 127.0.0.1:3456 + # accountName: kolawole Alagbon + # accountNumber: "1234567890" + # bankCode: "033" + # bvn: "12345678901" + # dateOfBirth: 4011984.0 + # source: "" + # retry: "false" + # invoiceNumber: 1234567891abc123ac transferRequestPaylaod: summary: An example of transfer request payload value: - publicKey: SBTESTPUBK_9sN3TuLgW6a9redEfY48cKKkUa09Pz2u + publicKey: Public-Key fullName: Samuel Teas amount: "20.00" - fee: 10 + # fee: 10 redirectUrl: http://checkout-seerbit.surge.sh - sourceIP: 127.0.0.1:3456 - cardNumber: 5123450000000008 - isCvv: "true" - pocketReference: "12345678543" + # sourceIP: 127.0.0.1:3456 + # cardNumber: 5123450000000008 + # isCvv: "true" + # pocketReference: "12345678543" callbackUrl: https://checkout.seerbit.com - accountName: kolawole Alagbon - accountNumber: "1234567890" - bankCode: "033" - bvn: "12345678901" - amountControl: FIXEDAMOUNT - channelType: Mastercard + # accountName: kolawole Alagbon + # accountNumber: "1234567890" + # bankCode: "033" + # bvn: "12345678901" + # amountControl: FIXEDAMOUNT + # channelType: Mastercard mobileNumber: "08033456539" - cvv: "100" - expiryMonth: 5 - expiryYear: 21 - pin: '####' - type: 3DSECURE - source: "" + # cvv: "100" + # expiryMonth: 5 + # expiryYear: 21 + # pin: "####" + # type: 3DSECURE + # source: "" currency: NGN country: NG paymentReference: L16FDE3311RSEY2AUA3QWERQPU email: kolawole@gmail.com - productId: Foods - productDescription: RASPBERRY - clientAppCode: kpp64 - paymentType: CARD - deviceType: Apple Laptop - walletDaysActive: "1" - retry: "false" - invoiceNumber: 1234567890abc123ac + # productId: Foods + # productDescription: RASPBERRY + # clientAppCode: kpp64 + paymentType: TRANSFER + # deviceType: Apple Laptop + # walletDaysActive: "1" + # retry: "false" + # invoiceNumber: 1234567890abc123ac momoRequestPaylaod: summary: An example of momo request payload value: @@ -2389,22 +7393,37 @@ components: amount: "1.00" productId: grocery paymentType: MOMO + ussdRequestPaylaod: + summary: An example of ussd request payload + value: + fullName: FirstName LastName + email: firstname@mail.com + mobileNumber: customer mobile number + publicKey: YOUR_PUBLIC_KEY + paymentReference: dsffererer + callbackUrl: http://yourdomain.com + redirectUrl: http://yourdomain.com + currency: NGN + country: NG + amount: "100" + paymentType: USSD + bankCode: "033" AuthoriseRequest: summary: An example of Authorise Request payload value: - paymentReference: PREAUTH124456789798765k3K1CB0 - publicKey: SBTESTPUBK_dhrpzbRpR34l6VmqkCFOKA94L5E1jSTu - cardNumber: "5123450000000008" - cvv: "100" - expiryMonth: "05" - expiryYear: "21" - currency: NGN - country: NG - productDescription: preauth test capture - amount: "100.00" - email: johndoe@gmail.com - fullName: john doe - AuthorisewithCardTokenRequest: + paymentReference: PREAUTH124456789798765k3K1CB0 + publicKey: SBTESTPUBK_dhrpzbRpR34l6VmqkCFOKA94L5E1jSTu + cardNumber: "5123450000000008" + cvv: "100" + expiryMonth: "05" + expiryYear: "21" + currency: NGN + country: NG + productDescription: preauth test capture + amount: "100.00" + email: johndoe@gmail.com + fullName: john doe + AuthorisewithCardTokenRequest: summary: AuthorisewithCardToken Request payload value: paymentReference: 30451A789S987643128hgffsfP6K @@ -2498,42 +7517,54 @@ components: paymentReference: 0w0eimkizc41602513327447 publicKey: SBTESTPUBK_9sN3TuLgW6a9redEfY48cKKkUa09Pz2u orders: - - amount: "800.00" - productId: 1089162.0 - productDescription: FODD ITEM UPDATE - currency: NGN - orderId: wil0f47b62 - - amount: "400.00" - productId: 3081869.0 - productDescription: SKIN CARE UPDATE TEST - currency: NGN - orderId: wil1cc231f + - amount: "800.00" + productId: 1089162.0 + productDescription: FODD ITEM UPDATE + currency: NGN + orderId: wil0f47b62 + - amount: "400.00" + productId: 3081869.0 + productDescription: SKIN CARE UPDATE TEST + currency: NGN + orderId: wil1cc231f InitiateAccountPaymentResponse: summary: An example of account response payload value: - status: SUCCESS - data: - code: "20" - payments: - paymentReference: VERS2FURTHERTESTAc722456784 - linkingReference: F282866521599191373372 - message: Transaction is pending + status: SUCCESS + data: + code: "20" + payments: + paymentReference: VERS2FURTHERTESTAc722456784 + linkingReference: F282866521599191373372 + message: Transaction is pending + InitiateUSSDPaymentResponse: + summary: An example of USSD response payload + value: + status: SUCCESS + data: + code: "20" + payments: + paymentReference: VERS2FURTHERTESTAc722456784 + linkingReference: F282866521599191373372 + providerreference: 8206 + ussdDailCode: "*901*000*8206" + message: null InitiateAccountPaymentS12Response: summary: An example of account response S12 payload value: - status: SUCCESS - data: - code: "S12" - payments: {} - message: Cant process at this moment, please try again Transaction reference must be unique + status: SUCCESS + data: + code: "S12" + payments: {} + message: Cant process at this moment, please try again Transaction reference must be unique InitiateAccountPaymentS7Response: summary: An example of account response S7 payload value: - status: SUCCESS - data: - code: "S7" - payments: {} - message: Cant process at this moment, please try again Invalid Amount = Amount cannot be less than 100.0 + status: SUCCESS + data: + code: "S7" + payments: {} + message: Cant process at this moment, please try again Invalid Amount = Amount cannot be less than 100.0 InitiateCardTransactionsResponse: summary: An example of card response payload value: @@ -2558,7 +7589,7 @@ components: value: status: SUCCESS data: - code: 'S12' + code: "S12" payments: {} message: Transaction Failed InitiateTransferResponse: @@ -2593,7 +7624,7 @@ components: summary: An example of 404 response payload value: message: Not Found - error: The server can not find the requested resource + error: The server can not find the requested resource 404Response2: summary: An example of 404 response payload value: @@ -2609,7 +7640,7 @@ components: value: message: Bad Request error: There has been a problem with reading or understanding the request. - + 403Response1: summary: An example of 403 response payload value: @@ -2634,7 +7665,7 @@ components: summary: An example of 500 response payload value: message: Internal Server Error - error: PROCESSING + error: PROCESSING 500Response1: summary: An example of 500 response payload value: @@ -2659,7 +7690,7 @@ components: summary: An example of 500 response payload value: message: Transaction Exists - error: PROCESSING + error: PROCESSING PaymentLinkFromCheckout500Response: summary: An example of PaymentLinkFromCheckout 500 response payload value: @@ -2699,108 +7730,108 @@ components: value: status: SUCCESS data: - code: S12 - payments: - reference: O456S5077907982QWEuWAT05M - linkingreference: CF630837081601460887752 + code: S12 + payments: + reference: O456S5077907982QWEuWAT05M + linkingreference: CF630837081601460887752 message: Header Token Missing - 403Response2: + 403Response2: summary: An example of 403 response payload value: status: ERROR data: - code: S12 - message: Bad credentials = invalid public key - 403Response3: + code: S12 + message: Bad credentials = invalid public key + 403Response3: summary: An example of 403 response payload value: status: ERROR data: - code: S12 - message: Bad credentials - 403Response4: + code: S12 + message: Bad credentials + 403Response4: summary: An example of 403 response payload value: data: - code: S12 - message: Invalid/Missing parameters = paymentReference + code: S12 + message: Invalid/Missing parameters = paymentReference 400Response1: summary: An example of 400 response payload value: status: ERROR data: - code: S12 - message: Duplicate transaction reference + code: S12 + message: Duplicate transaction reference 400Response2: summary: An example of 400 response payload value: status: ERROR data: - code: S12 - message: Invalid/Missing parameters = publicKey + code: S12 + message: Invalid/Missing parameters = publicKey 400Response3: summary: An example of 400 response payload value: status: ERROR data: - code: S12 - message: Invalid/Missing parameters = amount + code: S12 + message: Invalid/Missing parameters = amount 400Response4: summary: An example of 400 response payload value: status: ERROR data: - code: S12 - message: Invalid/Missing parameters = paymentReference + code: S12 + message: Invalid/Missing parameters = paymentReference 400Response5: summary: An example of 400 response payload value: status: ERROR data: - code: S12 - message: Invalid/Missing parameters = currency + code: S12 + message: Invalid/Missing parameters = currency 400Response6: summary: An example of 400 response payload value: status: ERROR data: - code: S12 - message: Invalid/Missing parameters = country + code: S12 + message: Invalid/Missing parameters = country 400Response7: summary: An example of 400 response payload value: status: ERROR data: - code: S12 - message: Missing Card details + code: S12 + message: Missing Card details 400Response8: summary: An example of 400 response payload value: status: ERROR data: - code: S12 - message: Incomplete Card details + code: S12 + message: Incomplete Card details 400Response9: summary: An example of 400 response payload value: status: ERROR data: - code: S12 - message: Invalid Card Number + code: S12 + message: Invalid Card Number 400Response10: summary: An example of 400 response payload value: status: ERROR data: - code: S12 - message: Bad credentials = invalid public key + code: S12 + message: Bad credentials = invalid public key 400Response11: summary: An example of 400 response payload value: status: ERROR data: - code: S12 - message: No authorised transaction found for this reference + code: S12 + message: No authorised transaction found for this reference 400Response12: summary: An example of 400 response payload value: @@ -2830,7 +7861,7 @@ components: summary: An example of 409 response payload value: message: Transaction with reference exists - error: PROCESSING + error: PROCESSING ChargeCardResponse: summary: An example of 200 response payload value: @@ -2845,7 +7876,7 @@ components: bin: "512345" last4: "0008" token: tk_edcac221-63e5-4baf-8846-4922af4a10e6 - message: APPROVED + message: APPROVED ChargeCardResponse1: summary: An example of 200 response payload value: @@ -2860,7 +7891,7 @@ components: bin: "512345" last4: "0008" token: tk_edcac221-63e5-4baf-8846-4922af4a10e6 - message: FAILURE = TIMED_OUT (Issuer or switch inoperative) + message: FAILURE = TIMED_OUT (Issuer or switch inoperative) ValidateTransactionResponse: summary: An example of 200 response payload value: @@ -2930,7 +7961,7 @@ components: bin: "512345" last4: "0008" token: tk_40a0503d-4586-4220-a69e-c69cc9293016 - message: FAILURE = TIMED_OUT (Issuer or switch inoperative) + message: FAILURE = TIMED_OUT (Issuer or switch inoperative) 401Response1: summary: An example of 401 response payload value: @@ -2949,7 +7980,7 @@ components: redirectLink: https://seerbitapigateway.com/seerbit/card-dispatch?sredref=F535459411601493328771 linkingReference: F535459411601493328771 status: AUTHORISATION PENDING - message: Transaction is pending + message: Transaction is pending 3DSAuthoriseResponse1: summary: An example of 3DSAuthoriseResponse payload value: @@ -2968,25 +7999,25 @@ components: linkingReference: F535459411601493328771 status: FAILED card: - bin: '512345' + bin: "512345" last4: 0008 token: tk_b0a4b2f6-9ac1-485b-b031-9e018d9479bd - message: FAILURE = TIMED_OUT (Issuer or switch inoperative) + message: FAILURE = TIMED_OUT (Issuer or switch inoperative) AuthorisewithCardTokenResponse: - summary: An example of Authorise with Card Token Response payload - value: - status: SUCCESS - data: - code: "00" - payments: - paymentReference: 30451A789S987643128hgfdsfP6W - linkingReference: F135171921601494142535 - status: AUTHORIZED - card: - bin: '512345' - last4: 0008 - token: tk_b0a4b2f6-9ac1-485b-b031-9e018d9479bd - message: APPROVED + summary: An example of Authorise with Card Token Response payload + value: + status: SUCCESS + data: + code: "00" + payments: + paymentReference: 30451A789S987643128hgfdsfP6W + linkingReference: F135171921601494142535 + status: AUTHORIZED + card: + bin: "512345" + last4: 0008 + token: tk_b0a4b2f6-9ac1-485b-b031-9e018d9479bd + message: APPROVED Capture201Response: summary: An example of A Capture 201 Response payload value: @@ -3020,17 +8051,17 @@ components: status: SUCCESS data: code: "00" - payments: + payments: amount: 250 paymentReference: 2PPTG108QL13432E29P23R5L6W93I9 paymentStatus: "08" redirectLink: "https://checkout.seerbitapi.com/?mid=SBTESTPUBK_9sN3TuLgW6a9redEfY48cKKkUa09Pz2u&paymentReference=2PPTG108QL13432E29P23R5L6W93I9" - message: Successful + message: Successful BanksResponse: summary: An example of A Get Bank 201 Response payload value: status: SUCCESS - data: + data: code: "00" merchantBanks: - bankName: Guarantee Trust Bank @@ -3052,7 +8083,7 @@ components: logo: status: ACTIVE minimumAmount: 100 - requiredFields: + requiredFields: accountName: YES accountNumber: YES isBankCode: YES @@ -3111,7 +8142,170 @@ components: bvn: YES dateOfBirth: YES mobileNumber: NO - message: "Successful" - - - + message: "Successful" + # get invoice by customer email response + GetInvoiceByCustomerEmailResponse: + summary: Example response for Get Invoice by Customer Email + value: + payload: + - invoiceId: 2037 + invoiceNo: SBT-INV-002037 + totalAmount: 9137.50 + subTotal: 8500.00 + publicKey: SBPUBK_V1YL57ICZQSNCADEWE5XEVTNB72TLWZA + testKey: SBTESTPUBK_wLVXnn6YuGaTlOpUESrR7TzFwaDb2auC + supportEmail: skylah@mailinator.com + receiversName: Muyiwa Akintade + customerEmail: janesmith@emaildomain.com + businessName: Skylah Integrated Services Limited + tax: 637.50 + dueDate: "2025-07-01" + currency: NGN + invoiceItems: + - itemName: Bluetooth Pods + unitPrice: 2500.00 + vat: 187.50 + amount: 2500.00 + quantity: 1 + - itemName: Quest 10 + unitPrice: 6000.00 + vat: 450.00 + amount: 6000.00 + quantity: 4 + customer: + externalIdentify: "2784824" + businessName: Muyiwa Akintade + customerEmail: janesmith@emaildomain.com + businessId: "00019601" + id: 1219 + billingCycle: false + payButtonOnInvoices: false + enableAdvancedOptions: false + partialPayment: false + status: PENDING + createdAt: "2025-06-30T14:48:39.635034" + mode: LIVE + - invoiceId: 2039 + invoiceNo: SBT-INV-002039 + totalAmount: 9137.50 + subTotal: 8500.00 + publicKey: SBPUBK_V1YL57ICZQSNCADEWE5XEVTNB72TLWZA + testKey: SBTESTPUBK_wLVXnn6YuGaTlOpUESrR7TzFwaDb2auC + supportEmail: skylah@mailinator.com + receiversName: Muyiwa Akintade + customerEmail: janesmith@emaildomain.com + businessName: Skylah Integrated Services Limited + tax: 637.50 + dueDate: "2025-07-09" + currency: NGN + invoiceItems: + - itemName: Bluetooth Pods + unitPrice: 2500.00 + vat: 187.50 + amount: 2500.00 + quantity: 1 + - itemName: Quest 10 + unitPrice: 6000.00 + vat: 450.00 + amount: 6000.00 + quantity: 4 + customer: + externalIdentify: "2784824" + businessName: Muyiwa Akintade + customerEmail: janesmith@emaildomain.com + businessId: "00019601" + id: 1219 + billingCycle: false + payButtonOnInvoices: false + enableAdvancedOptions: false + partialPayment: false + status: PENDING + createdAt: "2025-07-07T12:30:51.227383" + mode: LIVE + code: "00" + # invoice by invoiceNo + GetInvoiceByInvoiceNumberResponse: + summary: Example response for Get Invoice by Customer Email + value: + payload: + - invoiceId: 2037 + invoiceNo: SBT-INV-002037 + totalAmount: 9137.50 + subTotal: 8500.00 + publicKey: SBPUBK_V1YL57ICZQSNCADEWE5XEVTNB72TLWZA + testKey: SBTESTPUBK_wLVXnn6YuGaTlOpUESrR7TzFwaDb2auC + supportEmail: skylah@mailinator.com + receiversName: Muyiwa Akintade + customerEmail: janesmith@emaildomain.com + businessName: Skylah Integrated Services Limited + tax: 637.50 + dueDate: "2025-07-01" + currency: NGN + invoiceItems: + - itemName: Bluetooth Pods + unitPrice: 2500.00 + vat: 187.50 + amount: 2500.00 + quantity: 1 + - itemName: Quest 10 + unitPrice: 6000.00 + vat: 450.00 + amount: 6000.00 + quantity: 4 + customer: + externalIdentify: "2784824" + businessName: Muyiwa Akintade + customerEmail: janesmith@emaildomain.com + businessId: "00019601" + id: 1219 + billingCycle: false + payButtonOnInvoices: false + enableAdvancedOptions: false + partialPayment: false + status: PENDING + createdAt: "2025-06-30T14:48:39.635034" + mode: LIVE + code: "00" + # invoice by invoiceNo + GetInvoiceByOrderNumberResponse: + summary: Example response for Get Invoice by Customer Email + value: + payload: + - invoiceId: 2037 + invoiceNo: SBT-INV-002037 + totalAmount: 9137.50 + subTotal: 8500.00 + publicKey: SBPUBK_V1YL57ICZQSNCADEWE5XEVTNB72TLWZA + testKey: SBTESTPUBK_wLVXnn6YuGaTlOpUESrR7TzFwaDb2auC + supportEmail: skylah@mailinator.com + receiversName: Muyiwa Akintade + customerEmail: janesmith@emaildomain.com + businessName: Skylah Integrated Services Limited + tax: 637.50 + dueDate: "2025-07-01" + currency: NGN + invoiceItems: + - itemName: Bluetooth Pods + unitPrice: 2500.00 + vat: 187.50 + amount: 2500.00 + quantity: 1 + - itemName: Quest 10 + unitPrice: 6000.00 + vat: 450.00 + amount: 6000.00 + quantity: 4 + customer: + externalIdentify: "2784824" + businessName: Muyiwa Akintade + customerEmail: janesmith@emaildomain.com + businessId: "00019601" + id: 1219 + billingCycle: false + payButtonOnInvoices: false + enableAdvancedOptions: false + partialPayment: false + status: PENDING + createdAt: "2025-06-30T14:48:39.635034" + mode: LIVE + code: "00" diff --git a/test.html b/test.html new file mode 100644 index 0000000..2efeed3 --- /dev/null +++ b/test.html @@ -0,0 +1,723 @@ + + + + + + SeerBit API Reference + + + + + + + + + +

SeerBit API Reference (1.0)

Download OpenAPI specification:Download

Authentication

Bearer

Security Scheme Type API Key
Header parameter name: Authorization

Basic

Security Scheme Type HTTP
HTTP Authorization Scheme basic

AUTHENTICATION

Generate Encrypted Secret Key

To make API calls on SeerBit, you will be required to pass a bearer token. To generate a token simply pass your pubic and secret key to rceive a token to process further API calls.

+
Request Body schema: application/json
key
required
string

This consist of the PrivateKey and the publicKey separated with a '.' in the middle(eg:{privateKey.publicKey}

+

Responses

Request samples

Content type
application/json
{
  • "key": "SBTESTSECK_9Cb8dbqR5Rc2JwZaa77P5QYHzQaeGUcrkEMD1dEi.SBTESTPUBK_9sN3TuLgW6a9redEfY48cKKkUa09Pz2u"
}

Response samples

Content type
application/json
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

STANDARD CHECKOUT

Generate Hash

This is used to ensure the request payload has not been altered

+
Request Body schema: application/json
publicKey
required
string

This is the merchant public key.

+
amount
required
string

This is the amount to be paid.

+
currency
required
string

This is the currency the transaction is to be carried out in.

+
country
required
string

This is the country from which the transaction is been carried out from

+
paymentReference
required
string

This is the unique identifier for a transaction, to be generated by merchant.

+
email
required
string

This is the email of the customer.

+
productId
required
string

This is the product id entered by the merchant.

+
productDescription
required
string

This is the product description supplied by the merchant.

+
callbackUrl
required
string

Responses

Request samples

Content type
application/json
{
  • "publicKey": "SBTESTPUBK_9sN3TuLgW6a9redEfY48cKKkUa09Pz2u",
  • "amount": "10.00",
  • "currency": "NGN",
  • "country": "NG",
  • "paymentReference": "3791090233047WZ73QN",
  • "email": "mamadou.diouf@intouchgroup.net",
  • "productId": "15013",
  • "productDescription": "touch badge",
  • "callbackUrl": "https://gutouch.com"
}

Response samples

Content type
application/json
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

Payment Link From Checkout

SeerBit Checkout Standard Initialises a transaction from merchants server to generate a payment link which redirects your customers to a page to make payment and after payment has been made the customer is redirected back to the merchants website.

+
Authorizations:
Request Body schema: application/json
publicKey
required
string

This is the merchant public key.

+
amount
required
string

This is the amount to be paid.

+
currency
required
string

This is the currency the transaction is to be carried out in.

+
country
required
string

This is the country from which the transaction is been carried out from

+
paymentReference
required
string

This is the unique identifier for a transaction, to be generated by merchant.

+
email
required
string

This is the email of the customer.

+
productId
required
string

This is the product id entered by the merchant.

+
productDescription
required
string

This is the product description supplied by the merchant.

+
callbackUrl
required
string

This is the callback url supplied by the merchant so that Seerbit can redirect back to it .

+
hash
required
string

This is the hash of the concatenated string for payment. Check hash module for more clarification.

+
hashType
required
string

This refers to the hash type used in generating the hash

+

Responses

Request samples

Content type
application/json
{
  • "publicKey": "SBTESTPUBK_9sN3TuLgW6a9redEfY48cKKkUa09Pz2u",
  • "amount": "10.00",
  • "currency": "NGN",
  • "country": "NG",
  • "paymentReference": "P791090233047WZ73QN",
  • "email": "mamadou.diouf@intouchgroup.net",
  • "productId": "15013",
  • "productDescription": "touch badge",
  • "callbackUrl": "https://gutouch.com",
  • "hash": "cfb5464ea21cce315ea72fb28f7ea45c4b61c443783eeff82dea98e57d445e15",
  • "hashType": "sha256"
}

Response samples

Content type
application/json
{}

ORDER CHECKOUT

Create Order Before Payment

Create an order before payment

+
Authorizations:
Request Body schema: application/json

Responses

Request samples

Content type
application/json
{
  • "email": "test@mvaa.com",
  • "publicKey": "SBTESTPUBK_9sN3TuLgW6a9redEfY48cKKkUa09Pz2u",
  • "paymentReference": "2PPTG108Q13432E29P23R5L6W93I9",
  • "fullName": "",
  • "orderType": "BULK_BULK",
  • "mobileNumber": "",
  • "country": "NG",
  • "currency": "NGN",
  • "amount": "250.00",
  • "orders":
    [
    ]
}

Response samples

Content type
application/json
{}

Create Order After Payment

Create an order after payment

+
Authorizations:
Request Body schema: application/json

Responses

Request samples

Content type
application/json
{
  • "paymentReference": "0w0eimkizc41602513327447",
  • "publicKey": "SBTESTPUBK_9sN3TuLgW6a9redEfY48cKKkUa09Pz2u",
  • "orders":
    [
    ]
}

Response samples

Content type
application/json
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

Update Order

Update an order

+
Authorizations:
Request Body schema: application/json

Responses

Request samples

Content type
application/json
{
  • "paymentReference": "0w0eimkizc41602513327447",
  • "publicKey": "SBTESTPUBK_9sN3TuLgW6a9redEfY48cKKkUa09Pz2u",
  • "orders":
    [
    ]
}

Response samples

Content type
application/json
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

Get Orders

Get a list of orders

+
Authorizations:

Responses

Response samples

Content type
application/json
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

Get an Order with Payment Reference

Get order details with payment reference

+
Authorizations:

Responses

Response samples

Content type
application/json
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

Get Order with Order Id

Get order details with OrderId

+
Authorizations:

Responses

Response samples

Content type
application/json
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

PAYMENT METHOD

Initiate Payment

Accept more payments with our unified payments API. Accept payments from all major cards and the most popular local and alternative payment methods all in a single integration.

+
Authorizations:
Request Body schema: application/json

Responses

Request samples

Content type
application/json
Example
{
  • "fullName": "john doe",
  • "email": "johndoe@gmail.com",
  • "mobileNumber": 248360953,
  • "publicKey": "SBPUBK_QGOX9NBAHWDYY1PAFSG2PTDOSSZYEWXM",
  • "paymentReference": "O456S5077907982QWEuWAT05M",
  • "deviceType": "nokia 3310",
  • "sourceIP": "1.0.1.0",
  • "currency": "GHS",
  • "productDescription": "snacks",
  • "country": "GH",
  • "network": "MTN",
  • "voucherCode": "",
  • "fee": "0.00",
  • "amount": "1.00",
  • "productId": "grocery",
  • "paymentType": "MOMO"
}

Response samples

Content type
application/json
Example
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

Get Banks

Get list of banks

+

Responses

Response samples

Content type
application/json
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

MOMO

OTP Momo

When making MOMO transfers, and OTP is required to complete the payment

+
Authorizations:
Request Body schema: application/json
linkingReference
required
string

This is the internal gateway reference

+
otp
required
string

This is the TOKEN sent to customer’s phone or email

+

Responses

Request samples

Content type
application/json
{
  • "linkingReference": "CF630837081601460887752",
  • "otp": "81015"
}

Response samples

Content type
application/json
Example
null

NON 3DS PAYMENT

Charge Card

This payment option is used to charge non 3d transactions

+
Authorizations:
Request Body schema: application/json

Responses

Request samples

Content type
application/json
{
  • "publicKey": "SBTESTPUBK_dhrpzbRpR34l6VmqkCFOKA94L5E1jSTu",
  • "amount": "10.00",
  • "fullName": "Diei Okechukwu Peter",
  • "mobileNumber": 8030540611,
  • "currency": "NGN",
  • "country": "NG",
  • "paymentReference": "NGN0000037Q35",
  • "email": "okechukwu.diei2@gmail.com",
  • "productId": "Foods",
  • "productDescription": "RASPBERRY",
  • "cardNumber": "5123450000000008",
  • "expiryMonth": "05",
  • "expiryYear": "21"
}

Response samples

Content type
application/json
Example
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

CARD

Check Status

This Operation allows you to check the status of a transaction via the status check api. This is done by making a Get request to the endpoint below with your payment reference.

+
Authorizations:

Responses

Response samples

Content type
application/json
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

ACCOUNT

Validate Transaction

This option is used to complete an account transaction, when OTP is required

+
Authorizations:
Request Body schema: application/json
linkingReference
required
string

This is the internal gateway reference

+
otp
required
string

This is the TOKEN sent to customer’s phone or email

+

Responses

Request samples

Content type
application/json
{
  • "linkingReference": "F092648971601293723061",
  • "otp": "123456"
}

Response samples

Content type
application/json
Example
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

TOKENIZE

Tokenize a Card

In order to store your customers payment details, you need to pass some additional parameter when making the first payment request using the payments/tokenize endpoint, the Cvv field and pin are optional(this could be null). After the first payment is made, the payment details is collected and a token is generated for it which is then stored for future use.

+
Authorizations:
Request Body schema: application/json

Responses

Request samples

Content type
application/json
{
  • "publicKey": "SBPUBK_OMX6ZNRZPLIHQ9Y0ZG6FCNR0EAYIGIAT",
  • "amount": "0.00",
  • "fullName": "john doe",
  • "mobileNumber": 8033456599,
  • "currency": "NGN",
  • "country": "NG",
  • "paymentReference": "KES0092992991",
  • "email": "johndoe@gmail.com",
  • "productId": "Foods",
  • "productDescription": "RASPBERRY",
  • "cardNumber": "5123450000000008",
  • "cvv": "100",
  • "expiryMonth": "05",
  • "expiryYear": "21"
}

Response samples

Content type
application/json
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

AUTHORISE

Authorise

In SeerBit API, the term “authorisation” indicates, that payment is authorised but not captured. This allows a merchant to cancel transaction at their discretion, typically based but not limited to fraud-related activities. This authorisation state is valid for a limited period of time, which provides a window to cancel the transaction.

+
Authorizations:
Request Body schema: application/json

Responses

Request samples

Content type
application/json
Example
{
  • "paymentReference": "PREAUTH124456789798765k3K1CB0",
  • "publicKey": "SBTESTPUBK_dhrpzbRpR34l6VmqkCFOKA94L5E1jSTu",
  • "cardNumber": "5123450000000008",
  • "cvv": "100",
  • "expiryMonth": "05",
  • "expiryYear": "21",
  • "currency": "NGN",
  • "country": "NG",
  • "productDescription": "preauth test capture",
  • "amount": "100.00",
  • "email": "johndoe@gmail.com",
  • "fullName": "john doe"
}

Response samples

Content type
application/json
Example
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

3DS Authorise

PIN and CVV are not Required to complete Transaction. Authorization is completed on 3DS.

+
Authorizations:
Request Body schema: application/json

Responses

Request samples

Content type
application/json
{
  • "paymentReference": "30451B789S987643108hgfdsfP6W",
  • "publicKey": "SBPUBK_OMX6ZNRZPLIHQ9Y0ZG6FCNR0EAYIGIAT",
  • "cardNumber": "5242820813772165",
  • "cvv": "865",
  • "expiryMonth": "02",
  • "expiryYear": "22",
  • "currency": "NGN",
  • "country": "NG",
  • "productDescription": "preauth test capture",
  • "amount": "1.00",
  • "email": "johndoe@gmail.com",
  • "fullName": "john doe",
  • "callbackUrl": "https://google.com"
}

Response samples

Content type
application/json
Example
{}

PREAUTHORIZATION

Capture

Captures a payment if supported by the payment method.

+
Authorizations:
Request Body schema: application/json
paymentReference
required
string

This is the unique identifier for a transaction, to be generated by merchant.

+
currency
required
string

This is the currency the transaction is to be carried out in.

+
country
required
string

This is the country the customer is doing the transaction from

+
productDescription
required
string

This is the product description supplied by the merchant.

+
amount
required
string

This is the amount to be paid.

+
publicKey
required
string

This is the merchant public key.

+

Responses

Request samples

Content type
application/json
{
  • "paymentReference": "PREAUTH124456789798765k321CB0",
  • "currency": "NGN",
  • "country": "NG",
  • "productDescription": "preauth test capture",
  • "amount": "5.10",
  • "publicKey": "SBTESTPUBK_dhrpzbRpR34l6VmqkCFOKA94L5E1jSTu"
}

Response samples

Content type
application/json
Example
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

Refund

Refunds a payment if supported by the payment method.

+
Authorizations:
Request Body schema: application/json
paymentReference
required
string

This is the unique identifier for a transaction, to be generated by merchant.

+
currency
required
string

This is the currency the transaction is to be carried out in.

+
country
required
string

This is the country the customer is doing the transaction from

+
productDescription
required
string

This is the product description supplied by the merchant.

+
amount
required
string

This is the amount to be paid.

+
publicKey
required
string

This is the merchant public key.

+

Responses

Request samples

Content type
application/json
{
  • "paymentReference": "PREAUTH124456789798765432CB0",
  • "currency": "NGN",
  • "country": "NG",
  • "productDescription": "preauth test capture",
  • "amount": "5.10",
  • "publicKey": "SBTESTPUBK_dhrpzbRpR34l6VmqkCFOKA94L5E1jSTu"
}

Response samples

Content type
application/json
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

Cancel

Cancel a payment if supported by the payment method.

+
Authorizations:
Request Body schema: application/json
paymentReference
required
string

This is the unique identifier for a transaction, to be generated by merchant.

+
publicKey
required
string

This is the merchant public key.

+
country
required
string

This is the country the customer is doing the transaction from

+
productDescription
required
string

This is the product description supplied by the merchant.

+

Responses

Request samples

Content type
application/json
{
  • "paymentReference": "PREAUTH124456789798765k3L1CB0",
  • "publicKey": "SBTESTPUBK_dhrpzbRpR34l6VmqkCFOKA94L5E1jSTu",
  • "country": "NG",
  • "productDescription": "test void"
}

Response samples

Content type
application/json
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}

RECURRENT

Initiate Subscription

To complete this transaction, merchant is expected to redirect to the 3DSecure site via the redirect URL provided with the response below. However if the redirect url is not returned and the code is S20 and the message is transaction is pending, the Validate OTP endpoint should be called as the customer would have received a token either by email or sms on the customers phone. To get the subscription created or the status of a subscription for the customer, the GET Subscription endpoint is called by passing the paymentReference as billingId.

+
Authorizations:
Request Body schema: application/json

Responses

Request samples

Content type
application/json
{
  • "publicKey": "SBTESTPUBK_9sN3TuLgW6a9redEfY48cKKkUa09Pz2u",
  • "paymentReference": "TPR2181t55PKR540RPP1U1W4392WO",
  • "planId": "",
  • "cardNumber": "5123450000000008",
  • "expiryMonth": "05",
  • "callbackUrl": "https://www.google.com",
  • "expiryYear": "21",
  • "cvv": "100",
  • "amount": "1000.00",
  • "currency": "NGN",
  • "productDescription": "Pilot Test Subscription",
  • "productId": "Terrain",
  • "country": "NG",
  • "startDate": "2020-02-25 00:00:00",
  • "cardName": "Kolade Samuel",
  • "billingCycle": "WEEKLY",
  • "email": "akintoyekolawole@gmail.com",
  • "mobileNumber": "08033456500",
  • "customerId": "12345678901234",
  • "pin": "0999",
  • "type": "3DSECURE",
  • "billingPeriod": "1",
  • "subscriptionAmount": true
}

Response samples

Content type
application/json
{}

Get a Subscription

Get customer subscription

+
Authorizations:

Responses

Response samples

Content type
application/json
{
  • "status": "SUCCESS",
  • "data":
    {
    }
}
+ + + + \ No newline at end of file