Versions Compared

Key

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

Endpoints: Authentication

Required mechanisms to authenticate a 3rd party session and trigger the integration to the API.

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

  • 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

BODY

grant_type

  • ASCII string

  • 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

    Required

    Details

    BODY

    access_token

    Yes

    • Bearer token to be used in subsequent calls

    BODY

    expires_in

    Yes

    • Time, in seconds, that the token will last

    BODY

    refresh_token

    Yes

    • 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"
    }

    ...

    ...

    GET /client-id/{client_id}/

    ...

    i18n

    Code Block
    https://{posapi_url}/flexiti/pos-api/v2.5/client-id/{client-_id}/merchants/login?lang=en

    ...

    i18n

    Or

    Code Block
    https://{posapi_url}/flexiti/pos-api/v2.5/client-id/{client_id}/i18n/{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

    bearer token

    authorization

    Yes

    • ASCII string (

    1000
    • 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 (

    2merchant_username
    • 5)

    • Customer Preferred language

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

    • Default value: en

    BODY

    QUERY

    {key}


    • ASCII string

  • 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:

    Code Block
    breakoutModewide
    languagejson
    {
        "merchant_username": "acmejewellers",
        "merchant_password": "dice-vanila-purse"
    }

    Response Parameters:

    ...

    Type

    ...

    Parameter

    ...

    Required

    ...

    Details

    ...

    BODY

    ...

    merchant_name

    ...

    Yes

    ...

    • ASCII string (130)

    • Name of the merchant authenticated

    ...

    BODY

    ...

    merchant_id

    ...

    Yes

    ...

    • number (10)

    • ID of the merchant authenticated

    ...

    BODY

    ...

    form_values

    ...

    Yes

    ...

    • ASCII strings

    • Various values used in the credit application form

    Success Response:

    ...

    breakoutModewide
    languagejson

    ...

    • (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": {
           

    ...

     "1": "90 Days Grace, Equal Payments Regular Interest",
            "

    ...

    2": 

    ...

    "Equal 

    ...

    Payments, Low Interest",
            "

    ...

    4": "

    ...

    Equal Payments, Regular Interest",
            "5": "Equal Payments, No 

    ...

    Interest",

    ...

    
            

    ...

    "6": 

    ...

    "No Interest, No Payments (S.A.C.)",
            "7": "No Interest, No 

    ...

    Payments",
            "9": "No Interest, Minimum monthly payments"
        },
        "qcpa_disclosure": "...",
        "insurance": "...",
        "

    ...

    insurance_tc": 

    ...

    "...",
        "annual_fees": "...",
        "housing_type": {
            "

    ...

    Rent":

    ...

     "Rent",
            "Owned": "Owned",
       

    ...

         "Relatives": "Lives with Relatives",
        

    ...

        "Other": "Other"
      }
    

    ...

    }

    ...

    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