Endpoints: Customers
These are all of the Endpoints required to identify or interact with Customers.
Table of Contents |
---|
...
GET /client-id/{client_id}/customers/search
Code Block |
---|
https://posapi-training.flexiti.fi{posapi_url}/flexiti/pos-api/v2.5/client-id/flexitidemo{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 |
|
Type
Parameter
Required
| |||
QUERY | dob | Yes |
|
Response Parameters:
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
number (14)
The Account Number of the Customer
This is not the VCC (Flexiti Card)
BODY
credit_limit
number (18,2)
Credit limit associated with the Customer’s account
BODY
available_credit
number (18,2)
Customer’s open to buy
BODY
originating_merchant_id
number (10)
| ||
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
Code Block | ||
---|---|---|
| ||
https://posapi-training.flexiti.fi{posapi_url}/flexiti/pos-api/v2.5/client-id/flexitidemo{client_id}/customers/lookup?vcc_number=1234123412341234 |
or
Code Block | ||
---|---|---|
| ||
https://posapi-training.flexiti.fi{posapi_url}/flexiti/pos-api/v2.5/client-id/flexitidemo{client_id}/customers/lookup?account_number=123456789 |
or
Code Block | ||
---|---|---|
| ||
https://posapi-training.flexiti.fi{posapi_url}/flexiti/pos-api/v2.5/client-id/flexitidemo{client_id}/customers/lookup?customer_id=123456789 |
This service allows the Merchant to gather the Customer information by providing any of the following:
a FlexitiCard (VCC) number
an Account Number
a Customer ID
If you lookup via the FlexitiCard (VCC) number, the response will return the account the VCC 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
| ||
BODY | security_qid.text |
|
BODY |
ASCII string (100)
Customer Email
BODY
phone_number
ASCII string (10)
Customer Mobile Phone Number
address_1 |
|
| ||
BODY | address_2 |
|
| ||
BODY | city |
|
BODY | postal_code |
|
BODY | province |
|
BODY | payment_protection |
|
BODY | risk_rating |
|
|
|
|
M - Medium
H - High
|
|
|
BODY
offer_types.plan_name
| ||
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 |
...
language | json |
---|
| ||
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" |
...
POST /client-id/{client_id}/account/{account_number}/verify
Code Block | ||
---|---|---|
| ||
https://posapi-training.flexiti.fi/flexiti/pos-api/v2.5/client-id/flexitidemo/account/12345678/verify |
This endpoint allows you to verify a Customer using one of the four available verification methods, depending on the "format" specified in the body.
Request Parameters:
...
Type
...
Parameter
...
Required
...
Details
...
HEADER
...
bearer token
...
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}
...
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)
This is the Customer ID retrieved in any of the available endpoints
...
BODY
...
format
...
Yes
...
ASCII string
Verification format to be presented to the Customer
Available values: sms, email, merchant_override, security_question
Default value: sms
...
BODY
...
security_qid
...
Required for format: security_question
...
number (5)
Customer’s Security Question ID provided by the Customer Lookup service
...
BODY
...
security_answer
...
Required for format: security_question
...
ASCII string (50)
Customer’s response to the Security Question
Example Request:
Code Block | ||
---|---|---|
| ||
{ "format": "security_question",, "card_ending_in": "6395" "email": "a***inet@flexiti.com", "phone_number": "***-***-2222", "account_type": "consumer" } |
Successful Response (Authorized user of business card):
Code Block |
---|
{ "first_name": "Random", "last_name": "BusinessPerson", "available_credit": 14000, "account_number": 116992907, "customer_id": "1291820-11", "security_qid": "6",[ "security_answer": "Tool" } |
Success Responses:
200 - Success - Override
Code Block |
---|
{{ "verification_codeid": 2485 } |
200 - Success - SMS
Code Block |
---|
{9, "verification_code": "verification_sent_to_sms" } |
200 - Success - Email
Code Block |
---|
{ "verification_codetext": "verification_sent_to_email" } |
POST /client-id/{client_id}/customers/driverslicense
Code Block |
---|
https://posapi-training.flexiti.fi/flexiti/pos-api/v2.5/client-id/flexitidemo/customers/driverslicense |
This endpoint allows the decoding of PDF417 scanned driver license information.
Request Parameters:
...
Type
...
Parameter
...
Required
...
Details
...
HEADER
...
bearer token
...
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}
...
PATH
...
client_id
...
Yes
...
ASCII string (100)
This is the Client ID given in the Developer User Account section
...
BODY
...
code
...
Yes
...
ASCII string
PDF417 code with driver licence information
Example Request:
...
language | json |
---|
...
What is your favourite movie?" } ], "payment_protection": false, "address_1": "123 Any Street", "city": "Toronto", "postal_code": "M6S2R5", " |
...
province": |
...
Success Response:
...
language | json |
---|
...
"ON", "risk_rating": " |
...
L", " |
...
offer_ |
...
types": |
...
[ |
...
|
...
{ |
...
|
...
" |
...
plan_ |
...
name": " |
...
90 Days Grace, Equal Payments Regular Interest", |
...
" |
...
term_options": |
...
[ |
...
|
...
|
...
|
...
" |
...
12", |
...
|
...
|
...
" |
...
18", |
...
POST /client-id/{client_id}/accounts/{account_number}/close
Code Block |
---|
https://posapi-training.flexiti.fi/flexiti/pos-api/v2.5/client-id/flexitidemo/accounts/12345/close |
This endpoint allows the closure of a QC account.
Request Parameters:
...
Type
...
Parameter
...
Required
...
Details
...
HEADER
...
bearer token
...
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}
...
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 Customer to be closed
Success Response:
200 - Success
Code Block |
---|
{
} |
"24",
"36",
"48",
"60",
"72"
],
"plan_id": "1",
"offer_category": "equal_billing"
}
],
"preferred_language": "en-CA",
"card_ending_in": "7962",
"email": "v*****vich@flexiti.com",
"phone_number": "***-***-5119",
"account_type": "business"
} |
...
POST /client-id/{client_id}/
...
account/{account_number}/
...
verify
Code Block | ||
---|---|---|
| ||
https://{posapi-training.flexiti.fi/flexiti/pos-_url}/flexiti/pos-api/v2.5/client-id/flexitidemo/accounts/12345/calculate-interest{client_id}/account/12345678/verify |
This endpoint retrieves the plan and term configured for the merchant that can be offered to a customer.
Request Parameters:
...
Type
...
Parameter
...
Required
...
Details
...
HEADER
...
is used for the “in-store” channel only, and allows you to verify a Customer using one of the available verification methods:
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 |
|
PATH
HEADER | x-reference-id | Yes |
|
PATH | client_id | Yes |
|
PATH | account_number | Yes |
|
|
This is not the VCC (Flexiti Card)
QUERY
| |||
BODY | vcc_number |
|
|
|
Customer Preferred language
Available values: (en=English) or (fr=French)
Default value: en
BODY
amount
number (18,2)
Amount of the transaction to calculate interest on
Example Request:
Code Block |
---|
{
"amount": 234.45
} |
Response Parameters:
...
Type
...
Parameter
...
Required
...
Details
...
BODY
...
account_number
...
number (14)
The Account Number of the Customer
This is not the VCC (Flexiti Card)
...
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 (80)
Customer’s First Name
...
BODY
...
customer.last_name
...
ASCII string (130)
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.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)
Possible values: Admin, Annual
...
BODY
...
regular_purchase.fees.message
...
ASCII string (1000)
Used to convey information necessary to notify the customer
Merchant is obligated to display this to the customer
...
BODY
...
promotional_purchase.plan_id
...
number (3)
ID of the promotional plan
...
BODY
...
promotional_purchase.terms.term
...
number (3)
Term of the promotional plan
Merchant is obligated to display this to the customer
...
BODY
...
promotional_purchase.terms.term_amount
...
number (18,2)
Value to explain the amount to be paid by month (or a deferred payment)
This will include admin fees
This will not include annual fees
Merchant is obligated to display this to the customer
...
BODY
...
promotional_purchase.terms.apr
...
number (5,4)
It will be a coefficient
Merchant is obligated to display this to the customer
...
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)
Possible values: Admin, Annual
...
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:
...
language | json |
---|
...
| |||
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": "sms",
"request_id": "12345678901234567890"
} |
Success Responses:
200 - Success - security_question
Code Block |
---|
{
"verification_code": 6785
} |
200 - Success - sms
Code Block |
---|
{
"verification_code": "verification_sent_to_sms"
} |
200 - Success - email
Code Block |
---|
{
"verification_code": "verification_sent_to_email"
} |
200 - Success - merchant_override
Code Block |
---|
{
"verification_code": 2485
} |
200 - Success - regular_purchase_bypass
Code Block |
---|
{
"verification_code": 4365
} |
...
POST /client-id/{client_id}/customers/driverslicense
Code Block | ||
---|---|---|
| ||
https://{posapi_url}/flexiti/pos-api/v2.5/client-id/{client_id}/customers/driverslicense |
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"
} |
Success Response:
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/calculate-interest |
NOTE: the /calculate-interest endpoint has been updated to version 2.5.1, reflected in the URI.
This endpoint retrieves 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 |
|
QUERY | lang |
| |
BODY | amount |
|
Example Request:
Code Block |
---|
{
"amount": 234.45
} |
Response Parameters:
Type | Parameter | Details |
---|---|---|
BODY | account_number |
|
BODY | account_type |
|
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 |
|
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.terms.fees.description |
|
BODY | promotional_purchase.terms.fees.amount |
|
BODY | promotional_purchase.terms.fees.type |
|
BODY | promotional_purchase.terms.fees.message |
|
Success Response - ROC Customer:
Code Block | ||||
---|---|---|---|---|
| ||||
{ "account_number": 116994755, "account_type": "consumer", "amount": 10.5, "customer": { " |
...
air": 0.3099, |
...
"available_credit": 14000, " |
...
first_name": |
...
"Flexiti", "last_name": "MITester", "category_type": "preferred" |
...
}, "regular_purchase": { " |
...
term_amount": |
...
10.5, "air": 0.3099, "fees": [], " |
...
verify": |
...
true }, "promotional_purchase": [ { |
...
" |
...
plan_id": |
...
4, "plan_name": "EMP - Regular Interest" " |
...
terms": |
...
[ { "term": 3, |
...
"term_amount": 3.56, |
...
"fees": [], |
...
"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." |
...
|
...
|
...
} }, |
...
|
...
{ " |
...
term": |
...
6, " |
...
term_amount": 10.38, "fees": [ { |
...
|
...
"description": "Administrative fees:", |
...
|
...
"amount": 50, |
...
|
...
|
...
Success Response - Quebec Customer
...
breakoutMode | wide |
---|---|
language | json |
...
|
...
|
...
|
...
|
...
" |
...
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." |
...
|
...
} |
...
|
...
|
...
|
...
], |
...
" |
...
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." |
...
|
...
} |
...
}, |
...
{ "term |
...
": |
...
12, " |
...
term_amount": |
...
5.32, "fees": [ { "description": " |
...
Administrative fees:", "amount": |
...
49.99, "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." } ] |
...
, |
...
"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." } |
...
|
...
} ] |
...
} ] } |
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": 10.5, |
...
"air": 0.3099, |
...
"fees": [], "verify": true |
...
}, |
...
"promotional_purchase": [ { "plan_id": |
...
4, " |
...
plan_name": |
...
"EMP - Regular Interest" "terms": |
...
[ |
...
{ "term |
...
": |
...
3, " |
...
term_amount": |
...
3. |
...
56, "fees": [], |
...
"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." |
...
} }, { "term": |
...
6, "term_amount": |
...
1.8, " |
...
fees": |
...
[], " |
...
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." |
...
} } ] } ] } |