Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 116 Next »

These are all of the necessary endpoints required for Transactions (purchases, authorizations, captures, releases, returns).


POST /client-id/{client_id}/transactions

https://{posapi_url}/flexiti/pos-api/v2.5.1/client-id/{client_id}/transactions?lang=en

This service is the one used to post Deposits, In-Store Payments or Trade-Ins on the Customer Account.

You can post a transaction using one of the following: FlexitiCard number (VCC), Account number, or Customer ID.

Request Parameters:

Type

Parameter

Required

Details

HEADER

authorization

Yes

  • ASCII string (1000)

  • This is the word “Bearer” with a space and then the access_token given in oauth/token API response

  • Default value: Bearer {insert_bearer_token_from_oauth_here/token_api}

HEADER

x-reference-id

Yes

  • ASCII string (32)

  • GUID

  • Unique identifier for the flow for traceability purposes

PATH

client_id

Yes

  • ASCII string (100)

  • This is the Client ID given in the Developer User Account section

QUERY

lang


  • ASCII string (5)

  • Customer Preferred language

  • Available values: (en=English) or (fr=French)

  • Default value: en

BODY

transaction_type


Yes

  • ASCII string

  • This is the Transaction Type:

    • for Deposits, use "deposit”;

    • for In-Store Payments, use "instore_payment”;

    • for Trade-In, please use "tradein".

BODY

amount


  • number (18,2)

  • the Transaction Amount

  • this applies for all transaction types

BODY

vcc_number


  • number (16)

  • The Flexiti Card Number provided by the Customer

  • This is the FlexitiCard number (VCC)

BODY

account_number


  • number (14)

  • Flexiti Account Number retrieved from the /client-id/{client_id}/customers/lookup or the /client-id/{client_id}/customers/search endpoints

  • This is not the FlexitiCard number (VCC) or the Customer ID

BODY

customer_id


  • string (12)

  • Flexiti Customer ID

  • This is not the FlexitiCard number (VCC) or the Customer ID

BODY

verification_code

Yes

  • number (4)

  • Verification number provided in the Customer Verification service from the /account/{account_number}/verify endpoint

BODY

request_id

Yes for in-store channel

  • ASCII string (150)

  • This is the identifier for a verification to application/transaction/authorization flow.

BODY

external_location_id

Yes for in-store channel

  • ASCII string (100)

  • Used in the In-store channel

  • This is the merchant’s own location reference

BODY

external_employee_id

Yes for in-store channel

  • ASCII string (100)

  • Used in the In-store channel

  • This is the merchant’s own employee reference

Example Request:

Deposit

{
  "verification_code": 1234,
  "transaction_type": "deposit",
  "amount": "10.00",
  "account_number": "20076677",
  "request_id": "34561234", //if in-store channel
  "external_location_id" : "00-12345",  //if in-store channel
  "external_employee_id" :"12345-SMITH" //if in-store channel
}

In-store Payment

{
  "verification_code": 1234,
  "transaction_type": "instore_payment",
  "amount": "120.05",
  "account_number": "20076677",
  "request_id": "34561234", //if in-store channel
  "external_location_id" : "00-12345",  //if in-store channel
  "external_employee_id" :"12345-SMITH" //if in-store channel
}

Trade-In

{
  "verification_code": 1234,
  "validation": 390903,
  "transaction_type": "tradein",
  "amount": "120.05",
  "account_number": "20076677",
  "request_id": "34561234", //if in-store channel
  "external_location_id" : "00-12345",  //if in-store channel
  "external_employee_id" :"12345-SMITH" //if in-store channel
}

Success Response:

200 - Success - Deposit
{  
    "payment_protection": false,  
    "transaction_id": 167638,  
    "apr": 37.24,  
    "available_credit": 3528.93,  
    "term": "",  
    "admin_fee": 0,  
    "balance_after_purchase": 3528.88,  
    "payment_value": "0.05",  
    "promotional_amount": 0.05,  
    "air": 37.24,  
    "customer_confirmed": false,  
    "plan_id": 0,  
    "verified": true  
}
200 - Success - In-Store payment & Trade-in
{  
"transaction_id": "696952",  
"customer_name": "John",  
"customer_lname": "Smith",  
"total_amount": "120.05000",  
}


POST /client-id/{client-id}/authorization

https://{posapi_url}/flexiti/pos-api/v2.5.1/client-id/{client_id}/authorization

NOTE: the /authorization endpoint has been updated to version 2.5.1, reflected in the URI.

This endpoint to creates a credit authorization for a customer from a specific Merchant.

Credit authorizations could be for:

  • promotional purchases

  • regular purchase

Request Parameters:

Type

Parameter

Required

Details

HEADER

authorization

Yes

  • ASCII string (1000)

  • This is the word “Bearer” with a space and then the access_token given in oauth/token API response

  • Default value: Bearer {insert_bearer_token_from_oauth_here/token_api}

HEADER

x-reference-id

Yes

  • ASCII string (32)

  • GUID

  • Unique identifier for the flow for traceability purposes

PATH

client_id

Yes

  • ASCII string (100)

  • This is the Client ID given in the Developer User Account section

QUERY

lang


  • ASCII string (5)

  • Language the message and description parameters on the response will be displayed in

  • Available values: (en=English) or (fr=French)

  • Default value: en

BODY

account_number

Yes

  • number (14)

  • Flexiti Account Number retrieved from the /client-id/{client_id}/customers/lookup or the /client-id/{client_id}/customers/search endpoints

  • This is not the FlexitiCard number (VCC) or the Customer ID

BODY

vcc_number


No

  • ASCII string(16)

  • The Flexiti Card Number provided by the Customer

  • This is the FlexitiCard number (VCC)

  • To be used in a Business Card’s authorized User’s purchase, sent with the Master Account number

BODY

reference

No

  • ASCII String (40)

  • Merchant Order ID to be saved within the credit authorization

BODY

financing_option.transaction_type

Yes

  • ASCII String (20)

  • Type of transaction

  • Available values: promotional_purchase, regular_purchase

BODY

financing_option.plan_id

Yes for transaction_type = promotional_purchase

  • number (3)

  • Only applicable to Promotional Purchases

  • Plan ID

BODY

financing_option.term


Yes for transaction_type = promotional_purchase

  • number (3)

  • Only applicable to Promotional Purchases

  • Term

BODY

amount


Yes

  • number (18,2)

  • the Transaction Amount

  • this applies for all transaction types

BODY

auto_capture

Yes

  • boolean

  • This determines if an actual authorization occurs or a purchase (autorization and capture at the same time)

BODY

verification_code

Yes for in-store POS integrations.

Not to be passed for Online implementations using the Widget

  • number (4)

  • Verification number provided in the Customer Verification service from the /account/{account_number}/verify endpoint

BODY

sku_data.purchase_order

No

  • ASCII string (10)

  • This data is provided by a Merchant. If passed as part of the request, it will be displayed on the customer’s statement. We do not validate this data and assume you are passing an accurate representation of the transactions details.

  • Purchase Number For the Merchant

BODY

sku_data.shipping_total

No

  • number (18,2)

  • This data is provided by a Merchant. If passed as part of the request, it will be displayed on the customer’s statement. We do not validate this data and assume you are passing an accurate representation of the transactions details.

  • the Shipping total amount to be displayed, if applicable

BODY

sku_data.register_id

No

  • ASCII string (50)

  • This data is provided by a Merchant. If passed as part of the request, it will be displayed on the customer’s statement. We do not validate this data and assume you are passing an accurate representation of the transactions details.

  • The cashier machine where the transaction was placed

BODY

sku_data.transaction_discount_total

No

  • Integer (12,2)

  • This data is provided by a Merchant. If passed as part of the request, it will be displayed on the customer’s statement. We do not validate this data and assume you are passing an accurate representation of the transactions details.

  • Sum of all discounts on the order

BODY

sku_data.transaction_subtotal

No

  • Integer (12,2)

  • This data is provided by a Merchant. If passed as part of the request, it will be displayed on the customer’s statement. We do not validate this data and assume you are passing an accurate representation of the transactions details.

  • Sum of all totals for all items

BODY

sku_data.gst_hst

No

  • Number (18,2)

  • This data is provided by a Merchant. If passed as part of the request, it will be displayed on the customer’s statement. We do not validate this data and assume you are passing an accurate representation of the transactions details.

  • Goods and Services Tax (GST) and the Harmonized Sales Tax (HST)

BODY

sku_data.pst

No

  • Number (18,2)

  • This data is provided by a Merchant. If passed as part of the request, it will be displayed on the customer’s statement. We do not validate this data and assume you are passing an accurate representation of the transactions details.

  • Provincial Sales Tax applied to the order

BODY

sku_data.transaction_total

No

  • Number (18,2)

  • This data is provided by a Merchant. If passed as part of the request, it will be displayed on the customer’s statement. We do not validate this data and assume you are passing an accurate representation of the transactions details.

  • transaction_total = transaction_subtotal + gst_hst + pst

BODY

sku_data.products.sku_id

No

  • ASCII string (150)

  • This data is provided by a Merchant. If passed as part of the request, it will be displayed on the customer’s statement. We do not validate this data and assume you are passing an accurate representation of the transactions details.

  • Unique Identifier of the product SKU (Stock Keeping Unit)

BODY

sku_data.products.category

No

  • ASCII string (30)

  • This data is provided by a Merchant. If passed as part of the request, it will be displayed on the customer’s statement. We do not validate this data and assume you are passing an accurate representation of the transactions details.

  • Category for the product

BODY

sku_data.products.description

No

  • ASCII string (150)

  • This data is provided by a Merchant. If passed as part of the request, it will be displayed on the customer’s statement. We do not validate this data and assume you are passing an accurate representation of the transactions details.

  • Business-friendly description of the product

BODY

sku_data.products.quantity

No

  • Number (5)

  • This data is provided by a Merchant. If passed as part of the request, it will be displayed on the customer’s statement. We do not validate this data and assume you are passing an accurate representation of the transactions details.

  • The quantity of the items for the SKU array

    • Positive integer for sales

    • Negative - integer for a return

BODY

sku_data.products.unit_price

No

  • Number (18,2)

  • This data is provided by a Merchant. If passed as part of the request, it will be displayed on the customer’s statement. We do not validate this data and assume you are passing an accurate representation of the transactions details.

  • The price for a single SKU item

BODY

sku_data.products.extended_price

No

  • Number (18,2)

  • This data is provided by a Merchant. If passed as part of the request, it will be displayed on the customer’s statement. We do not validate this data and assume you are passing an accurate representation of the transactions details.

  • extended_price = [(unit_price x quantity) - discount_price] for this particular SKU array

BODY

billing_information.first_name

Yes if Online Channel

  • ASCII string (80)

  • Information used to match/verify the Account details on file

  • Billing Address Customer’s First Name

BODY

billing_information.last_name

Yes if Online Channel

  • ASCII string (130)

  • Information used to match/verify the Account details on file

  • Billing Address Customer’s Last Name

BODY

billing_information.address_1

Yes if Online Channel

  • ASCII string (250)

  • Information used to match/verify the Account details on file

  • Billing Address Line 1

BODY

billing_information.address_2

Yes if Online Channel

  • ASCII string (100)

  • Information used to match/verify the Account details on file

  • Billing Address Line 2

BODY

billing_information.city

Yes if Online Channel

  • ASCII string (100)

  • Information used to match/verify the Account details on file

  • Billing address city

BODY

billing_information.province

Yes if Online Channel

  • ASCII string (2)

  • Information used to match/verify the Account details on file

  • Billing Address Province (2 character syntax, ex. ON for Ontario)

  • Available values: AB, BC, MB, NB, NL, NS, NT, NU, ON, PE, QC, SK, YT.

BODY

billing_information.postal_code

Yes if Online Channel

  • ASCII string (10)

  • Information used to match/verify the Account details on file

  • Billing Address Postal Code

BODY

shipping_information.first_name

Yes if Online Channel

  • ASCII string (80)

  • Information used to match/verify the Account details on file

  • Shipping Address Customer’s First Name

BODY

shipping_information.last_name

Yes if Online Channel

  • ASCII string (130)

  • Information used to match/verify the Account details on file

  • Shipping Address Customer’s Last Name

BODY

shipping_information.address_1

Yes if Online Channel

  • ASCII string (250)

  • Information used to match/verify the Account details on file

  • Shipping Address Line 1

BODY

shipping_information.address_2

Yes if Online Channel

  • ASCII string (100)

  • Information used to match/verify the Account details on file

  • Shipping Address Line 1

BODY

shipping_information.city

Yes if Online Channel

  • ASCII string (100)

  • Information used to match/verify the Account details on file

  • Shipping Address City

BODY

shipping_information.province

Yes if Online Channel

  • ASCII string (2)

  • Information used to match/verify the Account details on file

  • Shipping Address Province (2 character syntax, ex. ON for Ontario)

  • Available values: AB, BC, MB, NB, NL, NS, NT, NU, ON, PE, QC, SK, YT.

BODY

shipping_information.postal_code

Yes if Online Channel

  • ASCII string (10)

  • Information used to match/verify the Account details on file

  • Shipping Address Postal Code

BODY

widget_session_id

Yes if Online Channel

  • string (24)

  • Used in the Online channel

  • This widget unique session ID is inserted as part of the redirect_url of the POST /client-id/{clientId}/widget/init response.

  • It will be included on the events that are being triggered by the Widget.

BODY

request_id

Yes for in-store channel

  • ASCII string (150)

  • This is the identifier for a verification to application/transaction/authorization flow.

BODY

external_location_id

Yes for In-store channel

  • ASCII string (100)

  • Used in the In-store channel

  • This is the merchant’s own location reference

BODY

external_employee_id

Yes for In-store channel

  • ASCII string (100)

  • Used in the In-store channel

  • This is the merchant’s own employee reference

Example Request - Auto Capture with SKU items:

{
    "vcc_number": "1234567890123456",
    "account_number": 1234567,
    "reference": "orderid-12345",
    "widget_session_id": "12345678901234567890", //if Online channel
    "request_id": "12345678901234567890", //if in-store channel
    "external_location_id" : "00-12345",  //if in-store channel
    "external_employee_id" :"12345-SMITH" //if in-store channel
    "financing_option": {
        "transaction_type": "promotional_purchase",
        "plan_id": 5,
        "term": 6
    },
    "amount": 5000.12,
    "auto_capture": true,
    "verification_code": 9999,
    "billing_information": {
        "first_name": "John",
        "last_name": "Smith",
        "address_1": "1234 Main Street",
        "address_2": "",
        "city": "Toronto",
        "postal_code": "M1M1M1",
        "country": "CA",
        "province": "ON"
    },
    "shipping_information": {
        "first_name": "John",
        "last_name": "Smith",
        "address_1": "1234 Main Street",
        "address_2": "",
        "city": "Toronto",
        "postal_code": "M1M1M1",
        "country": "CA",
        "province": "ON"
    },
    "sku_data":{
	{
	"purchase_order": "100001234",
	"register_id": "1A45",
	"transaction_discount_total": -125.08,
	"transaction_subtotal": 821.17,
	"transaction_total": 1026.47,
	"gst_hst": 133.45,
	"pst": 71.85,
	"products":[
		{
			"sku_id": "100xx4567",
			"category": "electronics",
			"description": "Apple Macbook 16-inch",
			"quantity": 1,
			"unit_price": 1000,
			"extended_price": 984.35 
		},
		{ 
			"sku_id": "20bb3457",
			"category": "office supplies",
			"description": "24lb Multiuse Paper, White",
			"quantity": 1,
			"unit_price": 33.99,
			"extended_price": 42.12
		}
	]
}

Example Request - Auto Capture with no SKU items:

{
    "vcc_number": "1234567890123456",
    "account_number": 1234567,
    "reference": "orderid-12345",
    "request_id": "12345678901234567890", //if in-store channel
    "external_location_id" : "00-12345",  //if in-store channel
    "external_employee_id" :"12345-SMITH" //if in-store channel
    "financing_option": {
        "transaction_type": "promotional_purchase",
        "plan_id": 5,
        "term": 6
    },
    "amount": 5000.12,
    "auto_capture": true,
    "verification_code": 9999,
    "billing_information": {
        "first_name": "John",
        "last_name": "Smith",
        "address_1": "1234 Main Street",
        "address_2": "",
        "city": "Toronto",
        "postal_code": "M1M1M1",
        "country": "CA",
        "province": "ON"
    },
    "shipping_information": {
        "first_name": "John",
        "last_name": "Smith",
        "address_1": "1234 Main Street",
        "address_2": "",
        "city": "Toronto",
        "postal_code": "M1M1M1",
        "country": "CA",
        "province": "ON"
    }
}

Response Parameters:

Type

Parameter

Details

BODY

authorization_id

  • number (16)

  • ID of the credit authorization created

BODY

reference

  • ASCII string (40)

  • Merchant Order ID to be saved within the credit authorization

BODY

date

  • UTC - ISO_8601 (20)

  • Auto-calculated date-time of creation

BODY

expiration_date

  • UTC - ISO_8601 (20)

  • Calculation based on the creation date and the expiration time configured for the Merchant

BODY

ending_date

  • UTC - ISO_8601 (20)

  • The date when the authorization reached the "closed" status

BODY

status

  • ASCII string (20)

  • Possible Values: opened, unauthorized, onhold, closed

    • opened - initial status when the customer is present or has authorized the pre-auth (we can perform as many captures as we want)

    • unauthorized - initial status when the customer is not present and has not authorized the pre-auth yet

    • onhold - will denote authorizations where capture is currently prohibited because the customer account has a status other than Normal (reason NNOR)

    • closed - final status. It is no longer a valid pre-auth

BODY

auto_capture

  • boolean

  • This determines if it was an actual pre-auth or a purchase (pre-auth and capture at the same time)

BODY

amount

  • number (18,2)

  • Authorization amount

BODY

annual_rates.description

  • ASCII string

  • Customer facing long-form label of this interest rate

  • Merchant can choose to display either this field or the short-form label to the customer

BODY

annual_rates.rate

  • number (20,7)

  • Applicable interest rate presented in decimal form

  • Merchant is obligated to display this rate to the customer

BODY

annual_rates.type

  • ASCII string

  • Customer facing short-form label of the interest rate

  • Merchant can choose to display either this field or the long-form label to the customer

  • Possible values: “APR”, “AIR” depending on the plan type / plan_id

BODY

annual_rates.message

  • ASCII string (1000)

  • Used to convey legal disclaimer necessary to notify the customer about their promotional plan

  • Merchant is obligated to display this to the customer within 1-click away from the plan selection

BODY

message

  • ASCII string (1000)

  • Used to convey information necessary to notify the customer

BODY

username

  • ASCII string (30)

  • username of the creator of the auth

BODY

financing_option.transaction_type

  • ASCII String (20)

  • Type of transaction

  • Possible values: promotional_purchase, regular_purchase

BODY

financing_option.plan_id

  • number (3)

  • Only applicable to Promotional Purchases

  • ID of the promotional plan

BODY

financing_option.term

  • number (3)

  • Only applicable to Promotional Purchases

  • Term of the promotional plan

BODY

fees.type

  • ASCII String (20)

  • Denotes if the administrative fee amount is a monthly or total amount

  • Possible values:

    • admin_total

    • admin_monthly

BODY

fees.description

  • ASCII string (100)

  • Name, label or brief description of this fee

BODY

fees.amount

  • number (18,2)

  • Amount of the fees

BODY

fees.message

  • ASCII string (50)

  • Customer facing label of this fee

BODY

merchant_information.corporation_id

  • number (10)

  • Corporation ID of the creator of the authorization

BODY

merchant_information.corporation_name

  • ASCII string (255)

  • Corporation name of the creator of the authorization

BODY

merchant_information.merchant_id

  • number (10)

  • Merchant ID of the creator of the authorization

BODY

merchant_information.merchant_name

  • ASCII string (130)

  • Merchant name of the creator of the authorization

BODY

merchant_information.location_id

  • number (10)

  • Location ID of the creator of the authorization

BODY

merchant_information.location_name

  • ASCII string (130)

  • Location name of the creator of the authorization

BODY

customer.air

  • number (5,4)

  • air for the customer

BODY

customer.available_credit

  • number (18,2)

  • The customer’s available credit

  • Calculated based on current available credit minus the authorization’s original amount plus fees plus interest according to the financing option

BODY

customer.first_name

  • ASCII string (80)

  • First name of the customer

BODY

customer.last_name

  • ASCII string (130)

  • Last name of the customer

BODY

customer.category_type

  • ASCII string (30)

  • Category related to the customer’s risk rating

  • Possible values: preferred, premium, standard

BODY

capture.capture_id

  • number (9)

  • Returned if auto_capture was “true” on the request

  • ID of the capture created

BODY

capture.reference

  • ASCII string (40)

  • Returned if auto_capture was “true” on the request

  • Merchant Order ID to be saved within the capture

BODY

capture.date

  • UTC - ISO_8601 Date (20)

  • Returned if auto_capture was “true” on the request

  • Auto-calculated Date-time of capture

BODY

capture.status

  • ASCII string (20)

  • Returned if auto_capture was “true” on the request

  • Possible values: active, canceled, defaulted, inactive

BODY

capture.term_amount

  • number (18,2)

  • Returned if auto_capture was “true” on the request

  • Value to explain the amount to be paid by month (or a deferred payment)

BODY

capture.amount

  • number (18,2)

  • Returned if auto_capture was “true” on the request

  • capture amount

BODY

billing_information.first_name

  • ASCII string (80)

  • Billing Address Customer’s First Name passed by the Merchant on the order

BODY

billing_information.last_name

  • ASCII string (130)

  • Billing Address Customer’s Last Name passed by the Merchant on the order

BODY

billing_information.address_1

  • ASCII string (250)

  • Billing Address Line 1 passed by the Merchant on the order

BODY

billing_information.address_2

  • ASCII string (100)

  • Billing Address Line 2 passed by the Merchant on the order

BODY

billing_information.city

  • ASCII string (100)

  • Billing address city passed by the Merchant on the order

BODY

billing_information.province

  • ASCII string (2)

  • Billing Address Province passed by the Merchant on the order (2 character syntax, ex. ON for Ontario)

  • Available values: AB, BC, MB, NB, NL, NS, NT, NU, ON, PE, QC, SK, YT.

BODY

billing_information.postal_code

  • ASCII string (10)

  • Billing Address Postal Code passed by the Merchant on the order

BODY

shipping_information.first_name

  • ASCII string (80)

  • Shipping Address Customer’s First Name passed by the Merchant on the order

BODY

shipping_information.last_name

  • ASCII string (130)

  • Shipping Address Customer’s Last Name passed by the Merchant on the order

BODY

shipping_information.address_1

  • ASCII string (250)

  • Shipping Address Line 1 passed by the Merchant on the order

BODY

shipping_information.address_2

  • ASCII string (100)

  • Shipping Address Line 1 passed by the Merchant on the order

BODY

shipping_information.city

  • ASCII string (100)

  • Shipping Address City passed by the Merchant on the order

BODY

shipping_information.province

  • ASCII string (2)

  • Shipping Address Province passed by the Merchant on the order (2 character syntax, ex. ON for Ontario)

  • Available values: AB, BC, MB, NB, NL, NS, NT, NU, ON, PE, QC, SK, YT.

BODY

shipping_information.postal_code

  • ASCII string (10)

  • Shipping Address Postal Code passed by the Merchant on the order

BODY

account_avs.billing_information.first_name

  • number (3,2)

  • Matching score against the customer information Flexiti has on file

BODY

account_avs.billing_information.last_name

  • number (3,2)

  • Matching score against the customer information Flexiti has on file

BODY

account_avs.billing_information.address_1

  • number (3,2)

  • Matching score against the customer information Flexiti has on file

BODY

account_avs.billing_information.address_2

  • number (3,2)

  • Matching score against the customer information Flexiti has on file

BODY

account_avs.billing_information.city

  • number (3,2)

  • Matching score against the customer information Flexiti has on file

BODY

account_avs.billing_information.province

  • number (3,2)

  • Matching score against the customer information Flexiti has on file

BODY

account_avs.billing_information.postal_code

  • number (3,2)

  • Matching score against the customer information Flexiti has on file

BODY

account_avs.shipping_information.first_name

  • number (3,2)

  • Matching score against the customer information Flexiti has on file

BODY

account_avs.shipping_information.last_name

  • number (3,2)

  • Matching score against the customer information Flexiti has on file

BODY

account_avs.shipping_information.address_1

  • number (3,2)

  • Matching score against the customer information Flexiti has on file

BODY

account_avs.shipping_information.address_2

  • number (3,2)

  • Matching score against the customer information Flexiti has on file

BODY

account_avs.shipping_information.city

  • number (3,2)

  • Matching score against the customer information Flexiti has on file

BODY

account_avs.shipping_information.province

  • number (3,2)

  • Matching score against the customer information Flexiti has on file

BODY

account_avs.shipping_information.postal_code

  • number (3,2)

  • Matching score against the customer information Flexiti has on file

BODY

account_avs.business_billing_information.first_name

  • Number (3,2)

  • Matching score against the business information Flexiti has on file for a Business account

BODY

account_avs.business_billing_information.last_name

  • Number (3,2)

  • Matching score against the business information Flexiti has on file for a Business account

BODY

account_avs.business_billing_information.address_1

  • Number (3,2)

  • Matching score against the business information Flexiti has on file for a Business account

BODY

account_avs.business_billing_information.address_2

  • Number (3,2)

  • Matching score against the business information Flexiti has on file for a Business account

BODY

account_avs.business_billing_information.city

  • Number (3,2)

  • Matching score against the business information Flexiti has on file for a Business account

BODY

account_avs.business_billing_information.province

  • Number (3,2)

  • Matching score against the business information Flexiti has on file for a Business account

BODY

account_avs.business_billing_information.postal_code

  • Number (3,2)

  • Matching score against the business information Flexiti has on file for a Business account

BODY

account_avs.business_shipping_information.first_name

  • Number (3,2)

  • Matching score against the business information Flexiti has on file for a Business account

BODY

account_avs.business_shipping_information.last_name

  • Number (3,2)

  • Matching score against the business information Flexiti has on file for a Business account

BODY

account_avs.business_shipping_information.address_1

  • Number (3,2)

  • Matching score against the business information Flexiti has on file for a Business account

BODY

account_avs.business_shipping_information.address_2

  • Number (3,2)

  • Matching score against the business information Flexiti has on file for a Business account

BODY

account_avs.business_shipping_information.city

  • Number (3,2)

  • Matching score against the business information Flexiti has on file for a Business account

BODY

account_avs.business_shipping_information.province

  • Number (3,2)

  • Matching score against the business information Flexiti has on file for a Business account

BODY

account_avs.business_shipping_information.postal_code

  • Number (3,2)

  • Matching score against the business information Flexiti has on file for a Business account

Success Response - ROC Consumer Account:

{
    "authorization_id": 1017187,
    "reference": "Order-1234",
    "date": "2022-06-06T13:07:11Z",
    "expiration_date": "2023-06-06T13:07:11Z",
    "ending_date": "2022-06-06T13:07:11Z",
    "status": "closed",
    "auto_capture": true,
    "amount": 173.6,
    "message": null,
    "username": "jjones",
    "VCC": null,
    "financing_option": {
        "transaction_type": "promotional_purchase",
        "plan_id": 4,
        "term": 6
    },
    "fees": [
        {
            "type": "admin_total",
            "amount": 50,
            "description": "Administrative fees:",
            "message": "Although your administrative fee may be represented as a monthly or annual amount, the fee is due in full if the account is paid off early. See terms and conditions for full details."
        }
    ],
    "merchant_information": {
        "corporation_id": 1091,
        "corporation_name": "Flexiti",
        "merchant_id": 1291315,
        "merchant_name": "Training - Flexiti",
        "location_id": 5205,
        "location_name": "Flexiti Training"
    },
    "customer": {
        "air": 0.3099,
        "available_credit": 13674.4,
        "first_name": "Flexiti",
        "last_name": "MITester",
        "category_type": "preferred",
        "reason_code": null
    },
    "capture": {
        "capture_id": 382564,
        "reference": "Order-1234",
        "date": "2022-06-06T13:07:12Z",
        "amount": 173.6,
        "term_amount": 38.36,
        "status": "active"
    },
    "billing_information": {
        "first_name": "Testaabb",
        "last_name": "Test",
        "address_1": "2222 Rene-Levesque Boulevard West",
        "address_2": "336",
        "city": "Montreal",
        "postal_code": "H3H1R6",
        "province": "QC"
    },
    "shipping_information": {
        "first_name": "Jeffrey",
        "last_name": "MCLEOD",
        "address_1": "336-300 Palisades Way",
        "address_2": "",
        "city": "Mont",
        "postal_code": "H3H1R6",
        "country": "CA",
        "province": "QC"
    },
    "annual_rates": {
        "description": "Annual Promotional Interest Rate:",
        "rate": 0.0999,
        "type": "APR",
        "message": "Promotional annual interest rate applies during the promotional period and is included in your estimated monthly payments. Account annual interest rate is charged if the promo is cancelled or expires without full payment and applies when promos are not in effect."
    },
    "request_id": "FLX-Imp-AZ-MI",
    "account_avs": {
        "billing_information": {
            "first_name": 0,
            "last_name": "0.55",
            "address_1": "0.10",
            "address_2": null,
            "city": "0.31",
            "postal_code": 0,
            "province": 0
        },
        "shipping_information": {
            "first_name": 0,
            "last_name": 0,
            "address_1": 0,
            "address_2": null,
            "city": "0.44",
            "postal_code": 0,
            "country": null,
            "province": 0
        }
    }
}

Success Response - QC Consumer Account:

{
    "authorization_id": 1017188,
    "reference": "Order-1234",
    "date": "2022-06-06T13:08:05Z",
    "expiration_date": "2023-06-06T13:08:05Z",
    "ending_date": "2022-06-06T13:08:05Z",
    "status": "closed",
    "auto_capture": true,
    "amount": 173.6,
    "message": null,
    "username": "jjones",
    "VCC": null,
    "financing_option": {
        "transaction_type": "promotional_purchase",
        "plan_id": 4,
        "term": 6
    },
    "fees": [
        {
            "type": "admin_total",
            "amount": 50,
            "description": "Administrative fees:",
            "message": "Although your administrative fee may be represented as a monthly or annual amount, the fee is due in full if the account is paid off early. See terms and conditions for full details."
        }
    ],
    "merchant_information": {
        "corporation_id": 1091,
        "corporation_name": "Flexiti",
        "merchant_id": 1291315,
        "merchant_name": "Training - Flexiti",
        "location_id": 5205,
        "location_name": "Flexiti Training"
    },
    "customer": {
        "air": 0.3099,
        "available_credit": 13276.4,
        "first_name": "Flexiti",
        "last_name": "MITester",
        "category_type": "preferred",
        "reason_code": null
    },
    "capture": {
        "capture_id": 382566,
        "reference": "Order-1234",
        "date": "2022-06-06T13:08:06Z",
        "amount": 173.6,
        "term_amount": 38.36,
        "status": "active"
    },
    "billing_information": {
        "first_name": "Testaabb",
        "last_name": "Test",
        "address_1": "2222 Rene-Levesque Boulevard West",
        "address_2": "336",
        "city": "Montreal",
        "postal_code": "H3H1R6",
        "province": "QC"
    },
    "shipping_information": {
        "first_name": "Jeffrey",
        "last_name": "MCLEOD",
        "address_1": "336-300 Palisades Way",
        "address_2": "",
        "city": "Mont",
        "postal_code": "H3H1R6",
        "country": "CA",
        "province": "QC"
    },
    "annual_rates": {
        "description": "Annual Promotional Interest Rate:",
        "rate": 0.0999,
        "type": "APR",
        "message": "Promotional annual interest rate applies during the promotional period and is included in your estimated monthly payments. Account annual interest rate is charged if the promo is cancelled or expires without full payment and applies when promos are not in effect."
    },
    "request_id": "FLX-Imp-AZ-MI",
    "account_avs": {
        "billing_information": {
            "first_name": 0,
            "last_name": "0.55",
            "address_1": "0.10",
            "address_2": null,
            "city": "0.31",
            "postal_code": 0,
            "province": "1.00"
        },
        "shipping_information": {
            "first_name": 0,
            "last_name": 0,
            "address_1": 0,
            "address_2": null,
            "city": "0.44",
            "postal_code": 0,
            "country": null,
            "province": "1.00"
        }
    }
}

Success - ROC Business Account

{
    "authorization_id": 12345768,
    "reference": "orderid-12345",
    "date": "2019-07-20T00:39:57Z",
    "expiration_date": "2019-07-20T00:39:57Z",
    "ending_date": null,
    "status": "closed",
    "auto_capture": true,
    "amount": 123.12,
    "message": "lorem ipsum",
    "username": "jjones",
    "financing_option": {
        "transaction_type": "promotional_purchase",
        "plan_id": 5,
        "term": 6
    },
    "fees": [
        {
            "type": "admin_total",
            "description": "Admin fee:",
            "amount": 49.99,
            "message": "lorem ipsum"
        }
    ],
    "merchant_information": {
        "corporation_id": 1234,
        "corporation_name": "ACME Corporation",
        "merchant_id": 10028,
        "merchant_name": "ACME Jewellers",
        "location_id": 1328,
        "location_name": "ACME Jewellers 123"
    },
    "customer": {
        "air": 0.3724,
        "available_credit": 2000.12,
        "first_name": "John",
        "last_name": "Smith",
        "category_type": "preferred"
    },
    "capture": {
        "capture_id": 1234112,
        "reference": "orderid-12345",
        "date": "2019-07-20T00:39:57Z",
        "status": "pending",
        "term_amount": 123,
        "amount": 123.12
    },
    "billing_information": {
        "first_name": "John",
        "last_name": "Smith",
        "address_1": "1234 Main Street",
        "address_2": "",
        "city": "Toronto",
        "postal_code": "M1M1M1",
        "province": "ON"
    },
    "shipping_information": {
        "first_name": "John",
        "last_name": "Smart",
        "address_1": "800 Main Ave",
        "address_2": "",
        "city": "Toronto",
        "postal_code": "M1M1M2",
        "province": "ON"
    },
    "annual_rates": {
        "description": "Annual Promotional Interest Rate:",
        "rate": 0.0999,
        "type": "APR",
        "message": "Promotional annual interest rate applies during the promotional period and is included in your estimated monthly payments. Account annual interest rate is charged if the promo is cancelled or expires without full payment and applies when promos are not in effect."
    },
    "account_avs": {
        "shipping_information": {
            "first_name": 1,
            "last_name": 0.85,
            "address_1": 0.54,
            "address_2": 0,
            "city": 1,
            "postal_code": 0.92,
            "province": 1
        },
        "billing_information": {
            "first_name": 1,
            "last_name": 1,
            "address_1": 1,
            "address_2": 0,
            "city": 1,
            "postal_code": 1,
            "province": 1
        }
        "business_shipping_information": {
            "first_name": 1,
            "last_name": 0.85,
            "address_1": 0.54,
            "address_2": 0,
            "city": 1,
            "postal_code": 0.92,
            "province": 1
        },
        "business_billing_information": {
            "first_name": 1,
            "last_name": 1,
            "address_1": 1,
            "address_2": 0,
            "city": 1,
            "postal_code": 1,
            "province": 1
        }
    }
}

POST /client-id/{clientId}/authorization/{authorizationId}/release

https://{posapi_url}/flexiti/pos-api/v2.5/client-id/{client_id}/authorization/12343/release

This endpoint releases full or partial amounts from a credit authorization created by a Merchant.

  • Merchants are able to post one or more partial releases of incremental amounts against a specific credit authorization of their own.

  • Partial releases are automatically processed.

  • Partial releases can be processed for any status on an account.

  • The maximum release amount will be the remaining credit authorization amount.

  • Multiple partial releases can be applied over a specific credit authorization is until the credit amount is exhausted.

  • With each partial release amount, the remaining amount of the credit authorization is reduced and the available credit on the customer account is increased.

  • When the credit authorization ends it status will be changed to “Closed”. Admin fees are adjusted according the final credit amount processed

Request Parameters:

Type

Parameter

Required

Details

HEADER

authorization

Yes

  • ASCII string (1000)

  • This is the word “Bearer” with a space and then the access_token given in oauth/token API response

  • Default value: Bearer {insert_bearer_token_from_oauth_here/token_api}

HEADER

x-reference-id

Yes

  • ASCII string (32)

  • GUID

  • Unique identifier for the flow for traceability purposes

PATH

client_id

Yes

  • ASCII string (100)

  • This is the Client ID given in the Developer User Account section

QUERY

lang


  • ASCII string (5)

  • Language the message parameter on the response will be displayed in

  • Available values: (en=English) or (fr=French)

  • Default value: en

PATH

authorization_id

Yes

  • number (16)

  • This is the authorization ID to be released

BODY

reference

  • ASCII String (40)

  • Merchant Order ID to be saved within the release

BODY

full_release

  • boolean

  • If set to “true” a full release of the credit authorization will occur

  • If set to “false” the amount of the release will need to be defined

  • Default: false

BODY

amount

Yes if full_release is “false”

  • number (18,2)

  • This is the amount to be released

BODY

external_location_id

Yes if In-store channel

  • ASCII string (100)

  • Used in the In-store channel

  • This is the merchant’s own location reference

BODY

external_employee_id

Yes if In-store channel

  • ASCII string (100)

  • Used in the In-store channel

  • This is the merchant’s own employee reference

Example Request:

{
    "reference": "orderid-12345",
    "full_release": false,
    "amount": 1500.12,
    "external_location_id" : "00-12345",  //if in-store channel
    "external_employee_id" :"12345-SMITH" //if in-store channel
}

Response Parameters:

Type

Parameter

Details

BODY

release_id

  • number (16)

  • ID of the release created

BODY

reference

  • ASCII string (40)

  • Merchant Order ID saved within the release

BODY

authorization_id

  • number (16)

  • ID of the credit authorization created

BODY

date

  • UTC - ISO_8601 (20)

  • Auto-calculated Date-time of release

BODY

amount

  • number (18,2)

  • Released amount

BODY

full_release

  • boolean

  • If “true” a full release of the credit authorization occured

  • If “false” the amount of the release will be defined

BODY

remaining_authorization_amount

  • number (18,2)

  • Remaining amount of the credit authorization

BODY

username

  • ASCII string (30)

  • username of the employee that performed the release

BODY

message

  • ASCII string (1000)

  • Used to convey information to notify the customer

Success Response:

{
    "release_id": 1234567,
    "authorization_id": 123545454,
    "reference": "orderid-12345",
    "date": "2019-07-20T00:39:57Z",
    "amount": 1500.12,
    "full_release": false,
    "remaining_authorization_amount": 2500.12,
    "username": "osvaldo88",
    "message": "lorem ipsum"
}


POST /client-id/{clientId}/authorization/{authorizationId}/capture

https://{posapi_url}/flexiti/pos-api/v2.5/client-id/{client_id}/authorization/12343/capture&lang=en

This service posts a capture for a specific credit authorization created by a Merchant.

  • Merchants are able to post one or more partial captures for incremental amounts against a specific credit authorization of their own.

  • On the first partial capture on account, the full Admin fee or Annual fee calculated on the credit authorization will be applied. No admin fee or annual fee will be applied for subsequent captures on the same credit authorization.

  • The same purchase type will be applied for each partial capture:

    • Promotional purchase, same plan and term;

    • Regular purchase, same AIR will be applied for each partial capture.

  • Captures will only be processed if customer account is in a Normal status (NNOR).

  • Captures will only be processed if the authorization has “opened” status.

  • Captures will only be processed if the credit authorization hasn't expired.

    • In the case of an expiration, a new credit authorization and capture will need to be posted to the account, providing there is sufficient open-to-buy to support the new capture.

  • If the Capture/Partial capture exhausts the credit authorization amount (remaining amount in zero), the credit authorization ends and the status changes to “closed”.

Request Parameters:

Type

Parameter

Required

Details

HEADER

authorization

Yes

  • ASCII string (1000)

  • This is the word “Bearer” with a space and then the access_token given in oauth/token API response

  • Default value: Bearer {insert_bearer_token_from_oauth_here/token_api}

HEADER

x-reference-id

Yes

  • ASCII string (32)

  • GUID

  • Unique identifier for the flow for traceability purposes

PATH

client_id

Yes

  • ASCII string (100)

  • This is the Client ID given in the Developer User Account section

QUERY

lang


  • ASCII string (5)

  • Language for the message parameter on the response.

  • Available values: (en=English) or (fr=French)

  • Default value: en

PATH

authorization_id

Yes

  • number (16)

  • This is the authorization ID to be released

BODY

reference

  • ASCII String (40)

  • Merchant Order ID to be saved within the capture

BODY

amount

Yes

  • number (18,2)

  • This is the amount to be captured

BODY

sku_data.purchase_order

No

  • ASCII string (10)

  • This data is provided by a Merchant. If passed as part of the request, it will be displayed on the customer’s statement. We do not validate this data and assume you are passing an accurate representation of the transactions details.

  • Purchase Number For the Merchant

BODY

sku_data.shipping_total

No

  • number (18,2)

  • This data is provided by a Merchant. If passed as part of the request, it will be displayed on the customer’s statement. We do not validate this data and assume you are passing an accurate representation of the transactions details.

  • the Shipping total amount to be displayed, if applicable

BODY

sku_data.register_id

No

  • ASCII string (50)

  • This data is provided by a Merchant. If passed as part of the request, it will be displayed on the customer’s statement. We do not validate this data and assume you are passing an accurate representation of the transactions details.

  • The cashier machine where the transaction was placed

BODY

sku_data.transaction_discount_total

No

  • Integer (12,2)

  • This data is provided by a Merchant. If passed as part of the request, it will be displayed on the customer’s statement. We do not validate this data and assume you are passing an accurate representation of the transactions details.

  • Sum of all discounts on the order

BODY

sku_data.transaction_subtotal

No

  • Integer (12,2)

  • This data is provided by a Merchant. If passed as part of the request, it will be displayed on the customer’s statement. We do not validate this data and assume you are passing an accurate representation of the transactions details.

  • Sum of all totals for all items

BODY

sku_data.gst_hst

No

  • Number (18,2)

  • This data is provided by a Merchant. If passed as part of the request, it will be displayed on the customer’s statement. We do not validate this data and assume you are passing an accurate representation of the transactions details.

  • Goods and Services Tax (GST) and the Harmonized Sales Tax (HST)

BODY

sku_data.pst

No

  • Number (18,2)

  • This data is provided by a Merchant. If passed as part of the request, it will be displayed on the customer’s statement. We do not validate this data and assume you are passing an accurate representation of the transactions details.

  • Provincial Sales Tax applied to the order

BODY

sku_data.transaction_total

No

  • Number (18,2)

  • This data is provided by a Merchant. If passed as part of the request, it will be displayed on the customer’s statement. We do not validate this data and assume you are passing an accurate representation of the transactions details.

  • transaction_total = transaction_subtotal + gst_hst + pst

BODY

sku_data.products.sku_id

No

  • ASCII string (150)

  • This data is provided by a Merchant. If passed as part of the request, it will be displayed on the customer’s statement. We do not validate this data and assume you are passing an accurate representation of the transactions details.

  • Unique Identifier of the product SKU (Stock Keeping Unit)

BODY

sku_data.products.category

No

  • ASCII string (30)

  • This data is provided by a Merchant. If passed as part of the request, it will be displayed on the customer’s statement. We do not validate this data and assume you are passing an accurate representation of the transactions details.

  • Category for the product

BODY

sku_data.products.description

No

  • ASCII string (150)

  • This data is provided by a Merchant. If passed as part of the request, it will be displayed on the customer’s statement. We do not validate this data and assume you are passing an accurate representation of the transactions details.

  • Business-friendly description of the product

BODY

sku_data.products.quantity

No

  • Number (5)

  • This data is provided by a Merchant. If passed as part of the request, it will be displayed on the customer’s statement. We do not validate this data and assume you are passing an accurate representation of the transactions details.

  • The quantity of the items for the SKU array

    • Positive integer for sales

    • Negative - integer for a return

BODY

sku_data.products.unit_price

No

  • Number (18,2)

  • This data is provided by a Merchant. If passed as part of the request, it will be displayed on the customer’s statement. We do not validate this data and assume you are passing an accurate representation of the transactions details.

  • The price for a single SKU item

BODY

sku_data.products.extended_price

No

  • Number (18,2)

  • This data is provided by a Merchant. If passed as part of the request, it will be displayed on the customer’s statement. We do not validate this data and assume you are passing an accurate representation of the transactions details.

  • extended_price = [(unit_price x quantity) - discount_price] for this particular SKU array

BODY

external_location_id

Yes if In-store channel

  • ASCII string (100)

  • Used in the In-store channel

  • This is the merchant’s own location reference

BODY

external_employee_id

Yes if In-store channel

  • ASCII string (100)

  • Used in the In-store channel

  • This is the merchant’s own employee reference

Example Request:

{
    "reference": "orderid-12345",
    "amount": 3000.12,
    "external_location_id" : "00-12345",  //if in-store channel
    "external_employee_id" :"12345-SMITH", //if in-store channel
    "sku_data":{
	{
	"purchase_order": "100001234",
	"register_id": "1A45",
	"transaction_discount_total": -123.08,
	"transaction_subtotal": 821.17,
	"transaction_total": 1026.47,
	"gst_hst": 133.45,
	"pst": 71.85,
	"products":[
		{
			"sku_id": "100xx4567",
			"category": "electronics",
			"description": "Apple Macbook 16-inch",
			"quantity": 1,
			"unit_price": 1000,
			"extended_price": 984.35 
		},
		{ 
			"sku_id": "20bb3457",
			"category": "office supplies",
			"description": "24lb Multiuse Paper, White",
			"quantity": 1,
			"unit_price": 33.99,
			"extended_price": 42.12
		}
	]
}

Response Parameters:

Type

Parameter

Details

BODY

capture_id

  • number (9)

  • ID of the capture created

BODY

reference

  • ASCII string (40)

  • Merchant Order ID saved within the capture

BODY

authorization_id

  • number (16)

  • ID of the credit authorization created

BODY

date

  • UTC - ISO_8601 (20)

  • Auto-calculated Date-time of capture

BODY

amount

  • number (18,2)

  • Captured amount

BODY

remaining_authorization_amount

  • number (18,2)

  • Remaining amount of the credit authorization after the capture

BODY

term_amount

  • number (18,2)

  • Value to explain the amount to be paid by month (or a deferred payment)

BODY

username

  • ASCII string (30)

  • username of the employee that performed the capture

BODY

status

  • ASCII string (20)

  • Status of the capture

  • Possible values: pending, active, inactive, cancelled

    • pending - in circumstances where the capture requires accreditation

    • active - capture complete

    • inactive - when the capture has been fully returned/refunded

    • cancelled - when the capture has been rejected at accreditation time

BODY

message

  • ASCII string (1000)

  • Used to convey information to notify the customer

Success Response:

{
    "capture_id": 1234112,
    "reference": "orderid-12345",
    "authorization_id": 123545454,
    "date": "2019-07-20T00:39:57Z",
    "amount": 2000.12,
    "remaining_authorization_amount": 3000.12,
    "term_amount": 123,
    "username": "osvaldo88",
    "status": "active",
    "message": "lorem ipsum"
}


POST /client-id/{clientId}/authorization/{authorizationId}/capture/{captureId}/return

https://{posapi_url}/flexiti/pos-api/v2.5/client-id/{client_id}/authorization/12343/capture/2345/return

This endpoint returns an existing capture of a promotional purchase made on a specific credit authorization created by a Merchant.

  • All merchants can process one or more partial capture returns against their own pre-authorization

  • Account available credit will be increased by the partial capture return amount including any interest or fees refunded.

  • A return of a partial capture can be processed on an account with any status.

  • The Admin Fee (ROC) or Annual Fee (QC) is refunded to the Customer account if the following conditions are met:

    • It’s the first capture on a customer account.

    • No subsequent captures have been made against the credit authorization.

      • If subsequent captures are made, then the admin fee or annual fee will be allocated to the 2nd capture on the credit authorization and any interest accrued between the first capture and second capture will be refunded.

  • When first capture is returned and the admin is refunded, if a second capture is made after, an admin fee will be applied to the second capture

  • The customer’s available credit limit will be increased by the return amount.

  • Merchants can perform a return up to the 465 days from the purchase date.

Request Parameters:

Type

Parameter

Required

Details

HEADER

authorization

Yes

  • ASCII string (1000)

  • This is the word “Bearer” with a space and then the access_token given in oauth/token API response

  • Default value: Bearer {insert_bearer_token_from_oauth_here/token_api}

HEADER

x-reference-id

Yes

  • ASCII string (32)

  • GUID

  • Unique identifier for the flow for traceability purposes

PATH

client_id

Yes

  • ASCII string (100)

  • This is the Client ID given in the Developer User Account section

QUERY

lang


  • ASCII string (5)

  • Customer Preferred language

  • Available values: (en=English) or (fr=French)

  • Default value: en

PATH

authorization_id

Yes

  • number (16)

  • This is the authorization ID to be returned

PATH

capture_id

Yes

  • number (9)

  • This is the capture ID to be returned

BODY

vcc_number


No

  • ASCII string(16)

  • The FlexitiCard number (VCC) provided by the Customer

  • To be used in a Business Card’s authorized User’s purchase, sent with the Master Account number

BODY

reference

  • ASCII String (40)

  • Merchant Order ID to be saved within the release

BODY

full_return

  • boolean

  • If set to “true” a full return of the credit authorization will occur

  • If set to “false” the amount of the return will need to be defined

  • default: false

BODY

amount

Yes if full_return is false

  • number (20,2)

  • This is the amount to be returned

BODY

sku_data.purchase_order

No

  • ASCII string (10)

  • This data is provided by a Merchant. If passed as part of the request, it will be displayed on the customer’s statement. We do not validate this data and assume you are passing an accurate representation of the transactions details.

  • Purchase Number For the Merchant

BODY

sku_data.register_id

No

  • ASCII string (50)

  • This data is provided by a Merchant. If passed as part of the request, it will be displayed on the customer’s statement. We do not validate this data and assume you are passing an accurate representation of the transactions details.

  • The cashier machine where the transaction was placed

BODY

sku_data.transaction_discount_total

No

  • Integer (12,2)

  • This data is provided by a Merchant. If passed as part of the request, it will be displayed on the customer’s statement. We do not validate this data and assume you are passing an accurate representation of the transactions details.

  • Sum of all discounts on the order

BODY

sku_data.transaction_subtotal

No

  • Integer (12,2)

  • This data is provided by a Merchant. If passed as part of the request, it will be displayed on the customer’s statement. We do not validate this data and assume you are passing an accurate representation of the transactions details.

  • Sum of all totals for all items

BODY

sku_data.gst_hst

No

  • Number (18,2)

  • This data is provided by a Merchant. If passed as part of the request, it will be displayed on the customer’s statement. We do not validate this data and assume you are passing an accurate representation of the transactions details.

  • Goods and Services Tax (GST) and the Harmonized Sales Tax (HST)

BODY

sku_data.pst

No

  • Number (18,2)

  • This data is provided by a Merchant. If passed as part of the request, it will be displayed on the customer’s statement. We do not validate this data and assume you are passing an accurate representation of the transactions details.

  • Provincial Sales Tax applied to the order

BODY

sku_data.transaction_total

No

  • Number (18,2)

  • This data is provided by a Merchant. If passed as part of the request, it will be displayed on the customer’s statement. We do not validate this data and assume you are passing an accurate representation of the transactions details.

  • transaction_total = transaction_subtotal + gst_hst + pst

BODY

sku_data.products.sku_id

No

  • ASCII string (150)

  • This data is provided by a Merchant. If passed as part of the request, it will be displayed on the customer’s statement. We do not validate this data and assume you are passing an accurate representation of the transactions details.

  • Unique Identifier of the product SKU (Stock Keeping Unit)

BODY

sku_data.products.category

No

  • ASCII string (30)

  • This data is provided by a Merchant. If passed as part of the request, it will be displayed on the customer’s statement. We do not validate this data and assume you are passing an accurate representation of the transactions details.

  • Category for the product

BODY

sku_data.products.description

No

  • ASCII string (150)

  • This data is provided by a Merchant. If passed as part of the request, it will be displayed on the customer’s statement. We do not validate this data and assume you are passing an accurate representation of the transactions details.

  • Business-friendly description of the product

BODY

sku_data.products.quantity

No

  • Number (5)

  • This data is provided by a Merchant. If passed as part of the request, it will be displayed on the customer’s statement. We do not validate this data and assume you are passing an accurate representation of the transactions details.

  • The quantity of the items for the SKU array

    • Positive integer for sales

    • Negative - integer for a return

BODY

sku_data.products.unit_price

No

  • Number (18,2)

  • This data is provided by a Merchant. If passed as part of the request, it will be displayed on the customer’s statement. We do not validate this data and assume you are passing an accurate representation of the transactions details.

  • The price for a single SKU item

BODY

sku_data.products.extended_price

No

  • Number (18,2)

  • This data is provided by a Merchant. If passed as part of the request, it will be displayed on the customer’s statement. We do not validate this data and assume you are passing an accurate representation of the transactions details.

  • extended_price = [(unit_price x quantity) - discount_price] for this particular SKU array

BODY

external_location_id

Yes if In-store channel

  • ASCII string (100)

  • Used in the In-store channel

  • This is the merchant’s own location reference

BODY

external_employee_id

Yes if In-store channel

  • ASCII string (100)

  • Used in the In-store channel

  • This is the merchant’s own employee reference

Example Request:

{
    "reference": "Order-1234",
    "vcc_number": "1234567890121256",
    "full_return": false,
    "amount": 10,
    "sku_data": {
        "purchase_order": "100001234",
        "register_id": "1A45",
        "transaction_discount_total": -125.08,
        "transaction_subtotal": -821.17,
        "transaction_total": -1026.47,
        "gst_hst": -133.45,
        "pst": -71.85,
        "products": [
            {
                "sku_id": "100xx4567",
                "category": "electronics",
                "description": "Apple Macbook 16-inch",
                "quantity": 1,
                "unit_price": 1000,
                "extended_price": 984.35
            },
            {
                "sku_id": "20bb3457",
                "category": "office supplies",
                "description": "24lb Multiuse Paper, White",
                "quantity": 1,
                "unit_price": 33.99,
                "extended_price": 42.12
            }
        ]
    },
}

Example Request: No SKU Data

{
    "reference": "Order-1234",
    "vcc_number": "1234567890121256",
    "full_return": false,
    "amount": 10
}

Response Parameters:

Type

Parameter

Details

BODY

return_id

  • number (16)

  • ID of the return created

BODY

reference

  • ASCII string (40)

  • Merchant Order ID saved within the capture

BODY

capture_id

  • number (9)

  • ID of the capture returned

BODY

date

  • UTC - ISO_8601 (20)

  • Auto-calculated Date-time of capture

BODY

amount

  • number (18,2)

  • Returned amount

BODY

remaining_capture_amount

  • number (18,2)

  • Remaining capture amount after the return

BODY

remaining_authorization_amount

  • number (18,2)

  • Remaining amount of the credit authorization

BODY

username

  • ASCII string (30)

  • username of the employee that performed the release

BODY

message

  • ASCII string (1000)

  • Used to convey information to notify the customer

Success Response:

{
    "return_id": 1234132,
    "reference": "orderid-12345",
    "capture_id": 25554,
    "date": "2019-07-20T00:39:57Z",
    "amount": 1000.12,
    "full_return": false,
    "remaining_capture_amount": 2000.12,
    "remaining_authorization_amount": 3000.12,
    "username": "osvaldo88",
    "message": "lorem ipsum"
}


POST /client-id/{client_id}/accounts/{account_number}/refund

https://{posapi_url}/flexiti/pos-api/v2.5/client-id/{client_id}/accounts/12343/refund

The refund endpoint is used to refund a regular purchase. The amount refunded is credited to the customer’s account.

Request Parameters:

Type

Parameter

Required

Details

HEADER

authorization

Yes

  • ASCII string (1000)

  • This is the word “Bearer” with a space and then the access_token given in oauth/token API response

  • Default value: Bearer {insert_bearer_token_from_oauth_here/token_api}

HEADER

x-reference-id

Yes

  • ASCII string (32)

  • GUID

  • Unique identifier for the flow for traceability purposes

PATH

client_id

Yes

  • ASCII string (100)

  • This is the Client ID given in the Developer User Account section

PATH

account_number

Yes

  • number (14)

  • Flexiti Account Number retrieved from the /client-id/{client_id}/customers/lookup or the /client-id/{client_id}/customers/search endpoints

  • This is NOT the VCC (Flexiti Card) or the Customer ID

BODY

capture_id

No

  • Number (9)

  • Capture ID for the capture that is being refunded

  • This is necessary to associate SKU data to the refund

BODY

vcc_number


No

  • ASCII string(16)

  • The FlexitiCard number (VCC) provided by the Customer

  • To be used in a Business Card’s authorized User’s purchase, sent with the Master Account number

BODY

amount

Yes

  • number (20,2)

  • This is the amount to be refunded

BODY

reference

  • ASCII string (40)

  • Merchant Order ID to be saved within the refund

BODY

sku_data.purchase_order

No

  • ASCII string (10)

  • This data is provided by a Merchant. If passed as part of the request, it will be displayed on the customer’s statement. We do not validate this data and assume you are passing an accurate representation of the transactions details.

  • Purchase Number For the Merchant

BODY

sku_data.register_id

No

  • ASCII string (50)

  • This data is provided by a Merchant. If passed as part of the request, it will be displayed on the customer’s statement. We do not validate this data and assume you are passing an accurate representation of the transactions details.

  • The cashier machine where the transaction was placed

BODY

sku_data.transaction_discount_total

No

  • Integer (12,2)

  • This data is provided by a Merchant. If passed as part of the request, it will be displayed on the customer’s statement. We do not validate this data and assume you are passing an accurate representation of the transactions details.

  • Sum of all discounts on the order

BODY

sku_data.transaction_subtotal

No

  • Integer (12,2)

  • This data is provided by a Merchant. If passed as part of the request, it will be displayed on the customer’s statement. We do not validate this data and assume you are passing an accurate representation of the transactions details.

  • Sum of all totals for all items

BODY

sku_data.gst_hst

No

  • Number (18,2)

  • This data is provided by a Merchant. If passed as part of the request, it will be displayed on the customer’s statement. We do not validate this data and assume you are passing an accurate representation of the transactions details.

  • Goods and Services Tax (GST) and the Harmonized Sales Tax (HST)

BODY

sku_data.pst

No

  • Number (18,2)

  • This data is provided by a Merchant. If passed as part of the request, it will be displayed on the customer’s statement. We do not validate this data and assume you are passing an accurate representation of the transactions details.

  • Provincial Sales Tax applied to the order

BODY

sku_data.transaction_total

No

  • Number (18,2)

  • This data is provided by a Merchant. If passed as part of the request, it will be displayed on the customer’s statement. We do not validate this data and assume you are passing an accurate representation of the transactions details.

  • transaction_total = transaction_subtotal + gst_hst + pst

BODY

sku_data.products.sku_id

No

  • ASCII string (150)

  • This data is provided by a Merchant. If passed as part of the request, it will be displayed on the customer’s statement. We do not validate this data and assume you are passing an accurate representation of the transactions details.

  • Unique Identifier of the product SKU (Stock Keeping Unit)

BODY

sku_data.products.category

No

  • ASCII string (30)

  • This data is provided by a Merchant. If passed as part of the request, it will be displayed on the customer’s statement. We do not validate this data and assume you are passing an accurate representation of the transactions details.

  • Category for the product

BODY

sku_data.products.description

No

  • ASCII string (150)

  • This data is provided by a Merchant. If passed as part of the request, it will be displayed on the customer’s statement. We do not validate this data and assume you are passing an accurate representation of the transactions details.

  • Business-friendly description of the product

BODY

sku_data.products.quantity

No

  • Number (5)

  • This data is provided by a Merchant. If passed as part of the request, it will be displayed on the customer’s statement. We do not validate this data and assume you are passing an accurate representation of the transactions details.

  • The quantity of the items for the SKU array

    • Positive integer for sales

    • Negative - integer for a return

BODY

sku_data.products.unit_price

No

  • Number (18,2)

  • This data is provided by a Merchant. If passed as part of the request, it will be displayed on the customer’s statement. We do not validate this data and assume you are passing an accurate representation of the transactions details.

  • The price for a single SKU item

BODY

sku_data.products.extended_price

No

  • Number (18,2)

  • This data is provided by a Merchant. If passed as part of the request, it will be displayed on the customer’s statement. We do not validate this data and assume you are passing an accurate representation of the transactions details.

  • extended_price = [(unit_price x quantity) - discount_price] for this particular SKU array

BODY

external_location_id

Yes if In-store channel

  • ASCII string (100)

  • Used in the In-store channel

  • This is the merchant’s own location reference

BODY

external_employee_id

Yes if In-store channel

  • ASCII string (100)

  • Used in the In-store channel

  • This is the merchant’s own employee reference

Example Request:

{
    "reference": "orderid-12345",
    "amount": 1000.12
    "external_location_id" : "00-12345",  //if in-store channel
    "external_employee_id" :"12345-SMITH" //if in-store channel
    "vcc_number": "1234567890123423",
    "capture_id": 346123,
    "sku_data": {
        "purchase_order": "100001234",
        "register_id": "1A45",
        "transaction_discount_total": -125.08,
        "transaction_subtotal": -821.17,
        "transaction_total": -1026.47,
        "gst_hst": -133.45,
        "pst": -71.85,
        "products": [
            {
                "sku_id": "100xx4567",
                "category": "electronics",
                "description": "Apple Macbook 16-inch",
                "quantity": 1,
                "unit_price": 1000,
                "extended_price": 984.35
            },
            {
                "sku_id": "20bb3457",
                "category": "office supplies",
                "description": "24lb Multiuse Paper, White",
                "quantity": 1,
                "unit_price": 33.99,
                "extended_price": 42.12
            }
        ]
    },
}

Example Request: No SKU

{
    "reference": "orderid-12345",
    "amount": 1000.12
    "external_location_id" : "00-12345",  //if in-store channel
    "external_employee_id" :"12345-SMITH" //if in-store channel
    "vcc_number": "1234567890123423",
    "capture_id": 346123
}

Success Response:

{
}


GET /client-id/{clientId}/authorizations

https://{posapi_url}/flexiti/pos-api/v2.5.1/client-id/{client_id}/authorizations?lang=en&account_number=12341234&transaction_type=promotional_purchase&authorization_status=opened&creation_date_from=2018-11-11&creation_date_to=2018-12-11&page_number=1&page_size=10

NOTE: the /authorizations endpoint has been updated to version 2.5.1, reflected in the URI.

This service retrieves the list of credit authorizations created by a specific Merchant.

The Merchant could request the following credit authorizations according the parameters sent:

  • All authorizations for the Merchant (no parameters)

  • For a specific customer account number.

  • In a specific status.

  • Created in specific dates (date from and/or date to)

  • Combination of the previous criteria.

The list is returned ordered by creation_date descending and paginated.

Request Parameters:

Type

Parameter

Required

Details

HEADER

authorization

Yes

  • ASCII string (1000)

  • This is the word “Bearer” with a space and then the access_token given in oauth/token API response

  • Default value: Bearer {insert_bearer_token_from_oauth_here/token_api}

HEADER

x-reference-id

Yes

  • ASCII string (32)

  • GUID

  • Unique identifier for the flow for traceability purposes

PATH

client_id

Yes

  • ASCII string (100)

  • This is the Client ID given in the Developer User Account section

QUERY

lang


  • ASCII string (5)

  • Customer Preferred language

  • Available values: (en=English) or (fr=French)

  • Default value: en

QUERY

account_number

  • number (14)

  • Flexiti Account Number retrieved from the /client-id/{client_id}/customers/lookup or the /client-id/{client_id}/customers/search endpoints

  • This is not the FlexitiCard number (VCC) or the Customer ID

QUERY

transaction_type

  • ASCII String (20)

  • Type of transaction

  • Available values: promotional_purchase, regular_purchase

  • default: all authorizations will be retrieved

  • Supports multiple authorization statuses separated by comma

QUERY

authorization_status

  • ASCII String (20)

  • Supports multiple authorization statuses separated by comma

  • default: all authorizations will be retrieved

  • Possible Values: opened, unauthorized, onhold, closed

    • opened - initial status when the customer is present or has authorized the pre-auth (we can perform as many captures as we want)

    • unauthorized - initial status when the customer is not present and has not authorized the pre-auth yet

    • onhold - will denote authorizations where capture is currently prohibited because the customer account has a status other than Normal (reason NNOR)

    • closed - final status. It is no longer a valid pre-auth

QUERY

creation_date_from

  • UTC - ISO_8601 (20)

  • Available formats:

    • 2018-12-23 (If used, we will add UTC time 00:00:00).

    • 2018-09-09T01:01:01Z (Full UTC format)

  • From value for date range query

  • default: today - 1 month

QUERY

creation_date_to

  • UTC - ISO_8601 (20)

  • Available formats:

    • 2018-12-23 (If used, we will add UTC time 00:00:00).

    • 2018-09-09T01:01:01Z (Full UTC format)

  • To value for date range query

  • default: today

QUERY

page_number

Yes

  • numeric

  • number of the page to be returned

QUERY

page_size

  • numeric

  • number of results to be returned on each page

  • Default: 10

Response Parameters:

Type

Parameter

Details

BODY

count

  • number (20)

  • The total number of pages that the full response will take

BODY

page_number

  • number (20)

  • number of the page returned

BODY

page_size

  • number (20)

  • number of results returned on each page

BODY

next_page_url

  • ASCII string (200)

  • URL for next page of results

BODY

previous_page_url

  • ASCII string (200)

  • URL for previous page of results

BODY

authorizations.authorization_id

  • number (16)

  • ID of the credit authorization created

BODY

authorizations.reference

  • ASCII string (40)

  • Merchant Order ID to be saved within the credit authorization

BODY

authorizations.date

  • UTC - ISO_8601 (20)

  • Auto-calculated date-time of creation

BODY

authorizations.expiration_date

  • UTC - ISO_8601 (20)

  • Calculation based on the creation date and the expiration time configured for the Merchant

BODY

authorizations.ending_date

  • UTC - ISO_8601 (20)

  • The date when the authorization reached the "closed" status

BODY

authorizations.status

  • ASCII string (20)

  • Possible Values: opened, unauthorized, onhold, closed

    • opened - initial status when the customer is present or has authorized the pre-auth (we can perform as many captures as we want)

    • unauthorized - initial status when the customer is not present and has not authorized the pre-auth yet

    • onhold - will denote authorizations where capture is currently prohibited because the customer account has a status other than Normal (reason NNOR)

    • closed - final status. It is no longer a valid pre-auth

BODY

authorizations.auto_capture

  • boolean

  • This determines if it was an actual pre-auth or a purchase (pre-auth and capture at the same time)

BODY

authorizations.amount

  • number (18,2)

  • Authorization amount

BODY

authorizations.annual_rates.description

  • ASCII string

  • Customer facing long-form label of this interest rate

  • Merchant can choose to display either this field or the short-form label to the customer

BODY

authorizations.annual_rates.rate

  • number (5, 4)

  • Applicable interest rate presented in decimal form

  • Merchant is obligated to display this rate to the customer

BODY

authorizations.annual_rates.type

  • ASCII string

  • Customer facing short-form label of the interest rate

  • Merchant can choose to display either this field or the long-form label to the customer

  • Possible values: “APR”, “AIR” depending on the plan type / plan_id

BODY

authorizations.annual_rates.message

  • ASCII string (1000)

  • Used to convey legal disclaimer necessary to notify the customer about their promotional plan

  • Merchant is obligated to display this to the customer within 1-click away from the plan selection

BODY

authorizations.remaining_amount

  • number (18,2)

  • Calculated as original_amount + captured_amount - returned_amount - released_amount

BODY

authorizations.returned_amount

  • number (18,2)

  • Sum of returned amounts

BODY

authorizations.captured_amount

  • number (18,2)

  • Sum of captured amounts

BODY

authorizations.released_amount

  • number (18,2)

  • Sum of released amounts

BODY

authorizations.username

  • ASCII string (30)

  • username of the creator of the auth

BODY

authorizations.financing_option.transaction_type

  • ASCII String (20)

  • Type of transaction

  • Possible values: promotional_purchase, regular_purchase

BODY

authorizations.financing_option.plan_id

  • number (3)

  • Only applicable to Promotional Purchases

  • ID of the promotional plan

BODY

authorizations.financing_option.term

  • number (3)

  • Only applicable to Promotional Purchases

  • Term of the promotional plan

BODY

authorizations.fees.type

  • ASCII String (20)

  • Denotes if the administrative fee amount is a monthly or total amount

  • Possible values:

    • admin_total

    • admin_monthly

BODY

authorizations.fees.description

  • ASCII string (100)

  • Name, label or brief description of this fee

BODY

authorizations.fees.amount

  • number (10,2)

  • Amount of the fees

BODY

authorizations.merchant_information.corporation_id

  • number (10)

  • Corporation ID of the creator of the authorization

BODY

authorizations.merchant_information.corporation_name

  • ASCII string (255)

  • Corporation name of the creator of the authorization

BODY

authorizations.merchant_information.merchant_id

  • number (10)

  • Merchant ID of the creator of the authorization

BODY

authorizations.merchant_information.merchant_name

  • ASCII string (130)

  • Merchant name of the creator of the authorization

BODY

authorizations.merchant_information.location_id

  • number (10)

  • Location ID of the creator of the authorization

BODY

authorizations.merchant_information.location_name

  • ASCII string (130)

  • Location name of the creator of the authorization

BODY

authorizations.customer.air

  • number (5,4)

  • air for the customer

BODY

authorizations.customer.first_name

  • ASCII string (80)

  • First name of the customer

BODY

authorizations.customer.last_name

  • ASCII string (130)

  • Last name of the customer

BODY

authorizations.customer.category_type

  • ASCII string (30)

  • Category related to the customer’s risk rating

  • Possible values: preferred, premium, standard

Success Response:

{
    "count": 1,
    "page_number": 1,
    "page_size": 100,
    "authorizations": [
        {
            "authorization_id": 1017188,
            "reference": "Order-1234",
            "date": "2022-06-06T13:08:05Z",
            "expiration_date": "2023-06-06T13:08:05Z",
            "ending_date": "2022-06-06T13:08:06Z",
            "status": "closed",
            "auto_capture": true,
            "amount": 173.6,
            "remaining_amount": 0,
            "returned_amount": 0,
            "captured_amount": 173.6,
            "released_amount": 0,
            "username": "jjones",
            "financing_option": {
                "transaction_type": "promotional_purchase",
                "plan_id": 4,
                "term": 6
            },
            "fees": [
                {
                    "type": "admin_total",
                    "amount": 50,
                    "description": "Administrative fees:"
                }
            ],
            "merchant_information": {
                "corporation_id": 1091,
                "corporation_name": "Flexiti",
                "merchant_id": 0,
                "merchant_name": "Training - Flexiti",
                "location_id": 5205,
                "location_name": "FlexitiTraining"
            },
            "customer": {
                "air": 0.3099,
                "first_name": "Flexiti",
                "last_name": "MITester",
                "category_type": "preferred"
            },
            "annual_rates": {
                "description": "Annual Promotional Interest Rate:",
                "rate": 0.0999,
                "type": "APR",
                "message": "Promotional annual interest rate applies during the promotional period and is included in your estimated monthly payments. Account annual interest rate is charged if the promo is cancelled or expires without full payment and applies when promos are not in effect."
            }
        }
    ],
    "previous_url": null,
    "next_url": null
}


GET /client-id/{clientId}/authorization/{authorizationId}

https://{posapi_url}/flexiti/pos-api/v2.5.1/client-id/{client_id}/authorization/12343&lang=en

NOTE: the /authorization/{authorizationId} endpoint has been updated to version 2.5.1, reflected in the URI.

This endpoint retrieves a specific credit authorization created by a Merchant.

Request Parameters:

Type

Parameter

Required

Details

HEADER

authorization

Yes

  • ASCII string (1000)

  • This is the word “Bearer” with a space and then the access_token given in oauth/token API response

  • Default value: Bearer {insert_bearer_token_from_oauth_here/token_api}

HEADER

x-reference-id

Yes

  • ASCII string (32)

  • GUID

  • Unique identifier for the flow for traceability purposes

PATH

client_id

Yes

  • ASCII string (100)

  • This is the Client ID given in the Developer User Account section

PATH

authorization_id

Yes

  • number (16)

  • This is the authorization ID to be retrieved

QUERY

lang


Yes

  • ASCII string (5)

  • Customer Preferred language

  • Available values: (en=English) or (fr=French)

  • Default value: en

Response Parameters:

Type

Parameter

Details

BODY

authorization_id

  • number (16)

  • ID of the credit authorization created

BODY

reference

  • ASCII string (40)

  • Merchant Order ID to be saved within the credit authorization

BODY

date

  • UTC - ISO_8601 (20)

  • Auto-calculated date-time of creation

BODY

expiration_date

  • UTC - ISO_8601 (20)

  • Calculation based on the creation date and the expiration time configured for the Merchant

BODY

ending_date

  • UTC - ISO_8601 (20)

  • The date when the authorization reached the "closed" status

BODY

status

  • ASCII string (20)

  • Possible Values: opened, unauthorized, onhold, closed

    • opened - initial status when the customer is present or has authorized the pre-auth (we can perform as many captures as we want)

    • unauthorized - initial status when the customer is not present and has not authorized the pre-auth yet

    • onhold - will denote authorizations where capture is currently prohibited because the customer account has a status other than Normal (reason NNOR)

    • closed - final status. It is no longer a valid pre-auth

BODY

auto_capture

  • boolean

  • This determines if it was an actual pre-auth or a purchase (pre-auth and capture at the same time)

BODY

amount

  • number (18,2)

  • Authorization amount

BODY

annual_rates.description

  • ASCII string

  • Customer facing long-form label of this interest rate

  • Merchant can choose to display either this field or the short-form label to the customer

BODY

annual_rates.rate

  • number (5, 4)

  • Applicable interest rate presented in decimal form

  • Merchant is obligated to display this rate to the customer

BODY

annual_rates.type

  • ASCII string

  • Customer facing short-form label of the interest rate

  • Merchant can choose to display either this field or the long-form label to the customer

  • Possible values: “APR”, “AIR” depending on the plan type / plan_id

BODY

annual_rates.message

  • ASCII string (1000)

  • Used to convey legal disclaimer necessary to notify the customer about their promotional plan

  • Merchant is obligated to display this to the customer within 1-click away from the plan selection

BODY

remaining_amount

  • number (18,2)

  • Calculated as original_amount + captured_amount - returned_amount - released_amount

BODY

returned_amount

  • number (18,2)

  • Sum of returned amounts

BODY

captured_amount

  • number (18,2)

  • Sum of captured amounts

BODY

released_amount

  • number (18,2)

  • Sum of released amounts

BODY

username

  • ASCII string (30)

  • username of the creator of the auth

BODY

financing_option.transaction_type

  • ASCII String (20)

  • Type of transaction

  • Possible values: promotional_purchase, regular_purchase

BODY

financing_option.plan_id

  • number (3)

  • Only applicable to Promotional Purchases

  • ID of the promotional plan

BODY

financing_option.term

  • number (3)

  • Only applicable to Promotional Purchases

  • Term of the promotional plan

BODY

fees.type

  • ASCII String (20)

  • Denotes if the administrative fee amount is a monthly or total amount

  • Possible values:

    • admin_total

    • admin_monthly

BODY

fees.description

  • ASCII string (100)

  • Name, label or brief description of this fee

BODY

fees.amount

  • number (20,2)

  • Amount of the fees

BODY

merchant_information.corporation_id

  • number (10)

  • Corporation ID of the creator of the authorization

BODY

merchant_information.corporation_name

  • ASCII string (255)

  • Corporation name of the creator of the authorization

BODY

merchant_information.merchant_id

  • number (10)

  • Merchant ID of the creator of the authorization

BODY

merchant_information.merchant_name

  • ASCII string (130)

  • Merchant name of the creator of the authorization

BODY

merchant_information.location_id

  • number (10)

  • Location ID of the creator of the authorization

BODY

merchant_information.location_name

  • ASCII string (130)

  • Location name of the creator of the authorization

BODY

customer.air

  • number (5,4)

  • air for the customer

BODY

customer.available_credit

  • number (18,2)

  • The customer’s available credit

  • Calculated based on current available credit minus the authorization’s original amount plus fees plus interest according to the financing option

BODY

customer.first_name

  • ASCII string (80)

  • First name of the customer

BODY

customer.last_name

  • ASCII string (130)

  • Last name of the customer

BODY

customer.category_type

  • ASCII string (30)

  • Category related to the customer’s risk rating

  • Possible values: preferred, premium, standard

BODY

captures.capture_id

  • number (9)

  • ID of the capture created

BODY

captures.reference

  • ASCII string (40)

  • Merchant Order ID saved with the capture

BODY

captures.date

  • UTC - ISO_8601 (20)

  • The date of the capture

BODY

captures.status

  • ASCII string (20)

  • Status of the capture

  • Possible values: active, canceled, defaulted, inactive

BODY

captures.username

  • ASCII string (30)

  • username of the employee that performed the capture

BODY

captures.term_amount

  • number (18,2)

  • Value to explain the amount to be paid by month (or a deferred payment)

BODY

captures.amount

  • number (18,2)

  • Amount of the capture

BODY

returns.return_id

  • number (16)

  • ID of the return created

BODY

returns.reference

  • ASCII string (40)

  • Merchant Order ID saved with the return

BODY

returns.date

  • UTC - ISO_8601 (20)

  • The date of the return

BODY

returns.username

  • ASCII string (30)

  • username of the employee that performed the return

BODY

returns.amount

  • number (18,2)

  • Amount of the return

BODY

releases.release_id

  • number (16)

  • ID of the release created

BODY

releases.reference

  • ASCII string (40)

  • Merchant Order ID saved with the release

BODY

releases.date

  • UTC - ISO_8601 (20)

  • The date of the release

BODY

releases.username

  • ASCII string (30)

  • username of the employee that performed the release

BODY

releases.amount

  • number (18,2)

  • Amount of the release

Success Response:

{
    "authorization_id": 1017188,
    "reference": "Order-1234",
    "date": "2022-06-06T13:08:05Z",
    "expiration_date": "2023-06-06T13:08:05Z",
    "ending_date": "2022-06-06T13:08:06Z",
    "auto_capture": true,
    "amount": 173.6,
    "remaining_amount": 0,
    "returned_amount": 0,
    "captured_amount": 173.6,
    "released_amount": 0,
    "username": "jjones",
    "status": "closed",
    "financing_option": {
        "transaction_type": "promotional_purchase",
        "plan_id": 4,
        "term": 6
    },
    "fees": [
        {
            "type": "admin_total",
            "amount": 50,
            "description": "Administrative fees:"
        }
    ],
    "merchant_information": {
        "corporation_id": 1091,
        "corporation_name": "Flexiti",
        "merchant_id": 1291315,
        "merchant_name": "Training - Flexiti",
        "location_id": 5205,
        "location_name": "Flexiti Training"
    },
    "customer": {
        "air": 0.3099,
        "available_credit": 13276.4,
        "first_name": "Flexiti",
        "last_name": "MITester6",
        "category_type": "preferred"
    },
    "captures": [
        {
            "reference": "Order-1234",
            "date": "2022-06-06T13:08:06Z",
            "status": "active",
            "username": "jjones",
            "term_amount": 29.78,
            "amount": 173.6,
            "capture_id": 382566
        }
    ],
    "returns": [],
    "releases": [],
    "VCC": null,
    "customer_validated": true,
    "annual_rates": {
        "description": "Annual Promotional Interest Rate:",
        "rate": 0.0999,
        "type": "APR",
        "message": "Promotional annual interest rate applies during the promotional period and is included in your estimated monthly payments. Account annual interest rate is charged if the promo is cancelled or expires without full payment and applies when promos are not in effect."
    }
}


GET /client-id/{clientId}/captures

https://{posapi_url}/flexiti/pos-api/v2.5.1/client-id/{client_id}/captures&lang=en&account_number=12341234
&transaction_type=promotional_purchase&capture_status=opened&creation_date_from=2018-11-11&creation_date_to=2018-12-11&capture_id=1234&authorization_corporation_id=1234&authorization_merchant_id=1234&authorization_location_id=1122&authorization_employee_username=billm&capture_employee_username=johnm&page_number=1&page_size=10

NOTE: the /captures endpoint has been updated to version 2.5.1, reflected in the URI.

This service retrieves the list of captures created by a specific Merchant.

The Merchant could request the following captures according the parameters sent:

  • All captures for the Merchant in the past 30 days (no parameters)

  • For a specific customer account number.

  • For a specific transaction type.

  • In a specific status.

  • Created in specific dates (date from and/or date to)

  • For a specific account number.

  • For a variety of Merchant roles.

  • Combination of the previous criteria.

The list is returned ordered by creation_date descending and paginated.

Request Parameters:

Type

Parameter

Required

Details

HEADER

authorization

Yes

  • ASCII string (1000)

  • This is the word “Bearer” with a space and then the access_token given in oauth/token API response

  • Default value: Bearer {insert_bearer_token_from_oauth_here/token_api}

HEADER

x-reference-id

Yes

  • ASCII string (32)

  • GUID

  • Unique identifier for the flow for traceability purposes

PATH

client_id

Yes

  • ASCII string (100)

  • This is the Client ID given in the Developer User Account section

QUERY

lang


  • ASCII string (5)

  • Available values: (en=English) or (fr=French)

  • Default value: en

QUERY

account_number

  • number (14)

  • Flexiti Account Number retrieved from the /client-id/{client_id}/customers/lookup or the /client-id/{client_id}/customers/search endpoints

  • This is not the FlexitiCard number (VCC) or the Customer ID

QUERY

transaction_type

  • ASCII String (20)

  • Type of transaction

  • Available values: promotional_purchase, regular_purchase

  • Default: all authorizations will be retrieved.

  • Supports multiple authorization statuses separated by comma.

QUERY

capture_status

  • ASCII String (20)

  • Available values: active, canceled, defaulted, inactive

  • Default: all authorizations will be retrieved.

  • Supports multiple authorization statuses separated by comma.

QUERY

creation_date_from

  • UTC - ISO_8601 (20)

  • Available formats:

    • 2018-12-23 (If used, we will add UTC time 00:00:00).

    • 2018-09-09T01:01:01Z (Full UTC format)

  • From value for date range query

  • default: today - 1 month

QUERY

creation_date_to

  • UTC - ISO_8601 (20)

  • Available formats:

    • 2018-12-23 (If used, we will add UTC time 00:00:00).

    • 2018-09-09T01:01:01Z (Full UTC format)

  • To value for date range query

  • Default: today

QUERY

capture_id

  • number (9)

  • ID of the capture to be retrieved

QUERY

authorization_corporation_id

  • number (10)

  • Corporation ID of the creator of the authorization

QUERY

authorization_merchant_id

  • number (10)

  • Merchant ID of the creator of the authorization

QUERY

authorization_location_id

  • number (10)

  • Location ID of the creator of the authorization

QUERY

authorization_employee_username

  • ASCII string (30)

  • Merchant name of the creator of the authorization

QUERY

capture_employee_username

  • ASCII string (30)

  • Merchant name of the creator of the capture

QUERY

page_number

Yes

  • number (3)

  • number of page we are returning

QUERY

page_size

  • number (3)

  • Number of results to be returned on each page

  • Default: 10

Response Parameters:

Type

Parameter

Details

BODY

count

  • number (20)

  • The total number of pages that the full response will take

BODY

page_number

  • number (3)

  • number of the page returned

BODY

page_size

  • number (3)

  • number of results returned on each page

BODY

next_page_url

  • ASCII string (200)

  • URL for next page of results

BODY

previous_page_url

  • ASCII string (200)

  • URL for previous page of results

BODY

captures.capture.capture_id

  • number (9)

  • ID of the capture created

BODY

captures.capture.capture_date

  • UTC - ISO_8601 (20)

  • Auto-calculated date-time of capture

BODY

captures.capture.amount

  • number (18,2)

  • Capture amount

BODY

captures.capture.capture_status

  • ASCII string (20)

  • Possible values:

    • pending - pending supervision/accreditation

    • active - can be returned

    • inactive - when the capture has been fully returned

    • cancelled - when the capture has been rejected at supervision/accreditation

BODY

captures.capture.reference

  • ASCII string (40)

  • Merchant Order ID saved within the capture

BODY

captures.capture.username

  • ASCII string (30)

  • username of the creator of the capture

BODY

captures.capture.authorization.authorization_id

  • number (16)

  • ID of the credit authorization created

BODY

captures.capture.authorization.reference

  • ASCII string (40)

  • Merchant Order ID saved within the credit authorization.

BODY

captures.capture.authorization.financing_option.transaction_type

  • ASCII String (20)

  • Type of transaction

  • Possible values: promotional_purchase, regular_purchase

BODY

captures.capture.authorization.financing_option.plan_id

  • number (3)

  • Only applicable to Promotional Purchases

  • ID of the promotional plan

BODY

captures.capture.authorization.financing_option.term

  • number (3)

  • Only applicable to Promotional Purchases

  • Term of the promotional plan

BODY

captures.capture.authorization.annual_rates.description

  • ASCII string

  • Customer facing long-form label of this interest rate

  • Merchant can choose to display either this field or the short-form label to the customer

BODY

captures.capture.authorization.annual_rates.rate

  • number (5, 4)

  • Applicable interest rate presented in decimal form

  • Merchant is obligated to display this rate to the customer

BODY

captures.capture.authorization.annual_rates.type

  • ASCII string

  • Customer facing short-form label of the interest rate

  • Merchant can choose to display either this field or the long-form label to the customer

  • Possible values: “APR”, “AIR” depending on the plan type / plan_id

BODY

captures.capture.authorization.annual_rates.message

  • ASCII string (1000)

  • Used to convey legal disclaimer necessary to notify the customer about their promotional plan

  • Merchant is obligated to display this to the customer within 1-click away from the plan selection

BODY

captures.capture.authorization.auto_capture

  • boolean

  • This determines if it was an actual pre-auth or a purchase (pre-auth and capture at the same time)

BODY

captures.capture.authorization.merchant_information.corporation_id

  • number (10)

  • Corporation ID of the creator of the authorization

BODY

captures.capture.authorization.merchant_information.corporation_name

  • ASCII string (255)

  • Corporation name of the creator of the authorization

BODY

captures.capture.authorization.merchant_information.merchant_id

  • number (10)

  • Merchant ID of the creator of the authorization

BODY

captures.capture.authorization.merchant_information.merchant_name

  • ASCII string (130)

  • Merchant name of the creator of the authorization

BODY

captures.capture.authorization.merchant_information.location_id

  • number (10)

  • Location ID of the creator of the authorization

BODY

captures.capture.authorization.merchant_information.location_name

  • ASCII string (130)

  • Location name of the creator of the authorization

BODY

captures.capture.authorization.customer.first_name

  • ASCII string (80)

  • First name of customer

BODY

captures.capture.authorization.customer.last_name

  • ASCII string (130)

  • Last name of customer

BODY

captures.capture.authorization.customer.customer_category_type

  • ASCII string (30)

  • Category related to the customer’s risk rating

  • Possible values: preferred, premium, standard

BODY

captures.capture.returns.return_id

  • number (16)

  • ID of the return associated

BODY

captures.capture.returns.reference

  • ASCII String (40)

  • Merchant Order ID to be saved within the return

BODY

captures.capture.returns.return_date

  • UTC - ISO_8601 (20)

  • Date of the return

BODY

captures.capture.return.amount

  • number (18,2)

  • return amount

BODY

captures.capture.return.username

  • ASCII string (30)

  • username of the creator of the return

Success Response:

{
    "count": 1,
    "page_number": 1,
    "page_size": 100,
    "captures": [
        {
            "capture_id": 382566,
            "reference": "Order-1234",
            "date": "2022-06-06T13:08:06Z",
            "amount": 173.6,
            "username": "azhaomitest",
            "status": "active",
            "authorization": {
                "authorization_id": 1017188,
                "reference": "Order-1234",
                "auto_capture": true,
                "username": "jjones",
                "customer": {
                    "first_name": "Flexiti",
                    "last_name": "MITester",
                    "category_type": "preferred"
                },
                "financing_option": {
                    "transaction_type": "promotional_purchase",
                    "plan_id": 4,
                    "term": 6
                },
                "merchant_information": {
                    "corporation_id": 1091,
                    "corporation_name": "Flexiti",
                    "merchant_id": 1291315,
                    "merchant_name": "Training - Flexiti",
                    "location_id": 5205,
                    "location_name": "Flexiti Training"
                },
                "annual_rates": {
                    "description": "Annual Promotional Interest Rate:",
                    "rate": 0.0999,
                    "type": "APR",
                    "message": "Promotional annual interest rate applies during the promotional period and is included in your estimated monthly payments. Account annual interest rate is charged if the promo is cancelled or expires without full payment and applies when promos are not in effect."
                }
            },
            "returns": []
        }
    ],
    "previous_url": null,
    "next_url": null
}

  • No labels