Card Payment
Accept debit and credit card payments.
Cards are one of the most popular ways to make payments online with a large global reach. SeerBit supports the most popular card types with a simple implentation.
Learn about the available card type and countries

Card Payment Process

    1.
    Customers enters card details on merchant website.
    2.
    SeerBit checks that the details provided are valid (e.g the expiry date entered is not in the past)
    3.
    Authentication : Some cards may prompt the card holder to enter a pin or a one time password sent to the card holder's phone or email to authenticate the transaction.
    4.
    Authorization : The bank checks for sufficient funds on the card holder's account. if successful the amount is held in the customers account and released to the merchant on capture.
    5.
    Capture : The money moves from the card holder's account (issuing bank) to the merchant account immediately after authorization
Note: By default, all card payments are captured immediately after authorization unless a capture delay or manual capture has been setup by the merchant. Read on how to setup a pre-authorized payment

Initiate Card Transaction

How it works

    1.
    Collect the customers details (Fullname, Email and Mobile Number) and Card details.
    2.
    Make a request to the payment service with the payment/initiates endpoint.
    3.
    Based on the cardholders card type the seerBit selects an auth method.

Scenario 1 (Verve card type)

Authentication
Request Body
Response Body
1
curl -X POST
2
https://seerbitapi.com/api/v2/payments/initiates
3
-H 'Content-Type: application/json'
4
-H 'Authorization: Bearer {token}
Copied!
1
{
2
"publicKey":"merchantPublicKey",
3
"amount":"100.00",
4
"fee":"10",
5
"fullName":"John Doe",
6
"mobileNumber":"08032000001",
7
"currency":"NGN",
8
"country":"NG",
9
"paymentReference":"LKJHGFDR123UI23992JN23R",
10
"email":"[email protected]",
11
"productId":"Foods",
12
"productDescription":"RASPBERRY",
13
"clientAppCode":"kpp64",
14
"redirectUrl":"",
15
"paymentType":"CARD",
16
"channelType":"Mastercard",
17
"deviceType":"Apple Laptop",
18
"sourceIP":"127.0.0.1:3456",
19
"cardNumber":"6280511000000095",
20
"cvv":"123",
21
"expiryMonth":"12",
22
"expiryYear":"26",
23
"pin":"0000",
24
"retry":"false",
25
"invoiceNumber":"1234567890abc123ac"
26
}
Copied!
1
{
2
"status": "SUCCESS",
3
"data": {
4
"code": "S20",
5
"payments": {
6
"paymentReference": "LKJHGFDR123UI23992JN23R",
7
"linkingReference": "F468778061587905955047"
8
},
9
"message": "Kindly enter OTP"
10
}
11
}
Copied!
    1.
    The customers gets prompted to enter card pin.
    2.
    After the customer enters the card pin, call the payment service again using payment/initiates endpoint.
    3.
    An OTP (one time password) is sent to the cardholders registered phone number or email to validate the transaction.
    4.
    To Validate the transaction Call the Validate OTP payments/otp endpoint with the customers OTP and Pass the transactions linking reference in the request body.
Authentication
Request Body
Response Body
1
curl -X POST
2
https://seerbitapi.com/api/v2/payments/otp
3
-H 'Content-Type: application/json'
4
-H 'Authorization: Bearer {token}
Copied!
1
{
2
"transaction":
3
{
4
"linkingreference":"F468778061587905955047",
5
"otp":"496865"
6
}
7
}
Copied!
1
{
2
"status": "SUCCESS",
3
"data": {
4
"code": "00",
5
"payments": {
6
"reference": "LKJHGFDR123UI23992JN23R",
7
"linkingreference": "F468778061587905955047"
8
},
9
"message": "Successful"
10
}
11
}
Copied!

Scenario 2 (Master Card and Visa Card)

This occurs for 3D secured card transactions
Read More about 3D Secured cards here
Request Body
Response Body
1
{
2
"publicKey":"merchantPublicKey",
3
"amount":"100.00",
4
"fee":"10",
5
"fullName":"John Doe",
6
"mobileNumber":"08032000001",
7
"currency":"NGN",
8
"country":"NG",
9
"paymentReference":"LKJHGFDR123UI23992JN23R",
10
"email":"[email protected]",
11
"productId":"Foods",
12
"productDescription":"RASPBERRY",
13
"clientAppCode":"kpp64",
14
"redirectUrl":"",
15
"paymentType":"CARD",
16
"channelType":"Mastercard",
17
"deviceType":"Apple Laptop",
18
"sourceIP":"127.0.0.1:3456",
19
"cardNumber":"5123450000000008",
20
"cvv":"100",
21
"expiryMonth":"05",
22
"expiryYear":"21",
23
"retry":"false",
24
"invoiceNumber":"1234567890abc123ac"
25
}
Copied!
1
{
2
"status": "SUCCESS",
3
"data": {
4
"code": "S20",
5
"payments": {
6
"paymentReference": "LKJHGFDR123UI23992JN23R",
7
"linkingReference": "F468778061587905955047",
8
"redirectUrl": "https://seerbitapigateway.com/seerbit/card-dispatch?sredref=F468778061587905955047"
9
},
10
"message": "Transaction is pending"
11
}
12
}
Copied!
    1.
    After the payment has been initiated, the card holder gets prompted to complete the payment on the card's bank page.
    2.
    For a successful initial call, code S20 will be returned with a redirect link in the redirectUrl field, merchant is expected to redirect to the link. Because of this merchant is expected to always pass the redirectUrl link that SeerBit should come back to after the payment is completed on 3Ds site.

Scenario 3

This occurs for card types that are non 3D secure
Authentication
Request Body
Response Body
1
curl -X POST
2
https://seerbitapi.com/api/v2/payments/charge
3
-H 'Content-Type: application/json'
4
-H 'Authorization: Bearer {token}
Copied!
1
{
2
"publicKey":"merchant public key",
3
"amount":"1.00",
4
"fullName":"john doe",
5
"mobileNumber":"08033456599",
6
"currency":"NGN",
7
"country":"NG",
8
"paymentReference":"92SQ2A3BCDE42RFR2AS122221",
9
"email":"[email protected]",
10
"productId":"Foods",
11
"productDescription":"RASPBERRY",
12
"cardNumber":"5123450000000008",
13
"cvv":"100",
14
"expiryMonth":"05",
15
"expiryYear":"21",
16
"pin":"1234"
17
}
Copied!
1
{
2
"status": "SUCCESS",
3
"data": {
4
"code": "00",
5
"payments": {
6
"paymentReference": "92SQ2A3BCDE42RFR2AS122221",
7
"linkingReference": "F611305721592735518716"
8
},
9
"message": "Successful"
10
}
11
}
Copied!

Parameter Fields

Parameter
Description
Type
publicKey
This is available after sign-up
dash board -> settings -> api keys.
String
Required
fullName
customer name
String
Optional
amount
amount to be paid
String
Required
fee
charge on transaction, customer or merchant to bear whom to bear this can be set on the dashboard by merchant
String
Optional
mobileNumber
customer phone number
String
Optional
currency
Currency to perform transaction
String
Required
country
Country the customer is performing transaction
String
Required
paymentReference
Unique payment reference/identifier, To be supplied by the Merchant
String
Required
email
Customer email address
String
Required
productId
Unique identification number of product, To be supplied by Merchant
String
Optional
productDescription
Narration of the transaction
String
Optional
clientAppCode
Extra Data
String
Optional
paymentType
This specifies the payment option used {CARD, ACCOUNT, TRANSFER}
String
Required
channelType
Type of card {mastercard, verve, visa}
String
Required
deviceType
Costumer's device
String
Optional
sourceIP
Customer IP Address
String
Optional
cardNumber
Customer's card number
String
Required
cvv
Three digit behind customer's card
String
Required
expiryMonth
Card expiration month
String
Required
expiryYear
Card expiration year
String
Required
pin
Card pin to authorise debit
String
Optional
retry
This should be passed as true for retrying a transaction with same reference. Note only Failed Transactions can be retried.
Boolean
Required
invoiceNumber
Unique identifier for invoice Transactions to the locate branch payment was made
String
Optional
message
Response message from SeerBit
code
Response code from SeerBit
linkingReference
SeerBit transaction unique identifier
Last modified 8mo ago