Error Overview
Flexiti uses conventional HTTP response codes to indicate the success or failure of an API request. In general:
Codes in the
2xx
range indicate success.Codes in the
4xx
range indicate an error that failed given the information provided (e.g., a required parameter was omitted, a transaction failed, etc.).Codes in the
5xx
range indicates an error with Flexiti's servers.
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. Wrong or expired access token. |
403 | Forbidden | Request is forbidden for the level of access granted. |
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 Input Errors
Input errors will tend to follow this model:
message: "Some inputs are wrong or missing!"
error: "wrong_inputs"
error_fields:
"param": "parameter_name",
“msg”: “error message”
"value":"parameter_value",
Example Response
{ "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@" } ] }
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 |
POST /client-id/{client_id}/merchants/login - DEPRECIATED
Code | Error | Scenario |
409 | authentication_failure | Wrong Merchant username or password |
POST /client-id/{client_id}/apply
Code | Error | Scenario |
400 | general_error | A generic error covering back-end process issues |
409 | application_create_error | There was an error creating the Credit Application due to a 3rd party timeout |
409 | tos_agreement_required | Terms and Conditions missing or not agreed |
409 | customer_already_exists | Customer applying already has an account |
409 | not_verified | For the online channel, the /apply payload contains different personal information than the /init payload using the same token, or incorrect widget_session_id |
409 | external_location_id_not_found | The external location ID being passed is not registered with Flexiti |
GET /client-id/{client_id}/customers/lookup
Code | Error | Scenario |
403 | Insufficient scope: authorized scope is insufficient | Scope of the token is not sufficient to access the endpoint |
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 |
403 | Insufficient scope: authorized scope is insufficient | Scope of the token is not sufficient to access the endpoint |
404 | not_found | Customer Account not found |
POST /client-id/{client_id}/account/{account_number}/verify
Code | Error | Scenario |
400 | sms_not_valid_phone | Phone number on file invalid/missing |
403 | Insufficient scope: authorized scope is insufficient | Scope of the token is not sufficient to access the endpoint |
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 |
403 | Insufficient scope: authorized scope is insufficient | Scope of the token is not sufficient to access the endpoint |
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 back-end process issues |
POST /client-id/{client_id}/transactions
Code | Error | Scenario |
403 | Insufficient scope: authorized scope is insufficient | Scope of the token is not sufficient to access the endpoint |
404 | not_found | Customer Account, transaction, not found |
409 | generic_error | A generic error covering back-end 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 |
409 | not_verified | For in-store channel the request_id does not match the one passed in the /verify endpoint |
409 | external_location_id_not_found | The external location ID being passed is not registered with Flexiti |
POST /client-id/{client-id}/authorization
Code | Error | Scenario |
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 | credit_exceeded | Amount requested plus interest is greater than the available credit of the customer account. |
409 | generic_error | A generic error covering back-end process issues |
409 | auth_not_allowed | Merchant has not been configured for preauthorization |
409 | plan_term_not_set | Merchant has not been configured for the financing option (Plan and Term or Regular Purchase). |
409 | plan_term_not_available |
|
409 | user_not_able_to_purchase | Customer account status different than normal (NNOR) |
409 | not_verified |
|
409 | external_location_id_not_found | The external location ID being passed is not registered with Flexiti |
GET /client-id/{clientId}/authorizations
Code | Error | Scenario |
403 | Insufficient scope: authorized scope is insufficient | Scope of the token is not sufficient to access the endpoint |
409 | generic_error | A generic error covering back-end process issues |
409 | date_from_bigger_than_date_to | The From date is later than the To date |
GET /client-id/{clientId}/authorization/{authorizationId}
Code | Error | Scenario |
403 | Insufficient scope: authorized scope is insufficient | Scope of the token is not sufficient to access the endpoint |
400 | not_found | Authorization ID not found |
409 | generic_error | A generic error covering back-end process issues |
POST /client-id/{clientId}/authorization/{authorizationId}/release
Code | Error | Scenario |
403 | Insufficient scope: authorized scope is insufficient | Scope of the token is not sufficient to access the endpoint |
404 | not_found | Authorization ID not found |
409 | generic_error | A generic error covering back-end process issues |
409 | authorization_ended | Credit authorization has “closed” status |
409 | auth_amount_exceeded | Release amount is greater than the remaining credit authorization amount. |
409 | not_permitted | The employee doesn’t have enough permissions to perform the release |
409 | external_location_id_not_found | The external location ID being passed is not registered with Flexiti |
POST /client-id/{clientId}/authorization/{authorizationId}/capture
Code | Error | Scenario |
403 | Insufficient scope: authorized scope is insufficient | Scope of the token is not sufficient to access the endpoint |
404 | not_found | Authorization ID not found |
409 | generic_error | A generic error covering back-end process issues |
409 | authorization_ended | Credit authorization has “closed” status |
409 | auth_amount_exceeded | Capture amount is greater than the remaining credit authorization amount. |
409 | not_permitted |
|
409 | external_location_id_not_found | The external location ID being passed is not registered with Flexiti |
POST /client-id/{clientId}/authorization/{authorizationId}/capture/{captureId}/return
Code | Error | Scenario |
403 | Insufficient scope: authorized scope is insufficient | Scope of the token is not sufficient to access the endpoint |
404 | not_found | Authorization ID or Capture ID not found |
409 | generic_error | A generic error covering back-end process issues |
409 | capture_amount_exceeded | Return amount is greater than the remaining captured amount. |
409 | return_date_exceeded | Capture creation date is more than 100 days old. |
409 | wrong_transaction_type | The capture is not related to a promotional purchase |
409 | not_permitted | The employee doesn’t have enough permissions to perform the return |
409 | external_location_id_not_found | The external location ID being passed is not registered with Flexiti |
POST /client-id/{client_id}/accounts/{account_number}/refund
Code | Error | Scenario |
403 | Insufficient scope: authorized scope is insufficient | Scope of the token is not sufficient to access the endpoint |
404 | not_found | Customer Account not found |
409 | generic_error | A generic error covering back-end process issues |
409 | refunds_limit_exceeded_amount | Refund amount exceeds account balance limit. |
409 | external_location_id_not_found | The external location ID being passed is not registered with Flexiti |
GET /client-id/{clientId}/captures
Code | Error | Scenario |
403 | Insufficient scope: authorized scope is insufficient | Scope of the token is not sufficient to access the endpoint |
409 | generic_error | A generic error covering back-end process issues |
409 | date_from_bigger_than_date_to | The From date is later than the To date |
GET /client-id/{clientId}/information
Code | Error | Scenario |
409 | generic_error | A generic error covering back-end process issues |
POST /client-id/{clientId}/widget/init
Code | Error | Scenario |
409 | generic_error | A generic error covering back-end process issues |