These are all of the Endpoints required to identify or interact with Customers.
...
Code Block |
---|
https://{posapi_url}/flexiti/pos-api/v2.5.1/client-id/{client_id}/customers/search?first_name=John&last_name=Smith&dob=1900-01-01 |
This Endpoint returns a list of accounts for the customer being searched for.
Request Parameters:
Type | Parameter | Required | Details |
---|---|---|---|
HEADER | authorization | Yes |
|
HEADER | x-reference-id | Yes |
|
PATH | client_id | Yes |
|
QUERY | first_name | Yes |
|
QUERY | last_name | Yes |
|
QUERY | dob | Yes |
|
QUERY | postal_code | No |
|
Response Parameters:
Type | Parameter | Details |
---|---|---|
BODY | customer_id |
|
BODY | account_status |
|
BODY | account_status_reason_code |
|
BODY | tos_agreement |
|
BODY | risk_rating |
|
BODY | account_number |
|
BODY | customer_account_type |
|
BODY | credit_limit |
|
BODY | available_credit |
|
BODY | originating_merchant_id |
|
BODY | originating_merchant_name |
|
BODY | creation_date |
|
BODY | first_name |
|
BODY | last_name |
|
BODY | card_ending_in |
|
BODY | preferred_language |
|
Success Response:
Code Block | ||
---|---|---|
| ||
[ { "customer_id": "123321", "account_status": "N", "account_status_reason_code": "NNOR", "tos_agreement"": true, "risk_rating": "H", "account_number": 123456789, "credit_limit": "1000.00", "available_credit": "659.51", "originating_merchant_id": "12345", "originating_merchant_name": "ACME Jewellers", "creation_date": "2019-05-15", "first_name": "John", "last_name": "Smith", "card_ending_in": "5941", "preferred_language": "fr-CA" "customer_account_type": "consumer" }, { "customer_id": "123412", "account_status": "F", "account_status_reason_code": "FLCK", "tos": true, "risk_rating": "Y", "account_number": 234567890, "credit_limit": "1000.00", "available_credit": "847.00", "originating_merchant_id": "23456", "originating_merchant_name": "ACME Restorations", "creation_date": "2019-04-15", "first_name": "John", "last_name": "Smith", "card_ending_in": "6457", "preferred_language": "en-CA" "customer_account-_type":" "business" } ] |
...
GET /client-id/{client_id}/customers/lookup
...
If you lookup via the FlexitiCard (VCC) number, the response will return the account the FlexitiCard belongs to.
Request Parameters:
Type | Parameter | Required | Details |
---|---|---|---|
HEADER | authorization | Yes |
|
HEADER | x-reference-id | Yes |
|
PATH | client_id | Yes |
|
QUERY | lang |
| |
QUERY | vcc_number |
| |
QUERY | account_number |
| |
QUERY | customer_id |
|
Response Parameters:
Type | Parameter | Details |
---|---|---|
BODY | available_credit |
|
BODY | account_number |
|
BODY | customer_id |
|
BODY | security_qid.id |
|
BODY | security_qid.text |
|
BODY | address_1 |
|
BODY | address_2 |
|
BODY | city |
|
BODY | postal_code |
|
BODY | province |
|
BODY | payment_protection |
|
BODY | risk_rating |
|
BODY | offer_types.plan_name |
|
BODY | offer_types.plan_id |
|
BODY | offer_types.offer_category |
|
BODY | offer_types.term_options |
|
BODY | card_ending_in |
|
BODY | preferred_language |
|
BODY |
| |
BODY | phone_number |
|
BODY | account_type |
|
Success Response:
Code Block | ||
---|---|---|
| ||
{ "available_credit": 5000, "account_number": 20035156, "customer_id": 43353, "security_qid": [ { "id": 4, "text": "What is the name of your favourite childhood friend?" }, ], "address_1": "123 Anystreet Ave", "address_2": "Suite 100", "city": "Toronto", "postal_code": "M5M1M1", "province": "ON", "payment_protection": 0, "risk_rating": "L", "offer_types": [ { "plan_name": "90 Days Grace, Equal Payments Regular Interest", "plan_id": "1", "offer_category": "equal_billing", "term_options": [ "12", "18", "24", "36" ] } ], "preferred_language": "EN_CA", "card_ending_in": "6395" "email": "a***inet@flexiti.com", "phone_number": "***-***-2222", "account_type": "consumer" } |
...
email - a dynamic pin will be sent to the customer’s email on file
sms - a dynamic pin will be sent to the customer’s phone on file
security_question - passing the correct answer to the customer’s security question will generate a dynamic pin on the response.
regular_purchase_bypass - is the customer qualifies for a regular purchase bypass a dynamic pin to be used only for regular purchases will be generated on the response.
merchant_override - select Merchants are able to override the customer authentication, this will generate a dynamic pin on the response.
Request Parameters:
Type | Parameter | Required | Details |
---|---|---|---|
HEADER | authorization | Yes |
|
HEADER | x-reference-id | Yes |
|
PATH | client_id | Yes |
|
PATH | account_number | Yes |
|
BODY | vcc_number |
|
|
BODY | format | Yes |
|
BODY | security_qid | Required for format: security_question |
|
BODY | security_answer | Required for format: security_question |
|
BODY | request_id | Yes for in-store channel |
|
Example Request:
Code Block | ||
---|---|---|
| ||
{ "format": "security_question", "security_qid": "6"sms", "security_answer": "Rainbow", "request_id": "12345678901234567890" } |
...
This endpoint allows the decoding of PDF417 scanned driver license information.
Request Parameters:
Type | Parameter | Required | Details |
---|---|---|---|
HEADER | authorization | Yes |
|
HEADER | x-reference-id | Yes |
|
PATH | client_id | Yes |
|
BODY | code | Yes |
|
Example Request:
Code Block | ||
---|---|---|
| ||
{ "code": "@\n\u001e\rANSI\n604428040101 DL00310219DLDCAunavI\nDCBNONE\nDCDNONE\nDBA20200515\nDCSNUMBER1\nDACENSTREAM \nDAD\nDBD20140516\nDBB19740515\nDBCZ\nDAYBLU\nDAU163 cm\nDAG55 UNIVERSITY AVE\nDAITORONTO\nDAJON\nDAKM5J 2H7\nDAQD61014070660905\nDCFPEJK368N4\nDCGCAN\nDDEU\nDDFU\nDDGU\r" } |
...
Code Block | ||
---|---|---|
| ||
{ "first_name": "John", "middle_name": "Garry", "last_name": "Smith", "dob": "1974-05-15", "address_1": "123 ANY STREET", "city": "TORONTO", "province": "ON", "postal_code": "M1M 1M1", "govid_type": "CADL", "govid_issuedby": "ON", "govid_number": "D61014070123456", "govid_expiry": "2021-05-15" } |
...
POST /client-id/{client_id}/accounts/{account_number}/
...
calculate-interest
Code Block | ||
---|---|---|
| ||
https://{posapi_url}/flexiti/pos-api/v2.5.1/client-id/{client_id}/accounts/12345/closecalculate-interest |
NOTE: the /calculate-interest endpoint has been updated to version 2.5.1, reflected in the URI.
This endpoint allows the closure of a QC accountretrieves the plan and term configured for the merchant that can be offered to a customer.
Request Parameters:
Type | Parameter | Required | Details |
---|---|---|---|
HEADER | authorization | Yes |
|
HEADER | x-reference-id | Yes |
|
PATH | client_id | Yes |
|
PATH | account_number | Yes |
|
Success Response:
200 - Success
Code Block |
---|
{
} |
POST /client-id/{client_id}/accounts/{account_number}/calculate-interest
Code Block | ||
---|---|---|
| ||
https://{posapi_url}/flexiti/pos-api/v2.5.1/client-id/{client_id}/accounts/12345/calculate-interest |
This endpoint retrieves the plan and term configured for the merchant that can be offered to a customer.
...
| |||
QUERY | lang |
| |
BODY | amount |
|
Example Request:
Code Block |
---|
{
"amount": 234.45
} |
Response Parameters:
Type | Parameter |
---|
Required
Details
HEADER
authorization
Details | ||
---|---|---|
BODY | account_number |
|
BODY | account_type |
|
|
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)
The Account Number of the Primary Account Holder
his is not the FlexitiCard number (VCC)
QUERY
lang
ASCII string (5)
Customer Preferred language
Available values: (en=English) or (fr=French)
Default value: en
BODY
Type
Parameter
Details
BODY
account_number
number (14)
The Account Number of the Primary Account Holder
This is not the VCC (Flexiti Card)
BODY
account_type
ASCII string (100)
This is the type of account: consumer or business
BODY
amount
number (18,2)
Authorization amount
BODY
customer.available_credit
number (18,2)
Customer’s open to buy
BODY
customer.air
number (5,4)
air for the customer
BODY
customer.first_name
ASCII string (35)
Customer’s First Name
BODY
customer.last_name
ASCII string (50)
Customer’s Last Name
BODY
customer.customer_category_type
ASCII string (30)
Category related to the customer’s risk rating
Possible values: preferred, premium, standard
BODY
regular_purchase.term_amount
number (18,2)
Value to explain the amount to be paid by month (or a deferred payment)
BODY
regular_purchase.air
number (5,4)
air for the purchase
BODY
regular_purchase.verify
boolean
Indicate if a customer can use regular_purchase_bypass as a format on the POST /client-id/{client_id}/account/{account_number}/verify endpoint for a regular revolve purchase.
This value will be true if:
the account_number being passed has made ≤ 3 regular purchases in the past 24HS; and,
the amount on the request is ≤ $200
BODY
regular_purchase.fees.description
ASCII string (50)
Customer facing label of this fee
BODY
regular_purchase.fees.amount
number (18,2)
Amount of the fees
BODY
regular_purchase.fees.type
ASCII String (20)
Denotes if the administrative fee amount is a monthly or total amount
Possible values:
admin_total
admin_monthly
BODY
| ||
BODY | amount |
|
BODY | customer.available_credit |
|
BODY | customer.air |
|
BODY | customer.first_name |
|
BODY | customer.last_name |
|
BODY | customer.category_type |
|
BODY | regular_purchase.term_amount |
|
Amount of the transaction to calculate interest on
Example Request:
Code Block |
---|
{
"amount": 234.45
} |
Response Parameters:
| ||
BODY | regular_purchase.air |
|
BODY | regular_purchase.verify |
|
BODY | regular_purchase.fees.description |
|
BODY | regular_purchase.fees.amount |
|
BODY | regular_purchase.fees.type |
|
BODY | regular_purchase.fees.message |
|
BODY | promotional_purchase.plan_id |
|
BODY | promotional_purchase.plan_name |
|
BODY | promotional_purchase.terms.term |
|
BODY | promotional_purchase.terms.term_amount |
|
BODY | promotional_purchase.terms.annual_rates.description |
|
BODY | promotional_purchase.terms.annual_rates.rate |
|
BODY | promotional_purchase.terms.annual_rates.type |
|
BODY | promotional_purchase.terms.annual_rates.message |
|
|
BODY
promotional_purchase.plan_id
number (3)
| |
BODY | promotional_purchase.terms.fees. |
description |
|
|
| |
BODY | promotional_purchase.terms.fees. |
amount |
|
Value to explain the amount to be paid by month (or a deferred payment)
This will include admin
| |
BODY | promotional_purchase.terms. |
fees. |
type |
number (5,4)
It will be a coefficient
Merchant is obligated to display this to the customer
| |
BODY | promotional_purchase.terms. |
fees. |
BODY
promotional_purchase.terms.annual_rates.message
ASCII string (1000)
message |
number (5,4)
It will be a coefficient
Merchant is obligated to display this to the customer
*This field is only returned for Deferred payment type promotional plans, this excludes Equal Monthly Payment type plans
|
|
BODY
promotional_purchase.terms.fees.description
ASCII string (50)
Customer facing label of this fee
Merchant is obligated to display this to the customer
BODY
promotional_purchase.terms.fees.amount
number (18,2)
Amount of the fees
Merchant is obligated to display this to the customer
BODY
promotional_purchase.terms.fees.type
ASCII String (20)
Whether the fees displayed are per month or in total
Possible values: admin_total, admin_monthly
BODY
promotional_purchase.terms.fees.message
ASCII string (1000)
Used to convey information necessary to notify the customer
Merchant is obligated to display this to the customer
Success Response - ROC Customer:
...
breakoutMode | wide |
---|---|
language | json |
...
Success Response - ROC Customer:
Code Block | ||||
---|---|---|---|---|
| ||||
{ "regularaccount_purchasenumber": { 116994755, "termaccount_amounttype": 250, "air": 0.289, "consumer", "feesamount": [] }10.5, "promotional_purchasecustomer": [ { "plan_idair": 4, 0.3099, "termsavailable_credit": [ 14000, { "first_name": "Flexiti", "last_name": "MITester", "termcategory_type": 3,"preferred" }, "regular_purchase": { "term_amount": 2010.335, "air": 0.3099, "fees": [], "verify": true }, "promotional_purchase": [ { { "plan_id": 4, "descriptionplan_name": "Administrative fees:", EMP - Regular Interest" "terms": [ "amount": 49.99, { "typeterm": "admin_total"3, "message"term_amount": "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."3.56, "fees": [], "annual_rates": { } "description": "Annual Promotional Interest Rate:", ], "annual_ratesrate": {0.0999, "aprtype": 0.0999"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." } } ] }, { "plan_id": 5, "terms": [ }, { "term": 6, "term_amount": 410.6738, "fees": [], "annual_rates": { "aprdescription": 0"Administrative fees:", "messageamount": "Promotional50, 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.""type": "admin_total", } }, {"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." "term": 12, } "term_amount": 3.83 ], "feesannual_rates": [{ { "description": "Annual Promotional Interest Rate:", "descriptionrate": "Administrative fees:",0.0999, "type": "APR", "amount": 3, "message": "Promotional annual interest rate applies during the promotional period "type": "admin_monthly", "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."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." } }, { } "term": ]12, "annualterm_ratesamount": {5.32, "fees": [ "apr": 0, { "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.""description": "Administrative fees:", "amount": 49.99, } } "type": "admin_total", ] } ] } |
Success Response - Quebec Customer
Code Block | ||||
---|---|---|---|---|
| ||||
{ "account_number": 11223344, "amountmessage": 250,"Although your administrative fee may "customer": { "air": 0.3124, "available_credit": 1700, "first_name": "Jacques",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." "last_name": "Smith", "category_type": "premium" }, "regular_purchase": { "term_amount": 250, ], "air": 0.3124, "fees": [] }, "promotionalannual_purchaserates": [{ { "plan_iddescription": 5, "Annual Promotional Interest Rate:", "terms": [ "rate": 0.0999, { "termtype": 6"APR", "term_amount "message": 41.67, "fees": [], "annual_rates": { "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." "apr": 0, } } "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."] } |
Success Response - Quebec Customer
Code Block | ||||
---|---|---|---|---|
| ||||
{ "account_number": 116994859, "account_type": "consumer", "amount": 10.5, "customer": { "air": 0.3099, } "available_credit": 13500, "first_name": "Flexiti", }, "last_name": "MITester", { "category_type": "preferred" }, "regular_purchase": { "term_amount": 1210.5, "air": 0.3099, "term_amountfees": 20.83[], "verify": true }, "aprpromotional_purchase": [ 0, { "feesplan_id": []4, "plan_name": "EMP - Regular }Interest" ]"terms": [ }, { "plan_id": 9, "term": 3, "terms": [ "term_amount": 3.56, { "termfees": 6[], "termannual_amountrates": 250, { "feesdescription": [], "Annual Promotional Interest Rate:", "annual_ratesrate": {0.0999, "airtype": 0"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." } }, { "term": 126, "term_amount": 2501.8, "fees": [], "annual_rates": { "air": 0"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." } } ] } ] } |