Status codes

Payment status codes indicate the status of a payment transaction processed through MoneyHash payment API.

Transaction Operation Status Codes

Payment status codes indicate the status of a payment transaction processed through MoneyHash payment API. We offer a unified status code list that maps and connects to the original codes sent by the payment provider. MoneyHash ensures the raw original error code data sent by the provider is always available upon request.

You can retrieve the payment status codes in the transaction webhooks sent by MoneyHash API. Within the transaction status object, you will find a nested statuses array that includes detailed information about the transaction status.

Transaction webhook with status code
{
  "type": "transaction.purchase.failed",
  "status_id": "9KWQvGM",
  "operation_id": "ZpNP75L",
  "intent": {
    "id": "L50waMr",
    "created": "2025-01-22 09:47:25.234701+00:00",
    "custom_fields": null,
    "split_data": [],
    "custom_form_answers": null,
    "amount": { "value": 6500, "currency": "EGP" },
    "flow_data": null
  },
  "account": { "id": "gy0y7KL" },
  "transaction": {
    "type": "payment",
    "id": "99f22c3d-372f-494d-a7fc-b5edb75d275b",
    "created": "2025-01-22 09:47:25.599773+00:00",
    "status": "purchase.failed",
    "billing_data": {
      "name": "John Doe",
      "first_name": "John",
      "last_name": "Doe",
      "email": "[email protected]",
      "phone_number": "+201064610000",
      "address": "Ahmed Fakhry street, Building 22",
      "address1": null,
      "apartment": null,
      "floor": null,
      "building": null,
      "street": null,
      "city": "Nasr City",
      "state": "Cairo",
      "country": null,
      "postal_code": "11828",
      "mobile_wallet_number": null
    },
    "external_action_message": [],
    "provider_transaction_fields": {
      "checkoutdotcom_payment_id": "pay_dbfrnibxzpqenhnymneojpt3qa",
      "checkoutdotcom_payment_auth_code": null,
      "checkoutdotcom_increase_auth_code": null,
      "checkoutdotcom_increase_auth_action_id": null,
      "checkoutdotcom_acquirer_reference_number": null,
      "checkoutdotcom_processing_object": null,
      "checkoutdotcom_operation_fields": {
        "ZpNP75L": {
          "action_id": null,
          "auth_code": null,
          "acquirer_transaction_id": null,
          "retrieval_reference_number": null
        }
      }
    },
    "provider_unique_reference": {
      "key": "checkoutdotcom_payment_id",
      "value": "pay_dbfrnibxzpqenhnymneojpt3qa"
    },
    "operations": [
      {
        "id": "ZpNP75L",
        "type": "purchase",
        "status": "failed",
        "amount": { "value": 6500, "currency": "EGP" },
        "latest_status": {
          "id": "9KWQvGM",
          "value": "failed",
          "code": "7708",
          "provider_error_code": "P-NA",
          "provider_error_message": "P-NA",
          "message": "MH: Unknown error",
          "localized_message": "MH: Unknown error"
        },
        "statuses": [
          {
            "id": "9JD0vE5",
            "value": "pending",
            "code": "8000",
            "provider_error_code": null,
            "provider_error_message": null,
            "message": "Pending",
            "localized_message": "Pending",
            "created": "2025-01-22 09:47:25.633922+00:00"
          },
          {
            "id": "ZpraR1q",
            "value": "pending_authentication",
            "code": "8001",
            "provider_error_code": null,
            "provider_error_message": null,
            "message": "Pending Authentication",
            "localized_message": "Pending Authentication",
            "created": "2025-01-22 09:47:38.424474+00:00"
          },
          {
            "id": "9KWQvGM",
            "value": "failed",
            "code": "7708",
            "provider_error_code": "P-NA",
            "provider_error_message": "P-NA",
            "message": "MH: Unknown error",
            "localized_message": "MH: Unknown error",
            "created": "2025-01-22 09:47:49.537235+00:00"
          }
        ],
        "refund_type": null,
        "custom_fields": null,
        "extra": {}
      }
    ],
    "fraud_decision": null,
    "custom_message": "",
    "method": {
      "id": "9831BJZ",
      "display_name": "CheckoutDotCom - Card",
      "service_provider": { "id": "97d4pnL", "display_name": "Checkout.com" }
    },
    "payment_method_details": { "type": "CARD", "data": null },
    "authentication_data": {
      "version": "2.2.0",
      "eci_value": null,
      "ds_trans_id": null,
      "acs_trans_id": null,
      "threeds_status_code": "R",
      "authentication_value": null,
      "threeds_interaction_mode": null
    },
    "paying_card_token": null,
    "authorization_code": null,
    "merchant_reference": null,
    "shipping_data": {
      "first_name": "John",
      "last_name": "Doe",
      "email": "[email protected]",
      "phone_number": "+201064610000",
      "address": "Ahmed Fakhry street, Building 22",
      "country": "SA",
      "city": "Nasr City",
      "street": "street name",
      "floor": "1",
      "building": "8028",
      "state": "Cairo",
      "postal_code": "11828",
      "apartment": "803",
      "description": "Second building",
      "shipping_method": "EM"
    },
    "trx_rrn": null,
    "ip": {
      "ip_address": "84.170.200.78",
      "country": { "iso_code": "DE", "name": "Germany" }
    },
    "full_capture": false
  },
  "api_version": "1.1"
}

        

Payment Status Codes

MoneyHash defines multiple code ranges to help you identify the status of each operation, and we group status codes as the following:

Status Code RangeDescription
6000Payment successful - The payment has been successfully completed.
7000Payment failure - The payment request has failed due to an error or invalid data.
8000Payment pending - The payment request has been received and is awaiting further processing.

❗️

MoneyHash reserves the right to add more error codes or change the existing one, but we will notify you with enough time to make the necessary changes on your end.

Additionally, we use specific status codes to provide more detailed information about the payment status. When a specific status is available, we replace the trailing zeros (000) in the general status code with a different number referring to the detailed status. Here’s a list of possible statuses:

Status CodeStatus MessageDescription
7000PSP_FAILED_ERRORA generic payment processing error occurred.
7511PSP_ACCOUNTS_ERRORIssues with the accounts related to the payment.
7078PSP_PAYMENT_INSTRUMENT_ERRORThe payment instrument provided is invalid or unsupported.
7004PSP_CARD_PICKUP_ERRORCard flagged for pickup due to restrictions or fraud suspicion.
7024PSP_FILE_ERRORError related to file processing or updates.
7055PSP_PAYMENT_INSTRUMENT_CREDENTIALS_ERRORIncorrect or missing credentials for the payment instrument.
7001PSP_BANK_DECLINE_ERRORTransaction declined by the bank.
7003PSP_INVALID_REQUEST_ERRORThe request contains invalid parameters or is improperly formatted.
7013PSP_INVALID_AMOUNT_ERRORThe transaction amount is invalid.
7015PSP_ISSUER_ERRORError originating from the payment issuer.
7153PSP_MALFUNCTION_ERRORSystem or network malfunction during transaction processing.
7035PSP_ACQUIRER_ERRORError originating from the payment acquirer.
7154PSP_AUTHENTICATION_REQUIRED_ERRORAuthentication is required to complete the transaction.
7151PSP_AUTHENTICATION_FAILED_ERRORAuthentication process for the transaction failed.
7387PSP_EXPIRY_DATE_ERRORThe card's expiration date is invalid or has expired.
7040PSP_CONFIGURATION_ERRORConfiguration issue at the payment gateway or provider.
7057PSP_TRANSACTION_NOT_PERMITTED_ERRORThe transaction is not permitted.
7061PSP_AMOUNT_LIMIT_ERRORThe transaction amount exceeds the allowed limits.
7018PSP_TRANSACTION_DISPUTED_ERRORTransaction flagged due to a customer dispute.
7023PSP_FEE_ERRORError related to the transaction fees applied.
7031PSP_BANK_NOT_SUPPORTED_ERRORThe payment instrument bank is not supported.
7051PSP_INSUFFICIENT_FUNDS_ERRORThe account lacks sufficient funds to complete the transaction.
7059PSP_SUSPECTED_FRAUD_ERRORTransaction flagged for suspected fraudulent activity.
7063PSP_SECURITY_ERRORSecurity violation or issue during processing.
7092PSP_FINANCIAL_NETWORK_UNAVAILABLE_ERRORFinancial network unavailable or unable to route the transaction.
7094PSP_DUPLICATION_ERRORDuplicate transaction or request detected.
7152PSP_TRANSACTION_TIMEOUT_ERRORTransaction timed out during processing.
7488PSP_TRANSACTION_EXPIRED_ERRORThe transaction has expired.
7500PSP_BILLING_DETAILS_ERRORInvalid or incomplete billing details provided.
7503PSP_CURRENCY_ERRORUnsupported or invalid currency specified.
7098PSP_SHIPPING_ADDRESS_ERRORThe provided shipping address is invalid.
7099PSP_SENDER_ERRORError related to the transaction sender.
7100PSP_SYSTEM_BUSY_ERRORUnable to process the transaction at this time.
7101PSP_RECIPIENT_ERRORError with recipient details or account.
7102PSP_VALIDATION_ERRORValidation failed for transaction parameters.
7103PSP_DECLINE_LIST_ERRORDeclined due to being on a block or decline list.
7104PSP_RISK_DECLINE_ERRORDeclined due to exceeding risk thresholds.
7105PSP_LIMIT_EXCEEDEDSome limits were exceeded on the provider side.
7700MH_INTENT_EXPIRED_ERRORMH: The transaction or intent has expired.
7701MH_TOO_MANY_FAILED_TRANSACTIONS_ERRORMH: The number of failed transactions exceeded the threshold.
7702MH_BILLING_DATA_ERRORMH: Missing or invalid billing data for the transaction.
7703MH_INTENT_CLOSED_ERRORMH: The intent has already been closed.
7704MH_PAYMENT_INSTRUMENT_CREDENTIALS_ERRORMH: Incorrect or missing credentials provided for the payment method.
7709MH_PSP_CONFIGURATION_ERRORMH: Configuration issue with the PSP connection.
7706MH_INVALID_REQUEST_ERRORMH: The request is invalid or contains incorrect data.
7705MH_PSP_UNAVAILABLE_ERRORMH: The PSP service is unavailable at the time of the request.
7707MH_PROVIDER_CONNECTION_PARSING_ERRORMH: Couldn't parse the provider response.
7708MH_PROVIDER_CONNECTION_UNKNOWN_ERRORMH: Unknown error.
7710MH_PROVIDER_ERROR_MAPPING_NOT_SUPPORTEDMH: This provider error mapping is not supported yet, please refer to provider interactions for more details on the error code.

Handling Response Codes

When integrating our online payment API, it is important to handle payment status code. This involves checking the response code and taking appropriate actions or error handling based on the specific scenario.