HTTP status code summary (not limited to):
HIPS 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 charge failed, etc.), and codes in the 5xx range indicate an error with HIPS’s servers (these are rare).
Not all errors map cleanly onto HTTP response codes, however. When a request is valid but does not complete successfully (e.g., a card is declined), we return a 402 error code. To understand why a card is declined, refer to the list of codes in the documentation.
HTTP Code | Successful | Meaning |
---|---|---|
200 | Yes | Your request was successful |
201 | Yes | Created - Your request was created |
202 | Yes | Accepted - Your request was accepted |
400 | No | Bad Request – Your request has invalid data. Check your parameters. |
401 | No | Unauthorized – Your API key is wrong, see Authentication |
402 | No | Payment Required - Card declined or no payments are made to an order |
403 | No | Forbidden – The requested data is restricted for your api key. |
404 | No | Not Found – The requested data is not found. |
406 | No | Not Acceptable – You requested a format that isn’t json |
429 | No | Too Many Requests – Your code is pounding our servers, to protect us from evil loops we have a request limit. Should you discover that you need to raise your limit, please contact support. |
5XX | No | Something went wrong on HIPS’s end. (These are rare.) |
7XX | ¯\ (ツ)/¯ | Sometimes, when you do something really unexpectedly silly, you might end up with a 7XX error. In that case we refer to 7XX-rfc :) |
Error types
Error Type | Meaning |
---|---|
api_connection_error | Failure to connect to HIPS’s API. |
api_error | API errors cover any other type of problem (e.g., a temporary problem with HIPS’s servers) and are extremely uncommon. |
authentication_error | Failure to properly authenticate yourself in the request. |
card_error | Card errors are the most common type of error you should expect to handle. They result when the user enters a card that can’t be charged for some reason. |
invalid_request | Invalid request errors arise when your request has invalid parameters. |
rate_limit | Too many requests hit the API too quickly. |
restricted | Your api key or account is restricted, contact support. |
Misc error codes
Error Type | Meaning |
---|---|
card_not_supported | The payment source does not support this type of purchase |
currency_not_supported | The payment source does not support the specified currency. |
do_not_honor | The payment has been declined for an unknown reason |
fraudulent | The payment has been declined as it suspects to be fraudulent |
insufficient_funds | The payment source has insufficient funds to complete the purchase |
customer_not_accepted | HIPS rejects the customer |
customer_blacklisted | HIPS rejects the customer |
unpaid_bills | HIPS rejects the customer |
customer_not_18 | Customer is not 18 (required by law) |
no_such_person | Rejected - No such person found |
sca_step_up_required | SCA Requirements Under the PSD2: Issuers wants to step up authentication (PIN verification required). If possible re-submit the transaction with PIN, otherwise decline. Please include original_transaction_id . |
sca_second_tap_required | SCA Requirements Under the PSD2: Issuers requests a second tap of the card using a zero CVM limit. Please include original_transaction_id . |
Decline reason codes
Error Type | Meaning |
---|---|
not_declined | This is set if the transaction is approved |
insufficient_funds | Insufficient funds or credit limit exceeded |
declined | Authorization declined by card issuer |
no_3ds_authorization | SCA / 3D Secure required, but is aborted or not performed. |
potential_fraud | Anti fraud rejection |
technical_error | Technical error |
merchant_setup | Something is not correct with the merchant setup. Normally the merchant is missing bank account. |
timeout | Timeout |
card_lost | Card lost, retain card if possible |
abandoned | Authorization expired (no capture after 7 days)) |
order_overpayment | Payment amount exceeds order amount |
invalid_amount | Amount format error |
invalid_card | Card format error |
invalid_test_card | Test card is required, please use a test card. |
card_expired | Card is expired |
credit_card_restricted | Credit Card is blocked by Merchant, please use a debit card. |
restricted_card | Card type is blocked (normally country or BIN block) |
invalid_cvv | Invalid CVV2 |
non_eu_card_restricted | Non EU cards are blocked by Merchant |
test_mode_required | Test mode is required |
merchant_balance_too_low | Merchant balance is to low to perform a refund. Please try again when merchant balance is higher. |
shipping_validation | Shipping validation error |
communication_error | Communication error |
unexpected_error | Unexpected error |
incorrect_pin | Incorrect PIN |
duplicated | Duplicated transaction |
invalid_transaction | Invalid Transaction |
merchant_not_on_file | Merchant setup error - contact support |
no_referencing_transaction | The transaction type must be referencing a parent transaction. |
not_permitted_to_terminal | The terminal is not allowing the transaction type |
pin_entry_exceeded | PIN tries exceeded |
exceeds_limits | Limits exceeded |
rejected_by_user | Rejected by User |
recurring_contract_inactive | The recurring contract is inactive |
recurring_contract_finalized | The recurring contract is done |
recurring_source_invalid | The source for the recurring contract is invalid |
recurring_retries_exceeded | Recurring payment retries has exceeded limits, therefore the recurring contract is aborted |
recurring_expired | The source (normally card) for the recurring contract has expired. |