Required mechanisms to authenticate a 3rd party session and trigger the integration to the API.
Table of Contents |
---|
POST /oauth/token
Code Block |
---|
https://{posapi_url}/flexiti/pos-api/v2.5/oauth/token |
Please note the parameters should not be passed as Query string, the service is expecting an application/x-www-form-url encoded payload.
This service Authenticates the developer user and provides a Bearer Token that needs to be used as part of every future request.
The refresh token is used to get a new access token once the current one has expired.
In order to use it add the refresh token (provided in the original /oauth/token call) and change the grant_type to refresh_token.
Scope Parameter Usage
For the token endpoint there are two possible scopes: merchant or customer.
...
A token with a merchant scope will be allowed for all endpoints
...
These endpoints support Merchant integrations of Flexiti services.
Table of Contents |
---|
...
POST /oauth/token
Code Block |
---|
https://{posapi_url}/flexiti/pos-api/v2.5/oauth/token |
Please note the parameters should not be passed as Query string, the service is expecting an application/x-www-form-url encoded payload.
This service Authenticates the developer user and provides a Bearer Token that needs to be used as part of every future request.
The refresh token is used to get a new access token when the current one is about to expire. It cannot be refreshed after it is expired
In order to use it add the refresh token (provided in the original /oauth/token call) and change the grant_type to refresh_token. More information available here: How to Implement the Refresh Token
Scope Parameter Usage (IMPORTANT)
For the token endpoint there are two possible scopes: merchant or customer.
A token with a customer scope will be allowed in all endpoints required by customer facing UI, other endpoints will considered this token invalid.
...
When to use: for Online channel implementations during the application and authorization flows (outlined below).
A token with a merchant scope will be allowed for all endpoints
When to use: for In-store channel implementations, or Online channel back office processes like capturing an authorization, releasing, refunding/returning, etc.
The endpoints that should be called using a customer scope should be:
POST /client-id/{client_id}/merchants/logini18nPOST
GET /client-id/{client_id}widget/init/terms-and-conditions
POST /client-id/{client_id}/customers/applydriverslicense
GET POST /client-id/{client_id}widget/terms-and-conditionsinit
POST /client-id/{client_id}/apply
POST /client-id/{client_id}/accounts/{account_number}/informationclose
POST /client-id/{client_id}/accounts/:{account_number}/calculate-interest
POST /client-id/{client_id}/account/{account_number}/verify
POST /client-id/{client_id}/authorization
Request Parameters:
Type | Parameter | Required | Details |
---|---|---|---|
FORMDATA | client_id | Yes |
|
FORMDATA | client_secret | Yes |
|
BODY
grant_type
ASCII string
HEADER | x-reference-id | Yes |
|
BODY | grant_type |
| |
BODY | refresh_token |
| |
BODY | scope |
|
Example Request:
Code Block | ||
---|---|---|
| ||
{ "client_id": "flexitidemo", "client_secret": "77xde15a-9d33-4c15-930a-3se4b3as33e9", "grant_type": "client_credentials", "scope": "merchant" } |
Response Parameters:
Type | Parameter | Details |
---|---|---|
BODY | access_token |
|
BODY | expires_in |
|
BODY | refresh_token |
|
Success Response:
Code Block |
---|
{ "token_type": "bearer", "access_token": "2d8f373a3c2b1e61baf5a7769930ff4f0e08cdb0", "expires_in": 1200, "refresh_token": "36e0fc3d7415145f4b1d71512c459fd6eaa13aa8", "scope": "merchant" } |
...
...
GET /client-id/{client_id}/i18n
Code Block |
---|
https://{posapi_url} |
...
/flexiti/pos-api/v2.5/client-id/{client_id}/i18n |
Or
Code Block |
---|
https://{posapi_url}/flexiti/pos-api/v2.5/client-id/{client-_id}/merchants/login?lang=eni18n/{key} |
This
...
endpoint will return information for application form values and customer facing messaging like disclaimers
You can retrieve all information or filter for specific messages using a key in the URL
Request Parameters:
Type | Parameter | Required | Details |
---|---|---|---|
HEADER |
authorization | Yes |
|
| |||
HEADER | x-reference-id | Yes |
|
PATH | client_id | Yes |
|
QUERY | lang |
|
|
BODY
QUERY | {key} |
|
Optional information to log in a specific Sales Representative or Merchant location
BODY
merchant_password
ASCII string
Optional information to log in a specific Sales Representative or Merchant location
Example Request:
...
|
Success Response:
Code Block |
---|
{ "merchant_usernamesalutations": "acmejewellers", { "mr": "Mr.", "merchant_password "ms": "dice-vanila-purse" } |
Response Parameters:
...
Type
...
Parameter
...
Details
...
BODY
...
merchant_name
...
ASCII string (130)
Name of the merchant authenticated
...
BODY
...
merchant_id
...
number (10)
ID of the merchant authenticated
...
BODY
...
form_values
...
ASCII strings
Various values used in the credit application form
Success Response:
Code Block | ||||
---|---|---|---|---|
| ||||
{ "merchant_name": "ACME Jewellers"Ms.", "mrs": "Mrs.", "mss": "Miss." }, "merchant_idprovinces": "123",{ "form_valuesAB": {"Alberta", "salutationBC": {"British Columbia", "optionsMB": {"Manitoba", "NB": "New Brunswick", "mrNL": "Mr.Newfoundland & Labrador", "NS": "Nova Scotia", "msNT": "Ms.Northwest Territories", "NU": "Nunavut", "mrsON": "Mrs.Ontario", "PE": "Prince Edward Island", "mssQC": "Miss.Quebec", "SK": "Saskatchewan", } "YT": "Yukon Territory" }, }, "provincesecurity_ids": { "options4": {"What is the name of your favourite childhood friend?", "AB5": "Alberta",What is the country of your ultimate dream vacation?", "BC6": "BritishWhat Columbia",was the first concert you attended?", "MB7": "Manitoba",What is the name of the street you grew up on?", "NB8": "NewWhat Brunswick",is the name of your first grade teacher?", "NL9": "Newfoundland & Labrador",What is your favourite movie?" }, "govid_types": { "NSCADL": "NovaDriver's ScotiaLicence", "NTCAHC": "NorthwestHealth TerritoriesCard", "NU""CAPID": "NunavutProvincial ID Card", "ON"CAP": "OntarioPassport", "PE"CAPRC": "PrincePermanent EdwardResident IslandCard", "QC"CAICBC": "Quebec",Insurance Corporation of British Columbia", "SKCAAR": "SaskatchewanAlberta Registries", "YT"CASGI": "YukonSaskatchewan Government TerritoryInsurance", "CADSNS": "Department of Service }Nova Scotia and }Municipal Relations", "security_qidCADPPEI": {"Department of Transportation and Public Works of the Province of Prince Edward "options": {Island", "CASNB": "Service New Brunswick", "4CADGSNF": "What is the name Department of yourGovernment favouriteServices childhood friend?", and Lands of the Province of Newfoundland and Labrador", "5CADTNW": "WhatDepartment isof the countryTransportation of yourthe ultimate dream vacation?Northwest Territories", "CADCTN": "Department of Community Government and Transportation of "6": "What was the first concert you attended?",the Territory of Nunavut", "CACSC": "Correctional Service Canada identification card (with the individual's name and "7": "What is the name of the street you grew up on?", photograph)", "CAGCEC": "Government of Canada employee identity card (with the individual's name and photograph)", "8 "CALCB": "WhatLiquor isControl theBoard nameAge of yourMajority first grade teacher?(BYID) card", "CACFL": "Canadian Firearms licence", "9CACFID": "WhatCanadian isForces your favourite movie?"identification card", "CAMPIC": "MPIC card issued }by the Manitoba Public }Insurance Corporation", "govid_typeCACAID": { "NEXUS or CANPASS Air membership card (issued by Canada Border Services Agency)" }, "optionsgovid_issued_bys": { "option_depends": { "CADL": "Driver's Licence",{ "CAHCAB": "Health CardAlberta", "CAPIDBC": "ProvincialBritish ID CardColumbia", "CAPMB": "PassportManitoba", "CAPRCNB": "PermanentNew Resident CardBrunswick", "CAICBCNL": "InsuranceNewfoundland Corporation of British Columbia& Labrador", "CAARNS": "AlbertaNova RegistriesScotia", "CASGINT": "SaskatchewanNorthwest Government InsuranceTerritories", "CADSNSNU": "Department of Service Nova Scotia and Municipal RelationsNunavut", "CADPPEION": "DepartmentOntario", of Transportation and Public Works of the Province of Prince Edward Island" "PE": "Prince Edward Island", "CASNBQC": "Service New BrunswickQuebec", "CADGSNFSK": "Saskatchewan"Department, of Government Services and Lands of the Province of Newfoundland and Labrador", "YT": "Yukon Territory" "CADTNW": "Department of}, Transportation of the Northwest Territories", "CAHC": { "CADCTN": "Department of Community Government and Transportation of the Territory of Nunavut"BC": "British Columbia", "CACSCNB": "Correctional Service Canada identification card (with the individual's name and photograph)"New Brunswick", "NL": "Newfoundland & Labrador", "CAGCECNT": "GovernmentNorthwest ofTerritories", Canada employee identity card (with the individual's name and photograph)", "NU": "Nunavut", "CALCB": "Liquor Control Board Age of Majority (BYID) card "QC": "Quebec", "CACFLSK": "Canadian Firearms licenceSaskatchewan", "CACFIDYT": "CanadianYukon ForcesTerritory" identification card", }, "CAMPIC": "MPIC card issued by the Manitoba Public Insurance Corporation","CAPID": { "CACAIDON": "NEXUSOntario" or CANPASS Air membership card (issued by Canada Border Services Agency)"}, }"CAP": { }, "govid_issued_byCANADA": {"Canada" "option_depends": { }, "CADLCAPRC": { "ABCANADA": "AlbertaCanada", }, "BC": "British Columbia", "CAICBC": { "MBBC": "ManitobaBritish Columbia", }, "NB": "New Brunswick", "CAAR": { "NLAB": "Newfoundland & LabradorAlberta", }, "NS": "Nova Scotia", "CASGI": { "NTSK": "Northwest TerritoriesSaskatchewan", }, "NU": "Nunavut", "CADSNS": { "ONNS": "OntarioNova Scotia", }, "PE": "Prince Edward Island", "CADPPEI": { "QCPE": "QuebecPrince Edward Island", }, "SK": "Saskatchewan", "CASNB": { "YTNB": "YukonNew TerritoryBrunswick" }, }, "CAHCCADGSNF": { "BCNL": "BritishNewfoundland & ColumbiaLabrador", }, "NB": "New Brunswick", "CADTNW": { "NLNT": "NewfoundlandNorthwest & LabradorTerritories", }, "NT": "Northwest Territories", "CADCTN": { "NU": "Nunavut", }, "QC": "Quebec", "CACSC": { "SKCANADA": "SaskatchewanCanada", }, "YTCAGCEC": "Yukon Territory" { "CANADA": "Canada" }, }, "CAPIDCALCB": { "ONAB": "OntarioAlberta", "BC": "British }Columbia", "CAPMB": { "Manitoba", "CANADANB": "CanadaNew Brunswick", }"NL": "Newfoundland & Labrador", "CAPRCNS": { "Nova Scotia", "CANADANT": "CanadaNorthwest Territories", }"NU": "Nunavut", "CAICBCON": { "Ontario", "BCPE": "BritishPrince Edward ColumbiaIsland", }"QC": "Quebec", "CAARSK": { "Saskatchewan", "ABYT": "Alberta" Yukon Territory" }, "CASGICACFL": { "SKCANADA": "SaskatchewanCanada" }, "CADSNSCACFID": { "NSCANADA": "Nova ScotiaCanada" }, "CADPPEICAMPIC": { "PEMB": "Prince Edward IslandManitoba" }, "CASNBCACAID": { "NBCANADA": "New BrunswickCanada" } }, } }, "CADGSNFoccupation_ids": { "options": { "NLFE": "Newfoundland & Labrador"Full-time Employment", "PE": "Part-time Employment", }, "SE": "Self-Employed", "CADTNW": { "RT": "Retired", "NTST": "Northwest TerritoriesStudent", "HM": "Homemaker", }, "DS": "Disability", "CADCTN": { "SW": "Seasonal Worker", "NUUE": "Nunavut"Unemployed with income", "UW": "Unemployed without }income", "CACSCOT": {"Other" } }, "CANADAtransaction_types": "Canada"{ "promotional_purchase": "Financed Purchase", }, "regular_purchase": "Revolving Purchase" }, "CAGCECplan_ids": { "1": "90 Days Grace, Equal Payments Regular Interest", "CANADA2": "Canada"Equal Payments, Low Interest", "4": "Equal Payments, Regular Interest", }, "5": "Equal Payments, No Interest", "CALCB6": {"No Interest, No Payments (S.A.C.)", "7": "No Interest, No Payments", "AB": "Alberta", "9": "No Interest, Minimum monthly payments" }, "BCqcpa_disclosure": "British Columbia...", "insurance": "...", "insurance_tc": "...", "MBannual_fees": "Manitoba...", "housing_type": { "NB"Rent": "New BrunswickRent", "Owned": "Owned", "NLRelatives": "NewfoundlandLives &with LabradorRelatives", "NS"Other": "Nova ScotiaOther", "NT": "Northwest Territories", "NU": "Nunavut", "ON": "Ontario", "PE": "Prince Edward Island", "QC": "Quebec", "SK": "Saskatchewan", "YT": "Yukon Territory" }, "CACFL": { "CANADA": "Canada" }, "CACFID": { "CANADA": "Canada" }, "CAMPIC": { "MB": "Manitoba" }, "CACAID": { "CANADA": "Canada" } } } } }} } |
...
POST /client-id/{clientId}/widget/init
Code Block |
---|
https://{posapi_url}/flexiti/pos-api/v2.5/client-id/{client_id}/widget/init |
The Flexiti widget is used for the Online channel only, and is for high orchestration scenarios, such as customer verification and multiple account selection. It is a UI component that’s an entry point to the Flexiti purchase flow.
For full Widget documentation start here - Flexiti Widget - POS API Online Channel Purchase Flow