Error Handling - POS API
- 1 Error Overview
- 1.1.1 HTTP Status Code Summary
- 1.1.2 General Debugging Notes
- 1.2 General Input Errors
- 1.3 Merchant Integration Endpoint Errors
- 1.4 Credit Application Endpoint Errors
- 1.5 Customer Endpoint Errors
- 1.5.1 GET /client-id/{client_id}/customers/lookup
- 1.5.2 GET /client-id/{client_id}/customers/search
- 1.5.3 POST /client-id/{client_id}/account/{account_number}/verify
- 1.5.4 POST /client-id/{client_id}/accounts/{account_number}/close
- 1.5.5 POST /pos-api/client-id/{client_id}/accounts/{account_number}/calculate-interest
- 1.6 Transaction Endpoint Errors
- 1.6.1 POST /client-id/{client_id}/transactions
- 1.6.2 POST /client-id/{client-id}/authorization
- 1.6.3 GET /client-id/{clientId}/authorizations
- 1.6.4 GET /client-id/{clientId}/authorization/{authorizationId}
- 1.6.5 POST /client-id/{clientId}/authorization/{authorizationId}/release
- 1.6.6 POST /client-id/{clientId}/authorization/{authorizationId}/capture
- 1.6.7 POST /client-id/{clientId}/authorization/{authorizationId}/capture/{captureId}/return
- 1.6.8 POST /client-id/{client_id}/accounts/{account_number}/refund
- 1.6.9 GET /client-id/{clientId}/captures
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 Code | 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. |
465 | Blocked | Blocked a request that contained a malicious payload. |
466 | Blocked | Blocked a request due to an ACL rule. |
467 | Blocked | Blocked a request because it was Geo-blocked. |
500 | Server Errors | Something went wrong on the Flexiti side. (These are rare.) |
*465/466/467 Status codes can be treated the same way as 403.
General Debugging Notes
If at anytime you receive an error for “general_error”, please email implementation@flexiti.com, as the issue is likely related to your account set-up.
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@"
}
]
}
Merchant Integration 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 |
409 | invalid_role | The Developer Portal account being used is not provisioned for the API being accessed. Please contact Flexiti Implementation Support. |
409 | wrong_inputs | Invalid parameter |
GET /client-id/{clientId}/i18n
Code | Error | Scenario |
409 | general_error | A generic error covering back-end process issues |
409 | invalid_role | The Developer Portal account being used is not provisioned for the API being accessed. Please contact Flexiti Implementation Support. |
409 | wrong_inputs | Invalid parameter |
POST /client-id/{clientId}/widget/init
Code | Error | Scenario |
409 | invalid_role | The Developer Portal account being used is not provisioned for the API being accessed. Please contact Flexiti Implementation Support. |
409 | general_error | A generic error covering back-end process issues |
409 | wrong_inputs | Invalid parameter |
Credit Application Endpoint Errors
POST /client-id/{client_id}/apply
Code | Error | Scenario |
400 | general_error | A generic error covering back-end process issues |
409 | invalid_role | The Developer Portal account being used is not provisioned for the API being accessed. Please contact Flexiti Implementation Support. |
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 |
409 | account_type_not_permitted | The merchant is not able to support applications for this account type. |
409 | wrong_inputs | Invalid parameter |
Customer Endpoint Errors
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 | invalid_role | The Developer Portal account being used is not provisioned for the API being accessed. Please contact Flexiti Implementation Support. |
409 | user_not_able_to_purchase | Customer account status different to normal (NNOR) |
409 | user_not_active | Customer Account is not activated |
409 | merchant_not_support_nonprime_regularpurchase | Customer is non-prime and the Merchant does not accept non-prime or have the appropriate plans. |
409 | wrong_inputs | Invalid parameter |
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 |
409 | invalid_role | The Developer Portal account being used is not provisioned for the API being accessed. Please contact Flexiti Implementation Support. |
409 | wrong_inputs | Invalid parameter |
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 or VCC is not found |
409 | invalid_role | The Developer Portal account being used is not provisioned for the API being accessed. Please contact Flexiti Implementation Support. |
409 | merchant_override_is_not_allowed | Merchant is not configured for Merchant Override |
409 | regular_purchase_bypass_is_not_allowed |
|
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 |
409 | wrong_inputs | Invalid parameter |
409 | tries_exceed | The wrong security answer has been attempted on this account more than three times in the last 48 hours. |
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 |
409 | invalid_role | The Developer Portal account being used is not provisioned for the API being accessed. Please contact Flexiti Implementation Support. |
POST /pos-api/client-id/{client_id}/accounts/{account_number}/calculate-interest
Code | Error | Scenario |
404 | not_found | Customer Account not found |
409 | invalid_role | The Developer Portal account being used is not provisioned for the API being accessed. Please contact Flexiti Implementation Support. |
409 | general_error | A generic error covering back-end process issues |
409 | wrong_inputs | Invalid parameter |
Transaction Endpoint Errors
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, VCC, or transaction not found |
409 | invalid_role | The Developer Portal account being used is not provisioned for the API being accessed. Please contact Flexiti Implementation Support. |
409 | general_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 |
409 | account_type_not_permitted | The merchant is not able to support this account type (open/closed loop scenarios) |
409 | vcc_account_mismatch | The vcc number being passed in the request does not belong to the account number. |
409 | wrong_inputs | Invalid parameter |
POST /client-id/{client-id}/authorization
Code | Error | Scenario |
404 | not_found | Customer Account or VCC not found |
404 | customer_identity_not_found | the customer didn’t pass through the widget or was not authenticated properly |
409 | invalid_role | The Developer Portal account being used is not provisioned for the API being accessed. Please contact Flexiti Implementation Support. |
409 | credit_exceeded | Amount requested plus interest is greater than the available credit of the customer account. |
409 | not_permitted | API credentials do not have sufficient permissions to perform an authorization |
409 | general_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 |
409 | account_type_not_permitted | The merchant is not able to support this account type (open/closed loop scenarios) |
409 | vcc_account_mismatch | The vcc number being passed in the request does not belong to the account number. |
409 | wrong_inputs | Invalid parameter |
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 | invalid_role | The Developer Portal account being used is not provisioned for the API being accessed. Please contact Flexiti Implementation Support. |
409 | general_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 |
409 | wrong_inputs | Invalid parameter |
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 | invalid_role | The Developer Portal account being used is not provisioned for the API being accessed. Please contact Flexiti Implementation Support. |
409 | general_error | A generic error covering back-end process issues |
409 | wrong_inputs | Invalid parameter |
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 | invalid_role | The Developer Portal account being used is not provisioned for the API being accessed. Please contact Flexiti Implementation Support. |
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 |
409 | wrong_inputs | Invalid parameter |
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 | invalid_role | The Developer Portal account being used is not provisioned for the API being accessed. Please contact Flexiti Implementation Support. |
409 | general_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 |
409 | wrong_inputs | Invalid parameter |
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, Capture ID, or VCC not found |
409 | invalid_role | The Developer Portal account being used is not provisioned for the API being accessed. Please contact Flexiti Implementation Support. |
409 | general_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 |
409 | account_type_not_permitted | The merchant is not able to support this account type (open/closed loop scenarios) |
409 | vcc_account_mismatch | The vcc number being passed in the request does not belong to the account number. |
409 | wrong_inputs | Invalid parameter |
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, VCC, or Capture ID not found |
409 | invalid_role | The Developer Portal account being used is not provisioned for the API being accessed. Please contact Flexiti Implementation Support. |
409 | general_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 |
409 | account_type_not_permitted | The merchant is not able to support this account type (open/closed loop scenarios) |
409 | vcc_account_mismatch | The vcc number being passed in the request does not belong to the account number. |
409 | capture_amount_exceeded | Return amount is greater than the remaining captured amount. |
409 | wrong_inputs | Invalid parameter |
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 | invalid_role | The Developer Portal account being used is not provisioned for the API being accessed. Please contact Flexiti Implementation Support. |
409 | general_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 |
409 | wrong_inputs | Invalid parameter |