Error Overview
Flexiti uses conventional HTTP response codes to indicate the success or failure of an API request. In general:
...
Some 4xx
errors that could be handled programmatically include an error code that briefly explains the error reported.
HTTP Status Code Summary
HTTP Status Codes | Type | Status |
200 | Success | Everything worked as expected. |
401 | Unauthorized | An error with the Merchant authentication. |
404 | Not Found | The requested resource doesn't exist. |
409 | Bad Request | The request was unacceptable, often due to missing a required parameter or wrong format. |
500 | Server Errors | Something went wrong on the Flexiti side. (These are rare.) |
General
...
Code
...
Error
...
Scenario
...
400
...
invalid_account
...
Wrong account number (if requested)
...
400
...
invalid_client
...
Wrong or missing client id or client_secret
...
400
...
invalid_request
...
Invalid or missing grant_type parameter
...
400
...
not_found
...
Authorization ID not found
...
401
...
invalid_token
...
Wrong or expired access token.
...
401
...
Unauthorized
...
Wrong or missing Merchant authorization
...
404
...
not_found
...
Customer Account not found
...
404
...
customer_identity_not_found
...
The customer didn’t pass through the widget or was not authenticated properly
...
409
...
application_create_error
...
There was an error creating the Credit Application
...
409
...
application_declined, application_declined_2, application_declined_3
...
Customer application declined
...
409
...
application_marked_pending_1, application_marked_pending_2
...
Customer application pending
...
409
...
auth_amount_exceeded
...
Capture amount is greater than the remaining credit authorization amount.
...
409
...
auth_not_allowed
...
Merchant has not configured pre-auth in Lexi.
...
409
...
authentication_failure
...
Missing or wrong Merchant authentication parameters
...
409
...
authorization_ended
...
Credit authorization has “closed” status
...
409
...
authorization_unauthorized
...
Credit authorization has “unauthorized” status
...
409
...
credit_exceeded
...
Amount requested plus fees is greater than the available credit of the customer account.
...
409
...
creditapp_id_not_found
...
Credit Application ID was not found
...
409
...
customer_already_exists
...
Customer applying already has an account
...
409
...
generic_error
...
A generic error covering backend process issues
...
409
...
invalid_transaction_type
...
wrong value for transaction type in the request
...
409
...
limit_payment_amount_24
...
Payments made on the account exceed the $10,000/day limit
...
409
...
merchant_override_is_not_allowed
...
Merchant is not configured for Merchant Override
...
409
...
not_enough_credit
...
Customer does not have enough open to buy for transaction amount
...
409
...
not_found
...
Customer Account number could not be found
...
409
...
not_permitted
...
The employee doesn’t have enough permissions to perform the capture
...
409
...
piw_mismatch
...
Personal Identification word entered does not match what is on file for the customer
...
409
...
plan_term_not_available
...
Plan and Term for prime category for a non-prime customer.
Plan "DP - SAC Interest Accrues" for a QC customer.
Plan "DP - SAC No Payments + No Interest Accrued" for a ROC customer.
...
409
...
plan_term_not_set
...
Merchant has not configured the financing option (Plan and Term or Regular Purchase) in Lexi.
...
409
...
refunds_limit_exceeded_amount
...
Refund amount exceeds account limit
...
409
...
secret_answer_mismatch
...
Security question answer does not match what is on file for the customer
...
409
...
tos_agreement_required
...
Terms and Conditions missing or not agreed
...
409
...
user_not_able_to_purchase
...
Customer account status different to normal (NNOR)
...
409
...
user_not_active
...
Customer Account is not activated
...
409
...
verification_code_required
...
Verification code is a required parameter.
...
409
...
wrong_transaction_type
...
The Capture is not related to a promotional purchase
...
409
...
wrong_verification_code
...
Verification code entered is incorrect
Input Errors
Input errors will tend to follow this model:
...
Example Response
Code Block | language | json
---|
{ "url": "/flexiti/pos-api/v2.5/client-id/flexitidemo/customers/828930/verify", "message": "Some inputs are wrong!", "error": "wrong_input", "field_errors": [ { "param": "email", "msg": "invalid", "value": "johndoe@" } ] } |
Validation Type | Scenario |
---|---|
Required | Mandatory parameter not sent in the request. |
Invalid | Date with wrong format. |
Type | Mismatch data type |
Length | Data length exceeded. |
Parameter Validations
account_number
Case | Error Type |
Value zero or negative. | invalid |
Value with decimals. | invalid |
Value with higher precision | length |
Not sent | required |
Value different to a number. | type |
address_1
Case | Error Type |
Value with higher length | length |
Value different to a string. | type |
address_2
Case | Error Type |
Value with higher length | length |
Value different to a string. | type |
amount
Case | Error Type |
Value different to a number. | type |
Decimal point different to period. | invalid |
Value zero or negative. | invalid |
Value with higher precision and/or scale | length |
amount_requested
Case | Error Type |
Decimal point different to period. | invalid |
Value zero or negative. | invalid |
Value with higher precision and/or scale | length |
Value different to a number. | type |
authorization_id
Case | Error Type |
Value different to a number | invalid |
Not sent | required |
auto_capture
Case | Error Type |
Different to the available values. | invalid |
bearer token
Case | Error Type |
Value not started with "Bearer" followed by a space | invalid |
Token length different to 1000 characters | invalid |
Token not valid. | invalid |
Token expired. | invalid |
Not sent | required |
capture_id
Case | Error Type |
Client not valid. | invalid |
Not sent | required |
city
Case | Error Type |
Value with higher length | length |
Not sent | required |
Value different to a string. | type |
client_id
Case | Error Type |
Client ID not valid | invalid |
Not sent | required |
client_secret
Case | Error Type |
Value with higher length | length |
Not sent | required |
customer_id
Case | Error Type |
Value zero or negative. | invalid |
Value with decimals. | invalid |
Value with higher precision | length |
Not sent | required |
Value different to a number. | type |
date
Case | Error Type |
Value with wrong format | invalid |
dob
Case | Error Type |
Value with wrong format | invalid |
Not sent | required |
Case | Error Type |
Value with wrong format | invalid |
Not sent | required |
employer_name
Case | Error Type |
Value with wrong format | invalid |
employer_phone
Case | Error Type |
Value with wrong format | invalid |
ending_date
Case | Error Type |
Value with wrong format | invalid |
first_name
Case | Error Type |
Value with higher length | length |
Not sent | required |
Value different to a string. | type |
full_release
Case | Error Type |
Different to the available values. | invalid |
full_return
Case | Error Type |
Different to the available values. | invalid |
govid_expiry
Case | Error Type |
Value with wrong format | invalid |
Value with a date less than the current date | invalid |
Not sent | required |
govid_issuedby
Case | Error Type |
Different to the available values. | invalid |
Not sent | required |
govid_number
Case | Error Type |
Value zero or negative. | invalid |
Value with decimals. | invalid |
Value with higher precision | length |
Not sent | required |
Value different to a number. | type |
govid_type
Case | Error Type |
Different to the available values. | invalid |
Not sent | required |
grant_type
Case | Error Type |
Different to the available values. | invalid |
household_income
Case | Error Type |
Value negative. | invalid |
Value with higher precision | length |
Not sent | required |
Value different to a number. | type |
housing_type
Case | Error Type |
Different to the available values. | invalid |
Not sent | required |
input_type
Case | Error Type |
Different to the available values. | invalid |
lang
Case | Error Type |
Different to the available values. | invalid |
last_name
Case | Error Type |
Value with higher length | length |
Value different to a string. | type |
location_id
Case | Error Type |
Value different to a number | invalid |
merchant_id
Case | Error Type |
Value different to a number | invalid |
merchant_password
Case | Error Type |
Not sent | required |
Value different to a string. | type |
Value with higher length | length |
merchant_username
Case | Error Type |
Value with higher length | length |
Not sent | required |
Value different to a string. | type |
middle_name
Case | Error Type |
Value with higher length | length |
Value different to a string. | type |
monthly_housing_expenses
Case | Error Type |
Value with higher precision | length |
Not sent | required |
Value different to a number. | type |
occupation_id
Case | Error Type |
Different to the available values. | invalid |
Not sent | required |
occupation_title
Case | Error Type |
Value with higher length | length |
Not sent | required |
Value different to a string. | type |
page_number
Case | Error Type |
Not sent | required |
Value different to a number. | type |
page_size
Case | Error Type |
Value different to a number. | type |
personal_income
Case | Error Type |
Value with higher precision | length |
Not sent | required |
Value different to a number. | type |
phone_number
Case | Error Type |
Value with higher precision | length |
Not sent | required |
Value different to a number. | type |
piw
Case | Error Type |
Value with higher length | length |
Not sent | required |
Value different to a string. | type |
plan_id
Case | Error Type |
Value zero or negative. | invalid |
Value with decimals. | invalid |
Value with higher precision | length |
Not sent | required |
Value different to a number. | type |
postal_code
Case | Error Type |
Value with higher length | length |
Value different to a string. | type |
preferred_language
Case | Error Type |
Different to the available values. | invalid |
province
Case | Error Type |
Different to the available values. | invalid |
Value different to a string. | type |
reference
Case | Error Type |
Value with higher length | length |
Value different to a string. | type |
salutation
Case | Error Type |
Different to the available values. | invalid |
Not sent | required |
Value different to a string. | type |
security_answer
Case | Error Type |
Not sent | required |
Value different to a string. | type |
Value with higher length | length |
security_qid
Case | Error Type |
Value zero or negative. | invalid |
Value with decimals. | invalid |
Value with higher precision | length |
Not sent | required |
Value different to a number. | type |
sin
Case | Error Type |
Value zero or negative. | invalid |
Value with decimals. | invalid |
Value with higher precision | length |
Value different to a number. | type |
term
Case | Error Type |
Value zero or negative. | invalid |
Value with decimals. | invalid |
Value with higher precision | length |
Not sent | required |
Value different to a number. | type |
tos_agreement
Case | Error Type |
Different to the available values. | invalid |
Not sent | required |
transaction_type
Case | Error Type |
Different to the available values. | invalid |
Not sent | required |
vcc_number
Case | Error Type |
Value zero or negative. | invalid |
Value with decimals. | invalid |
Value with higher precision | length |
Value different to a number. | type |
verification_code
...
Case
...
Error Type
...
Value zero or negative.
...
invalid
...
Value with decimals.
...
invalid
...
Value with higher precision
...
invalid
...
Not sent
...
required
...
Value different to a number.
...
Individual Endpoint Errors
POST /oauth/token
Code | Error | Scenario |
400 | invalid_client | Wrong or missing client id or client_secret |
400 | invalid_request | Invalid or missing grant_type parameter |
401 | invalid_token | Wrong or expired access token |
POST /client-id/{client_id}/merchants/login
Code | Error | Scenario |
409 | authentication_failure | Wrong Merchant username or password |
POST /client-id/{client_id}/apply
Code | Error | Scenario |
409 | application_create_error | There was an error creating the Credit Application |
409 | tos_agreement_required | Terms and Conditions missing or not agreed |
409 | application_declined, application_declined_2, application_declined_3 | Customer application declined |
409 | application_marked_pending_1, application_marked_pending_2 | Customer application pending |
409 | customer_already_exists | Customer applying already has an account |
GET /client-id/{client_id}/customers/lookup
Code | Error | Scenario |
404 | not_found | Customer Account not found |
409 | user_not_able_to_purchase | Customer account status different to normal (NNOR) |
409 | user_not_active | Customer Account is not activated |
GET /client-id/{client_id}/customers/search
Code | Error | Scenario |
404 | not_found | Customer Account not found |
POST /client-id/{client_id}/account/{account_number}/verify
Code | Error | Scenario |
404 | not_found | Customer Account not found |
409 | merchant_override_is_not_allowed | Merchant is not configured for Merchant Override |
409 | piw_mismatch | Personal Identification word entered does not match what is on file for the customer |
409 | secret_answer_mismatch | Security question answer does not match what is on file for the customer |
POST /client-id/{client_id}/accounts/{account_number}/close
Code | Error | Scenario |
404 | not_found | Customer Account not found |
POST /pos-api/client-id/{client_id}/accounts/{account_number}/calculate-interest
Code | Error | Scenario |
404 | not_found | Customer Account not found |
409 | generic_error | A generic error covering backend process issues |
POST /client-id/{client_id}/transactions
Code | Error | Scenario |
404 | not_found | Customer Account, transaction, not found |
409 | generic_error | A generic error covering backend process issues |
409 | invalid_transaction_type | wrong value for transaction type in the request |
409 | wrong_verification_code | Verification code entered is incorrect |
409 | verification_code_required | Verification code is a required parameter. |
409 | user_not_active | Customer Account is not activated |
409 | user_not_able_to_purchase | Customer account status different to normal (NNOR) |
409 | limit_payment_amount_24 | Payments made on the account exceed the $10,000/day limit |
409 | not_enough_credit | Customer does not have enough open to buy for transaction amount |
POST /client-id/{client-id}/authorization
Code | Error | Scenario |
404 | not_found | Customer Account, transaction, not found |
409 | generic_error | A generic error covering backend process issues |
409 | auth_not_allowed | Merchant has not configured pre-auth in Lexi. (autocapture=false) |
409 | plan_term_not_set | Merchant has not configured the financing option (Plan and Term or Regular Purchase) in Lexi. |
409 | plan_term_not_available | - Plan and Term for prime category for a non-prime customer. |
409 | user_not_able_to_purchase | Customer account status different to normal (NNOR) |
409 | credit_exceeded | Amount requested plus interest is greater than the available credit of the customer account. |
409 | customer_identity_not_found | the customer didn’t pass through the widget or was not authenticated properly |
General Errors
Code | Error | Scenario |
400 | invalid_account | Wrong account number (if requested) |
400 | not_found | Authorization ID not found |
401 | Unauthorized | Wrong or missing Merchant authorization |
404 | not_found | Customer Account not found |
404 | customer_identity_not_found | The customer didn’t pass through the widget or was not authenticated properly |
409 | auth_amount_exceeded | Capture amount is greater than the remaining credit authorization amount. |
409 | auth_not_allowed | Merchant has not configured pre-auth in Lexi. |
409 | authentication_failure | Missing or wrong Merchant authentication parameters |
409 | authorization_ended | Credit authorization has “closed” status |
409 | authorization_unauthorized | Credit authorization has “unauthorized” status |
409 | credit_exceeded | Amount requested plus fees is greater than the available credit of the customer account. |
409 | creditapp_id_not_found | Credit Application ID was not found |
409 | generic_error | A generic error covering backend process issues |
409 | invalid_transaction_type | wrong value for transaction type in the request |
409 | not_enough_credit | Customer does not have enough open to buy for transaction amount |
409 | not_permitted | The employee doesn’t have enough permissions to perform the capture |
409 | plan_term_not_available |
|
409 | plan_term_not_set | Merchant has not configured the financing option (Plan and Term or Regular Purchase) in Lexi. |
409 | refunds_limit_exceeded_amount | Refund amount exceeds account limit |
409 | user_not_able_to_purchase | Customer account status different to normal (NNOR) |
409 | user_not_active | Customer Account is not activated |
409 | verification_code_required | Verification code is a required parameter. |
409 | wrong_transaction_type | The Capture is not related to a promotional purchase |
409 | wrong_verification_code | Verification code entered is incorrect |