Server-to-Server

A server-to-server connection, commonly referred to as a direct integration, allows communication between two servers:

  • the merchant
  • payment gateway

 

A direct transaction can be conducted by asking for the card information on the payment page. Customers may complete a card payment without being transferred to the payment gateway’s payment page, resulting in speedier checkout, a more seamless user experience, and greater merchant control over the design and feel of the payment page. A server-to-server interface is appropriate if you gather or keep payment data before transferring it to the payment gateway for processing.

Initial Payments POST request:

POST https://api.quaife.net/v1/transactions/

Transaction types

Transaction type

Auth

Payment methods

All card payment methods

Description

Payment authorisation is when the merchant submits a transaction request. Funds are reserved to determine if the transaction should be captured or declined.
Purchase
All payment methods
Funds are automatically cleared if authorisation is successful.
Capture
All card payment methods
Auth transaction is converted to Capture type when Captured.
Refund
All card payment methods, specific payment methods
Refund request of the captured transaction.
Payout
All card payment methods, specific payment methods
Payout/Withdrawal request
Reversal
All card payment methods, specific payment methods

Reversal request

Void
All card payment methods, specific payment methods
Void request
PaymentPage
All payment methods
Hosted payment page mode. The gateway provides a page where customer is redirected and enters payment details

Transaction statuses

Transaction type

Auth

Status

Pending

Description

For 3DS payments, is displayed while the system waits for the customer to pass the required checks.

Transition to

Declined

Autorised

Declined

The Auth request is not approved by the gateway or by the cardholder’s issuing bank.

*

Authorised
The payment has been approved by the issuer and the amount is held on the customer’s card.

Voided

Captured

Captured
The funds of a successfully authorized transaction have been captured.

*

Voided
The Auth transaction is voided successfully upon your request, or our system automatically voided it for not being captured within seven days of being authorized.

*

Purchase
Pending
For 3DS payments, is displayed while the system waits for the customer to pass the required checks. For Alternative Payment Methods, it is a temporary status before a transaction is captured or declined.
Declined
Captured
Declined
The payment is not approved
*
Captured
The payment is successfully processed
Refunded
PartiallyRefunded
Reversed
Chargeback
ChargebackResolved
Refunded
A refund was successfully issued to the customer and funds were transferred from your merchant account back to the customer
*
PartiallyRefunded
A partial refund was successfully issued to the customer and funds were transferred from your merchant account back to the customer
Refunded
PartiallyRefunded
Reversed
The funds were successfully reversed to the customer
*
Chargeback
*
ChargebackResolved
*
Refund, Reversal
Pending
A temporary status before a request is captured or declined
Declined
Captured
Declined
The request is not approved
*
Captured
The request is successfully captured
*
Payout
Pending
Payout request received and will be processed
Declined
Captured
Sent (Only used for ETRANSFER payouts)
Payout has been sent and waiting for customer to accept
Declined
Captured
Declined
Payout is not approved
*
Captured
Payout is successfully capture
*
Void
Captured
A void request was successfully captured
*
PaymentPage
Requested
PaymentPageOpened PaymentPageExpired PaymentPageUsed
PaymentPageOpened
PaymentPageExpired PaymentPageUsed
PaymentPageExpired
*
PaymentPageUsed
*

* final status

Handling next actions

Some payment methods require additional steps, such as authentication, in order to complete the payment process.

The nextAction property exposes the next step that your integration must handle in order to complete the payment. The type of possible next actions can differ between various payment methods.

Type

Description

RedirectToUrl
The customer needs to be sent to the provided URL to authenticate the payment. The URL is provided in the Links object
Authorization
The customer needs provide additional parameter in order to authenticate the payment

Authorization mode

Description

PIN
Card Internet PIN
AVS
Address Verification System
USSD
Authorization mode for USSD payment method
OTP
One time password
Authorization request If the request for creating a transactions has returned the nextAction parammeter with PIN or AVS mode:

{

“nextAction”: {
“type”: “Authorization”,
“mode”: “AVS”,
“instructions”: “fields:[city,address,state,country,postcode]”
}

The customer must provide the additional data that should be sent using the Authorize Transaction POST request:
POST https://api.quaife.net/v1/transactions/{id}/authorization

Path parameters

Parameter

Type

Description

id
string
The Auth request identifier

Request body parameters

Parameter

Type

Mode

Description

authorizationMode
string
Authorization mode (PIN or AVS)
pin
string
PIN
A card internet PIN
address
string
AVS
A customer’s address
city
string
AVS
A customer’s city
country
string
AVS
A customer’s country
postcode
string
AVS
A customer’s postcode
state
string
AVS
A customer’s state

JSON Request object

{
“authorizationMode”: “AVS”,
“address”: “My address”,
“postcode”: “5235”,
“city”: “Milet”,
“country”: “NG”,
“state”: “AN”
}

The request response should be the same as the transaction response.

Capture Auth transaction

POST https://api.quaife.net/v1/transactions/{id}/captures

Path parameters

Parameter

Type

Description

id
string
The Auth request identifier

Path parameters

Parameter

Type

Description

reference
string <= 50
A reference you can later use to identify this capture request

JSON Request object

{
“reference”: “ORD-345235”
}

JSON Request object

{
“id”: “trn_1q0nv069uv”,
“status”: “Captured”,
“created”: “2020-12-18T15:52:05.9450419Z”
}

Create transaction with existing payment source

Refer to ‘Sources’ section
POST https://api.quaife.net/v1/transactions/
JSON Request object

{
“amount”:10.26,
“currency”:”EUR”,
“action”:”Authorize”,
“customer”:{
“firstName”: “{{$randomFirstName}}”,
“lastName”: “{{$randomLastName}}”,
“email”: “john@doe.com”,
“phone”: “+234323423”,
“accountReference”:”acc0002″,
“address”: {
“streetAddress”:”StreetAddress”,
“city”: “Boston”,
“postcode”:”01010″,
“country”:”US”
}
},
“source”:{
“sourceId”: “src_be1d92383c4d4a0d99”,
“cvc”: “123”,
},
“statementDescriptor”:”Purchase my-shop.com”,
“Description”:”T-Shirt XXL”,
“Reference”:”ORD24234″,
“ipAddress”:”117.174.147.27″,
“successUrl”:”https://example.com/home/success”,
“cancelUrl”:”https://example.com/home”,
“failureUrl”:”https://example.com/home/cancel”
}

JSON Response Object

{
“id”: “trn_e0e07e011e56”,
“status”: “Requested”,
“amount”: 10.26,
“created”: “2020-12-18T15:24:13.8524886Z”,
“links”: [
{
“href”: “https://api.quaife.net/payment-page/6dbf69a5e8ed48e2bf3ccf16bdfe914c/info”,
“rel”: “redirect”,
“method”: “GET”
}
]
}

Create transaction with existing customer

POST https://api.quaife.net/v1/transactions/
JSON Request object
						

{
“amount”:10.26,
“currency”:”EUR”,
“action”:”Authorize”,
“customer”:{
“customerId”: “cus_10fc992b43d045fa83”
},
“source”:{
“paymentMethod”: “visa”,
“holder”: “{{$randomFirstName}} {{$randomLastName}}”,
“cardNumber”:”5101080000000009″,
“expiryMonth”: 12,
“expiryYear”: 20,
“cvc”: “123”,
“billingAddress”: {
“streetAddress”:”StreetAddress”,
“city”: “Boston”,
“postcode”:”01010″,
“country”:”US”
}
},
“statementDescriptor”:”Purchase my-shop.com”,
“Description”:”T-Shirt XXL”,
“Reference”:”ORD24234″,
“ipAddress”:”188.2.20.211″,
“successUrl”:”http://68.183.64.149:5005/home/success”,
“cancelUrl”:”http://68.183.64.149:5005″,
“failureUrl”:”http://68.183.64.149:5005/home/cancel”
}

JSON Response Object  
						

{
“id”: “trn_e0e07e011e56”,
“status”: “Requested”,
“amount”: 10.26,
“created”: “2020-12-18T15:24:13.8524886Z”,
“links”: [
{
“href”: “https://api.quaife.net/payment-page/6dbf69a5e8ed48e2bf3ccf16bdfe914c/info”,
“rel”: “redirect”,
“method”: “GET”
}
]
}

Get transaction details

GET https://api.quaife.net/v1/transactions/{id}
Path parameters  
						

Parameter

Type

Description

id
string
The transaction identifier
JSON Response Object

{
“id”: “trn_0w62pasx9p”,
“status”: “Pending”,
“amount”: 10.55,
“currency”: “RUB”,
“source”: {
“paymentMethod”: “Yandex.Money”,
“billingAddress”: ” “
},
“customer”: {
“id”: “cus_53dq0jhh70”,
“email”: “jxxx2@doe.com”,
“phone”: “+234323423”,
“accountReference”: “acc0002”,
“address”: ” “
},
“reference”: “ORD24234”,
“created”: “2020-12-18T15:59:28.9771”
}

Get transaction details by order reference

POST https://api.quaife.net/v1/transactions/reference/{orderReference}
Path parameters

Parameter

Type

Description

orderReference
string
The merchant order reference
JSON Response Object

[
{
“id”: “trn_mwpij3dzqj”,
“status”: “Declined”,
“amount”: 3.13,
“currency”: “NGN”,
“reference”: “0cd7754a-178a-433d-9878-20e222a2f83b”,
“created”: “2021-10-21T08:44:04.711433”,
“recurring”: false,
“merchantInitiated”: false,
“firstRecurring”: true,
“refundRequests”: [],
“payoutRequests”: []
}
]

The response is an array of transactions that match the order reference. If the reference is unique, the response will return one object.

List all transactions

GET https://api.quaife.net/v1/transactions
Query parameters

Parameter

Type

Description

pageIndex
integer
The pageIndex number indicating which set of items will be returned in the response. So, the combination of pageIndex=1 and pageSize=20 returns the first 20 items. The combination of pageIndex=2 and pageSize=20 returns items 21 through 40
pageSize
integer

The number of items to return in the response

dateFrom
DateTime
From DateTime UTC parameter
dateTo
DateTime
To DateTime UTC parameter
JSON Response Object

{
“pageIndex”: 0,
“pageSize”: 10,
“count”: 1,
“data”: [
{
“id”: “trn_cpade0jsrg”,
“status”: 4,
“amount”: 1.0,
“currency”: “EUR”,
“source”: {
“id”: “510108xxxxxx0009”,
“paymentMethod”: “VISA”,
“billingAddress”: “StreetAddress 01010 Boston United States of America”
},
“customer”: {
“id”: “cus_920ckcwa0o”,
“email”: “jxxxx2@doe.com”,
“phone”: “+234323423”,
“accountReference”: “acc0002”,
“address”: ” “
},
“reference”: “ORD24234”,
“created”: “2021-01-06T05:58:05.764676”,
“refundRequests”: [],
“payoutRequests”: []
},
{
“id”: “trn_dnwmompvum”,
“status”: 2,
“amount”: 1.0,
“currency”: “EUR”,
“source”: {
“id”: “510108xxxxxx0009”,
“paymentMethod”: “VISA”,
“billingAddress”: “StreetAddress 01010 Boston United States of America”
},
“customer”: {
“id”: “cus_8yfftsj8vg”,
“email”: “jxxxx2@doe.com”,
“phone”: “+234323423”,
“accountReference”: “acc0002”,
“address”: ” “
},
“reference”: “ORD24234”,
“created”: “2021-01-06T05:55:52.883538”,
“refundRequests”: [],
“payoutRequests”: []
}
]
}

Get balance for CAD payment methods

GET https://api.quaife.net/v1/balances/check-balance
JSON Response Object

{
“availableBalance”: “5.54”,
“balance”: “5.54”,
“unreportedCredits”: “0”,
“unreportedDebits”: “0”,
“unreportedTime”: “2022-02-18T18:44:29.579000Z”
}

MERCHANT

Should you be interested in becoming a merchant, then please fill out the short form below and one of our specialists will be in touch shortly.

SIGN UP

We are delighted that you are considering using Quaife as your payment partner. Fill in the form below & let’s get started.