Payment
Ozan avatar
Written by Ozan
Updated over a week ago

Every Payment request body consists of :

  • command

  • payment data

Each payment type is an object that must contain the payment name and the amount paid. Multiple payment types occur when a payment or bill is split into different payment types.

The name of the payment type allows us to identify the individual payment amount made by each payment type in order to make the correct amount of payment in case of refunds.

GET

Description:
Fetches payment information using order id. A payment array and the total bill amount will be fetched. The payments array consists of different payment types with different payment amounts. This command will be helpful when processing refunds.

Request Body:

JSON

{ 
command: 'Payment',
method: 'get',
version: '1.0',
order_id: 255421
}

Response Body:

JSON

{ 
command: 'Payment',
method: 'get',
version: '1.0',
status_code: 200,
error: null,
total_amount: 48.50,
payments: [
{ name: 'stripe',
data: {
amt: 15.50,
transaction_id: '2322511',
type: 'sale'
}
},
{
name: 'moneris',
data: {
amt: 25.00,
transaction_id: '102358',
emv_data: {
AC: '3554210',
AID: 'a00081102',
AIDNAME: 'MASTERCARD Debit/Credit',
APPLAB: 'MASTERCARD Credit',
ARC: '00',
CURR: 'CAD$',
CVM: 'No CVM',
IAD: '000125132',
MODE: 'Issuer',
PAN:'************2432',
TVR: '0000000000'
},
type: 'sale'
}
},
{
name: 'Oliver Cash',
data: {
amt: 8.00
}
}
]
}

Parameters:

Attribute Name

Attribute Type

Description

Enum

Required (binary)

command

string

High level command name to interact with Oliver

null

1

method

string

These correspond to create, read, update, and delete (or CRUD) operations

null

1

version

string

The version of the command used

null

1

order_id

string

Unqiue identifier of an order

null

1

POST

Description:
Add a new payment record with transaction details (payment name, transaction id, amount, emv data, etc) to Oliver.

Request Body:

JSON

{ 
command: 'Payment',
method: 'post',
version: '1.0',
data: {
payment_type: {
name: 'fortispay',
payment_ID: uidv4()
data: {
amt: 40.00,
transaction_id: 64224,
emv_data: {
AC: '400012531',
AID: 'a000532114',
AIDNAME: 'VISA Debit/Credit',
APPLAB: 'VISA Credit',
ARC: '00',
CURR: 'USD$',
CVM: 'No CVM',
IAD: '0654134452',
MODE: 'Issuer',
PAN: '************2532',
TVR: '0000000000'
}
}
}
}
}

Response Body:

JSON

{ 
command: 'Payment',
method: 'post',
version: '1.0',
status: 200,
error: null
}

Parameters:

Attribute Name

Attribute Type

Description

Enum

Required (binary)

command

string

High level command name to interact with Oliver

null

1

method

string

These correspond to create, read, update, and delete (or CRUD) operations

null

1

version

string

The version of the command used

null

1

payment_type

js object

A js object that contains details about a transaction that is processed by a specific payment provider. It consists of name, payment_ID and data attributes

null

1

name

string

Name of the payment provider

null

1

payment_ID

string

Unique identifier generated by uuidv4 assigned to each payment object

null

1

amt

float, 2 decimal places

Transaction amount

null

1

transaction_id

integer

Transaction ID generated by the payment provider

null

0

emv_data

js object

EMV data of a physical card transaction such as AC, AID, AIDNAME, IAD, PAN etc

null

0

Did this answer your question?