Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

These endpoints support Merchant integrations of Flexiti services.

...

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.

...

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 invalidtoken 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}/i18n

  • GET /client-id/{client_id}/terms-and-conditions

  • POST /client-id/{client_id}/customers/driverslicense

  • POST /client-id/{client_id}widget/init

  • POST /client-id/{client_id}/apply

  • POST /client-id/{client_id}/accounts/{account_number}/close

  • 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

  • ASCII string (100)

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

FORMDATA

client_secret

Yes

  • ASCII string (100)

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

HEADER

x-reference-id

Yes

  • ASCII string (32)

  • GUID

  • Unique identifier for the flow for traceability purposes

BODY

grant_type


  • ASCII string

  • This is the client's access type

  • possible values: 'password', 'refresh_token', 'client_credentials'

  • default value: 'client_credentials'

BODY

refresh_token

  • ASCII string

  • only to be used with the grant_type: refresh_token.

  • It should be the refresh_token attribute in the last response of this method.

BODY

scope

  • ASCII string

  • Available values: ‘customer', 'merchant’

  • Default value: merchant

Example Request:

Code Block
languagejson
{
    "client_id": "flexitidemo",
    "client_secret": "77xde15a-9d33-4c15-930a-3se4b3as33e9",
    "grant_type": "client_credentials",
    "scope": "merchant"
}

Response Parameters:

Type

Parameter

Details

BODY

access_token

  • Bearer token to be used in subsequent calls

BODY

expires_in

  • Time, in seconds, that the token will last

BODY

refresh_token

  • Token to be used to refresh the access_token

Success Response:

Code Block
{
    "token_type": "bearer",  
    "access_token": "2d8f373a3c2b1e61baf5a7769930ff4f0e08cdb0",  
    "expires_in": 1200,  
    "refresh_token": "36e0fc3d7415145f4b1d71512c459fd6eaa13aa8",
    "scope": "merchant"
}

...

  • This endpoint will return information for application form value values and customer facing messaging purposeslike 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

  • ASCII string (40)

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

  • Default value: Bearer {insert_bearer_token_from_oauth_here/token_api}

HEADER

x-reference-id

Yes

  • ASCII string (32)

  • GUID

  • Unique identifier for the flow for traceability purposes

PATH

client_id

Yes

  • ASCII string (100)

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

QUERY

lang


  • ASCII string (5)

  • Customer Preferred language

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

  • Default value: en

QUERY

{key}


  • ASCII string (1000)

  • Specific values can be used to filter the response

  • Not passing a value will response with all messages.

  • Available values:

    • salutation

    • provinces

    • security_id

    • govid_type

    • govid_issued_by

    • occupation

    • transaction_type

    • plan_id

    • qcpa_disclosure

    • insurance

    • insurance_tc

    • annual_fees

    • housing_type

Success Response:

Code Block
{
    "salutations": {
        "mr": "Mr.",
        "ms": "Ms.",
        "mrs": "Mrs.",
        "mss": "Miss."
    },
    "provinces": {
        "AB": "Alberta",
        "BC": "British Columbia",
        "MB": "Manitoba",
        "NB": "New Brunswick",
        "NL": "Newfoundland & Labrador",
        "NS": "Nova Scotia",
        "NT": "Northwest Territories",
        "NU": "Nunavut",
        "ON": "Ontario",
        "PE": "Prince Edward Island",
        "QC": "Quebec",
        "SK": "Saskatchewan",
        "YT": "Yukon Territory"
    },
    "security_ids": {
        "4": "What is the name of your favourite childhood friend?",
        "5": "What is the country of your ultimate dream vacation?",
        "6": "What was the first concert you attended?",
        "7": "What is the name of the street you grew up on?",
        "8": "What is the name of your first grade teacher?",
        "9": "What is your favourite movie?"
    },
    "govid_types": {
        "CADL": "Driver's Licence",
        "CAHC": "Health Card",
        "CAPID": "Provincial ID Card",
        "CAP": "Passport",
        "CAPRC": "Permanent Resident Card",
        "CAICBC": "Insurance Corporation of British Columbia",
        "CAAR": "Alberta Registries",
        "CASGI": "Saskatchewan Government Insurance",
        "CADSNS": "Department of Service Nova Scotia and Municipal Relations",
        "CADPPEI": "Department of Transportation and Public Works of the Province of Prince Edward Island",
        "CASNB": "Service New Brunswick",
        "CADGSNF": "Department of Government Services and Lands of the Province of Newfoundland and Labrador",
        "CADTNW": "Department of Transportation of the Northwest Territories",
        "CADCTN": "Department of Community Government and Transportation of the Territory of Nunavut",
        "CACSC": "Correctional Service Canada identification card (with the individual's name and photograph)",
        "CAGCEC": "Government of Canada employee identity card (with the individual's name and photograph)",
        "CALCB": "Liquor Control Board Age of Majority (BYID) card",
        "CACFL": "Canadian Firearms licence",
        "CACFID": "Canadian Forces identification card",
        "CAMPIC": "MPIC card issued by the Manitoba Public Insurance Corporation",
        "CACAID": "NEXUS or CANPASS Air membership card (issued by Canada Border Services Agency)"
    },
    "govid_issued_bys": {
        "option_depends": {
            "CADL": {
                "AB": "Alberta",
                "BC": "British Columbia",
                "MB": "Manitoba",
                "NB": "New Brunswick",
                "NL": "Newfoundland & Labrador",
                "NS": "Nova Scotia",
                "NT": "Northwest Territories",
                "NU": "Nunavut",
                "ON": "Ontario",
                "PE": "Prince Edward Island",
                "QC": "Quebec",
                "SK": "Saskatchewan",
                "YT": "Yukon Territory"
            },
            "CAHC": {
                "BC": "British Columbia",
                "NB": "New Brunswick",
                "NL": "Newfoundland & Labrador",
                "NT": "Northwest Territories",
                "NU": "Nunavut",
                "QC": "Quebec",
                "SK": "Saskatchewan",
                "YT": "Yukon Territory"
            },
            "CAPID": {
                "ON": "Ontario"
            },
            "CAP": {
                "CANADA": "Canada"
            },
            "CAPRC": {
                "CANADA": "Canada"
            },
            "CAICBC": {
                "BC": "British Columbia"
            },
            "CAAR": {
                "AB": "Alberta"
            },
            "CASGI": {
                "SK": "Saskatchewan"
            },
            "CADSNS": {
                "NS": "Nova Scotia"
            },
            "CADPPEI": {
                "PE": "Prince Edward Island"
            },
            "CASNB": {
                "NB": "New Brunswick"
            },
            "CADGSNF": {
                "NL": "Newfoundland & Labrador"
            },
            "CADTNW": {
                "NT": "Northwest Territories"
            },
            "CADCTN": {
                "NU": "Nunavut"
            },
            "CACSC": {
                "CANADA": "Canada"
            },
            "CAGCEC": {
                "CANADA": "Canada"
            },
            "CALCB": {
                "AB": "Alberta",
                "BC": "British Columbia",
                "MB": "Manitoba",
                "NB": "New Brunswick",
                "NL": "Newfoundland & Labrador",
                "NS": "Nova Scotia",
                "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"
            }
        }
    },
    "occupation_ids": {
        "options": {
            "FE": "Full-time Employment",
            "PE": "Part-time Employment",
            "SE": "Self-Employed",
            "RT": "Retired",
            "ST": "Student",
            "HM": "Homemaker",
            "DS": "Disability",
            "SW": "Seasonal Worker",
            "UE": "Unemployed with income",
            "UW": "Unemployed without income",
            "OT": "Other"
        }
    },
    "transaction_types": {
        "promotional_purchase": "Financed Purchase",
        "regular_purchase": "Revolving Purchase"
    },
    "plan_ids": {ids": {
        "1": "90 Days Grace, Equal Payments Regular Interest",
        "2": "Equal Payments, Low Interest",
        "14": "90 Days Grace, Equal Payments, Regular Interest",
        "25": "Equal Payments, LowNo Interest",
        "46": "EqualNo PaymentsInterest, No Regular InterestPayments (S.A.C.)",
        "57": "EqualNo PaymentsInterest, No InterestPayments",
        "69": "No Interest, Minimum monthly payments"
    },
 No Payments (S.A.C.)   "qcpa_disclosure": "...",
        "7insurance": "No Interest...",
No Payments",   "insurance_tc": "...",
    "9annual_fees": "No Interest, Minimum monthly payments"
...",
    "housing_type": {
   },     "qcpa_disclosureRent": "...",Rent",
        "insuranceOwned": "...Owned",
    "insurance_tc    "Relatives": "...Lives with Relatives",
        "annual_feesOther": "...Other"
  }
}

...

POST /client-id/{clientId}/widget/init

...

The Flexiti widget is used in for the Online channel only, and is for high orchestration scenarios, such as customer verification , using and multiple account selection. It is a UI component as that’s an entry point to the Flexiti credit application and purchase flowsflow.

For full Widget documentation start here - Flexiti Widget - POS API Online Channel - POS APIPurchase Flow