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 |
|
HEADER | x-reference-id | Yes |
|
PATH | client_id | Yes |
|
QUERY | lang |
| |
BODY | transaction_type |
|
|
BODY | amount |
| |
BODY | vcc_number |
| |
BODY | account_number |
| |
BODY | customer_id |
| |
BODY | verification_code | Yes |
|
BODY | request_id | Yes for in-store channel |
|
BODY | external_location_id | Yes for in-store channel |
|
BODY | external_employee_id | Yes for in-store channel |
|
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 |
|
HEADER | x-reference-id | Yes |
|
PATH | client_id | Yes |
|
QUERY | lang |
| |
BODY | account_number | Yes |
|
BODY | vcc_number |
|
|
BODY | reference | No |
|
BODY | financing_option.transaction_type | Yes |
|
BODY | financing_option.plan_id | Yes for transaction_type = promotional_purchase |
|
BODY | financing_option.term |
|
|
BODY | amount |
|
|
BODY | auto_capture | Yes |
|
BODY | verification_code | Yes for in-store POS integrations. Not to be passed for Online implementations using the Widget |
|
BODY | sku_data.purchase_order | No |
|
BODY | sku_data.shipping_total | No |
|
BODY | sku_data.register_id | No |
|
BODY | sku_data.transaction_discount_total | No |
|
BODY | sku_data.transaction_subtotal | No |
|
BODY | sku_data.gst_hst | No |
|
BODY | sku_data.pst | No |
|
BODY | sku_data.transaction_total | No |
|
BODY | sku_data.products.sku_id | No |
|
BODY | sku_data.products.category | No |
|
BODY | sku_data.products.description | No |
|
BODY | sku_data.products.quantity | No |
|
BODY | sku_data.products.unit_price | No |
|
BODY | sku_data.products.extended_price | No |
|
BODY | billing_information.first_name | Yes if Online Channel |
|
BODY | billing_information.last_name | Yes if Online Channel |
|
BODY | billing_information.address_1 | Yes if Online Channel |
|
BODY | billing_information.address_2 | Yes if Online Channel |
|
BODY | billing_information.city | Yes if Online Channel |
|
BODY | billing_information.province | Yes if Online Channel |
|
BODY | billing_information.postal_code | Yes if Online Channel |
|
BODY | shipping_information.first_name | Yes if Online Channel |
|
BODY | shipping_information.last_name | Yes if Online Channel |
|
BODY | shipping_information.address_1 | Yes if Online Channel |
|
BODY | shipping_information.address_2 | Yes if Online Channel |
|
BODY | shipping_information.city | Yes if Online Channel |
|
BODY | shipping_information.province | Yes if Online Channel |
|
BODY | shipping_information.postal_code | Yes if Online Channel |
|
BODY | widget_session_id | Yes if Online Channel |
|
BODY | request_id | Yes for in-store channel |
|
BODY | external_location_id | Yes for In-store channel |
|
BODY | external_employee_id | Yes for In-store channel |
|
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 |
|
BODY | reference |
|
BODY | date |
|
BODY | expiration_date |
|
BODY | ending_date |
|
BODY | status |
|
BODY | auto_capture |
|
BODY | amount |
|
BODY | annual_rates.description |
|
BODY | annual_rates.rate |
|
BODY | annual_rates.type |
|
BODY | annual_rates.message |
|
BODY | message |
|
BODY | username |
|
BODY | financing_option.transaction_type |
|
BODY | financing_option.plan_id |
|
BODY | financing_option.term |
|
BODY | fees.type |
|
BODY | fees.description |
|
BODY | fees.amount |
|
BODY | fees.message |
|
BODY | merchant_information.corporation_id |
|
BODY | merchant_information.corporation_name |
|
BODY | merchant_information.merchant_id |
|
BODY | merchant_information.merchant_name |
|
BODY | merchant_information.location_id |
|
BODY | merchant_information.location_name |
|
BODY | customer.air |
|
BODY | customer.available_credit |
|
BODY | customer.first_name |
|
BODY | customer.last_name |
|
BODY | customer.category_type |
|
BODY | capture.capture_id |
|
BODY | capture.reference |
|
BODY | capture.date |
|
BODY | capture.status |
|
BODY | capture.term_amount |
|
BODY | capture.amount |
|
BODY | billing_information.first_name |
|
BODY | billing_information.last_name |
|
BODY | billing_information.address_1 |
|
BODY | billing_information.address_2 |
|
BODY | billing_information.city |
|
BODY | billing_information.province |
|
BODY | billing_information.postal_code |
|
BODY | shipping_information.first_name |
|
BODY | shipping_information.last_name |
|
BODY | shipping_information.address_1 |
|
BODY | shipping_information.address_2 |
|
BODY | shipping_information.city |
|
BODY | shipping_information.province |
|
BODY | shipping_information.postal_code |
|
BODY | account_avs.billing_information.first_name |
|
BODY | account_avs.billing_information.last_name |
|
BODY | account_avs.billing_information.address_1 |
|
BODY | account_avs.billing_information.address_2 |
|
BODY | account_avs.billing_information.city |
|
BODY | account_avs.billing_information.province |
|
BODY | account_avs.billing_information.postal_code |
|
BODY | account_avs.shipping_information.first_name |
|
BODY | account_avs.shipping_information.last_name |
|
BODY | account_avs.shipping_information.address_1 |
|
BODY | account_avs.shipping_information.address_2 |
|
BODY | account_avs.shipping_information.city |
|
BODY | account_avs.shipping_information.province |
|
BODY | account_avs.shipping_information.postal_code |
|
BODY | account_avs.business_billing_information.first_name |
|
BODY | account_avs.business_billing_information.last_name |
|
BODY | account_avs.business_billing_information.address_1 |
|
BODY | account_avs.business_billing_information.address_2 |
|
BODY | account_avs.business_billing_information.city |
|
BODY | account_avs.business_billing_information.province |
|
BODY | account_avs.business_billing_information.postal_code |
|
BODY | account_avs.business_shipping_information.first_name |
|
BODY | account_avs.business_shipping_information.last_name |
|
BODY | account_avs.business_shipping_information.address_1 |
|
BODY | account_avs.business_shipping_information.address_2 |
|
BODY | account_avs.business_shipping_information.city |
|
BODY | account_avs.business_shipping_information.province |
|
BODY | account_avs.business_shipping_information.postal_code |
|
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 |
|
HEADER | x-reference-id | Yes |
|
PATH | client_id | Yes |
|
QUERY | lang |
| |
PATH | authorization_id | Yes |
|
BODY | reference |
| |
BODY | full_release |
| |
BODY | amount | Yes if full_release is “false” |
|
BODY | external_location_id | Yes if In-store channel |
|
BODY | external_employee_id | Yes if In-store channel |
|
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 |
|
BODY | reference |
|
BODY | authorization_id |
|
BODY | date |
|
BODY | amount |
|
BODY | full_release |
|
BODY | remaining_authorization_amount |
|
BODY | username |
|
BODY | message |
|
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 |
|
HEADER | x-reference-id | Yes |
|
PATH | client_id | Yes |
|
QUERY | lang |
| |
PATH | authorization_id | Yes |
|
BODY | reference |
| |
BODY | amount | Yes |
|
BODY | sku_data.purchase_order | No |
|
BODY | sku_data.shipping_total | No |
|
BODY | sku_data.register_id | No |
|
BODY | sku_data.transaction_discount_total | No |
|
BODY | sku_data.transaction_subtotal | No |
|
BODY | sku_data.gst_hst | No |
|
BODY | sku_data.pst | No |
|
BODY | sku_data.transaction_total | No |
|
BODY | sku_data.products.sku_id | No |
|
BODY | sku_data.products.category | No |
|
BODY | sku_data.products.description | No |
|
BODY | sku_data.products.quantity | No |
|
BODY | sku_data.products.unit_price | No |
|
BODY | sku_data.products.extended_price | No |
|
BODY | external_location_id | Yes if In-store channel |
|
BODY | external_employee_id | Yes if In-store channel |
|
Example Request with SKU Data:
{ "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 } ] }
Example Request without SKU Data:
{ "reference": "orderid-12345", "amount": 3000.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 | capture_id |
|
BODY | reference |
|
BODY | authorization_id |
|
BODY | date |
|
BODY | amount |
|
BODY | remaining_authorization_amount |
|
BODY | term_amount |
|
BODY | username |
|
BODY | status |
|
BODY | message |
|
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 |
|
HEADER | x-reference-id | Yes |
|
PATH | client_id | Yes |
|
QUERY | lang |
| |
PATH | authorization_id | Yes |
|
PATH | capture_id | Yes |
|
BODY | vcc_number |
|
|
BODY | reference |
| |
BODY | full_return |
| |
BODY | amount | Yes if full_return is false |
|
BODY | sku_data.purchase_order | No |
|
BODY | sku_data.register_id | No |
|
BODY | sku_data.transaction_discount_total | No |
|
BODY | sku_data.transaction_subtotal | No |
|
BODY | sku_data.gst_hst | No |
|
BODY | sku_data.pst | No |
|
BODY | sku_data.transaction_total | No |
|
BODY | sku_data.products.sku_id | No |
|
BODY | sku_data.products.category | No |
|
BODY | sku_data.products.description | No |
|
BODY | sku_data.products.quantity | No |
|
BODY | sku_data.products.unit_price | No |
|
BODY | sku_data.products.extended_price | No |
|
BODY | external_location_id | Yes if In-store channel |
|
BODY | external_employee_id | Yes if In-store channel |
|
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 |
|
BODY | reference |
|
BODY | capture_id |
|
BODY | date |
|
BODY | amount |
|
BODY | remaining_capture_amount |
|
BODY | remaining_authorization_amount |
|
BODY | username |
|
BODY | message |
|
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 |
|
HEADER | x-reference-id | Yes |
|
PATH | client_id | Yes |
|
PATH | account_number | Yes |
|
BODY | capture_id | No |
|
BODY | vcc_number |
|
|
BODY | amount | Yes |
|
BODY | reference |
| |
BODY | sku_data.purchase_order | No |
|
BODY | sku_data.register_id | No |
|
BODY | sku_data.transaction_discount_total | No |
|
BODY | sku_data.transaction_subtotal | No |
|
BODY | sku_data.gst_hst | No |
|
BODY | sku_data.pst | No |
|
BODY | sku_data.transaction_total | No |
|
BODY | sku_data.products.sku_id | No |
|
BODY | sku_data.products.category | No |
|
BODY | sku_data.products.description | No |
|
BODY | sku_data.products.quantity | No |
|
BODY | sku_data.products.unit_price | No |
|
BODY | sku_data.products.extended_price | No |
|
BODY | external_location_id | Yes if In-store channel |
|
BODY | external_employee_id | Yes if In-store channel |
|
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 |
|
HEADER | x-reference-id | Yes |
|
PATH | client_id | Yes |
|
QUERY | lang |
| |
QUERY | account_number |
| |
QUERY | transaction_type |
| |
QUERY | authorization_status |
| |
QUERY | creation_date_from |
| |
QUERY | creation_date_to |
| |
QUERY | page_number | Yes |
|
QUERY | page_size |
|
Response Parameters:
Type | Parameter | Details |
---|---|---|
BODY | count |
|
BODY | page_number |
|
BODY | page_size |
|
BODY | next_page_url |
|
BODY | previous_page_url |
|
BODY | authorizations.authorization_id |
|
BODY | authorizations.reference |
|
BODY | authorizations.date |
|
BODY | authorizations.expiration_date |
|
BODY | authorizations.ending_date |
|
BODY | authorizations.status |
|
BODY | authorizations.auto_capture |
|
BODY | authorizations.amount |
|
BODY | authorizations.annual_rates.description |
|
BODY | authorizations.annual_rates.rate |
|
BODY | authorizations.annual_rates.type |
|
BODY | authorizations.annual_rates.message |
|
BODY | authorizations.remaining_amount |
|
BODY | authorizations.returned_amount |
|
BODY | authorizations.captured_amount |
|
BODY | authorizations.released_amount |
|
BODY | authorizations.username |
|
BODY | authorizations.financing_option.transaction_type |
|
BODY | authorizations.financing_option.plan_id |
|
BODY | authorizations.financing_option.term |
|
BODY | authorizations.fees.type |
|
BODY | authorizations.fees.description |
|
BODY | authorizations.fees.amount |
|
BODY | authorizations.merchant_information.corporation_id |
|
BODY | authorizations.merchant_information.corporation_name |
|
BODY | authorizations.merchant_information.merchant_id |
|
BODY | authorizations.merchant_information.merchant_name |
|
BODY | authorizations.merchant_information.location_id |
|
BODY | authorizations.merchant_information.location_name |
|
BODY | authorizations.customer.air |
|
BODY | authorizations.customer.first_name |
|
BODY | authorizations.customer.last_name |
|
BODY | authorizations.customer.category_type |
|
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 |
|
HEADER | x-reference-id | Yes |
|
PATH | client_id | Yes |
|
PATH | authorization_id | Yes |
|
QUERY | lang |
|
|
Response Parameters:
Type | Parameter | Details |
---|---|---|
BODY | authorization_id |
|
BODY | reference |
|
BODY | date |
|
BODY | expiration_date |
|
BODY | ending_date |
|
BODY | status |
|
BODY | auto_capture |
|
BODY | amount |
|
BODY | annual_rates.description |
|
BODY | annual_rates.rate |
|
BODY | annual_rates.type |
|
BODY | annual_rates.message |
|
BODY | remaining_amount |
|
BODY | returned_amount |
|
BODY | captured_amount |
|
BODY | released_amount |
|
BODY | username |
|
BODY | financing_option.transaction_type |
|
BODY | financing_option.plan_id |
|
BODY | financing_option.term |
|
BODY | fees.type |
|
BODY | fees.description |
|
BODY | fees.amount |
|
BODY | merchant_information.corporation_id |
|
BODY | merchant_information.corporation_name |
|
BODY | merchant_information.merchant_id |
|
BODY | merchant_information.merchant_name |
|
BODY | merchant_information.location_id |
|
BODY | merchant_information.location_name |
|
BODY | customer.air |
|
BODY | customer.available_credit |
|
BODY | customer.first_name |
|
BODY | customer.last_name |
|
BODY | customer.category_type |
|
BODY | captures.capture_id |
|
BODY | captures.reference |
|
BODY | captures.date |
|
BODY | captures.status |
|
BODY | captures.username |
|
BODY | captures.term_amount |
|
BODY | captures.amount |
|
BODY | returns.return_id |
|
BODY | returns.reference |
|
BODY | returns.date |
|
BODY | returns.username |
|
BODY | returns.amount |
|
BODY | releases.release_id |
|
BODY | releases.reference |
|
BODY | releases.date |
|
BODY | releases.username |
|
BODY | releases.amount |
|
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 |
|
HEADER | x-reference-id | Yes |
|
PATH | client_id | Yes |
|
QUERY | lang |
| |
QUERY | account_number |
| |
QUERY | transaction_type |
| |
QUERY | capture_status |
| |
QUERY | creation_date_from |
| |
QUERY | creation_date_to |
| |
QUERY | capture_id |
| |
QUERY | authorization_corporation_id |
| |
QUERY | authorization_merchant_id |
| |
QUERY | authorization_location_id |
| |
QUERY | authorization_employee_username |
| |
QUERY | capture_employee_username |
| |
QUERY | page_number | Yes |
|
QUERY | page_size |
|
Response Parameters:
Type | Parameter | Details |
---|---|---|
BODY | count |
|
BODY | page_number |
|
BODY | page_size |
|
BODY | next_page_url |
|
BODY | previous_page_url |
|
BODY | captures.capture.capture_id |
|
BODY | captures.capture.capture_date |
|
BODY | captures.capture.amount |
|
BODY | captures.capture.capture_status |
|
BODY | captures.capture.reference |
|
BODY | captures.capture.username |
|
BODY | captures.capture.authorization.authorization_id |
|
BODY | captures.capture.authorization.reference |
|
BODY | captures.capture.authorization.financing_option.transaction_type |
|
BODY | captures.capture.authorization.financing_option.plan_id |
|
BODY | captures.capture.authorization.financing_option.term |
|
BODY | captures.capture.authorization.annual_rates.description |
|
BODY | captures.capture.authorization.annual_rates.rate |
|
BODY | captures.capture.authorization.annual_rates.type |
|
BODY | captures.capture.authorization.annual_rates.message |
|
BODY | captures.capture.authorization.auto_capture |
|
BODY | captures.capture.authorization.merchant_information.corporation_id |
|
BODY | captures.capture.authorization.merchant_information.corporation_name |
|
BODY | captures.capture.authorization.merchant_information.merchant_id |
|
BODY | captures.capture.authorization.merchant_information.merchant_name |
|
BODY | captures.capture.authorization.merchant_information.location_id |
|
BODY | captures.capture.authorization.merchant_information.location_name |
|
BODY | captures.capture.authorization.customer.first_name |
|
BODY | captures.capture.authorization.customer.last_name |
|
BODY | captures.capture.authorization.customer.customer_category_type |
|
BODY | captures.capture.returns.return_id |
|
BODY | captures.capture.returns.reference |
|
BODY | captures.capture.returns.return_date |
|
BODY | captures.capture.return.amount |
|
BODY | captures.capture.return.username |
|
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 }