---
title: "Gsm - Create"
method: POST
path: "/gsm"
tags: ["Gsm"]
---

# Gsm - Create

`POST /gsm`

Creates a GSM (Global Status Mapping) Rule. A GSM rule is used to map a connector's error message/error code combination during a particular payments flow/sub-flow to Hyperswitch's unified status/error code/error message combination. It is also used to decide the next action in the flow - retry/requeue/do_default

## Request body

- GsmCreateRequest
  - `connector` 'absa_sanlam' | 'authipay' | 'adyenplatform' | 'stripe_billing_test' | 'phonypay' | 'fauxpay' | 'pretendpay' | 'stripe_test' | 'adyen_test' | 'checkout_test' | 'paypal_test' | 'aci' | 'adyen' | 'affirm' | 'airwallex' | 'amazonpay' | 'archipel' | 'authorizedotnet' | 'bambora' | 'bamboraapac' | 'bankofamerica' | 'barclaycard' | 'billwerk' | 'bitpay' | 'bluesnap' | 'blackhawknetwork' | 'calida' | 'boku' | 'braintree' | 'breadpay' | 'cardinal' | 'cashtocode' | 'celero' | 'chargebee' | 'checkbook' | 'checkout' | 'coinbase' | 'coingate' | 'custombilling' | 'cryptopay' | 'ctp_mastercard' | 'ctp_visa' | 'cybersource' | 'cybersourcedecisionmanager' | 'datatrans' | 'deutschebank' | 'digitalvirgo' | 'dlocal' | 'dwolla' | 'ebanx' | 'envoy' | 'elavon' | 'facilitapay' | 'finix' | 'fiserv' | 'fiservemea' | 'fiservcommercehub' | 'fiuu' | 'flexiti' | 'forte' | 'getnet' | 'gigadat' | 'givepayments' | 'globalpay' | 'globepay' | 'gocardless' | 'gpayments' | 'hipay' | 'helcim' | 'hyperpg' | 'hyperswitch_vault' | 'interpayments' | 'inespay' | 'iatapay' | 'imerchantsolutions' | 'itaubank' | 'jpmorgan' | 'juspaythreedsserver' | 'klarna' | 'loonio' | 'mifinity' | 'mollie' | 'moneris' | 'multisafepay' | 'netcetera' | 'nexinets' | 'nexixpay' | 'nmi' | 'nomupay' | 'noon' | 'nordea' | 'novalnet' | 'nuvei' | 'opennode' | 'paybox' | 'payload' | 'payme' | 'payone' | 'paypal' | 'paysafe' | 'paystack' | 'paytm' | 'payconex' | 'payu' | 'peachpayments' | 'payjustnow' | 'payjustnowinstore' | 'phonepe' | 'placetopay' | 'powertranz' | 'prophetpay' | 'rapyd' | 'razorpay' | 'recurly' | 'redsys' | 'revolv3' | 'santander' | 'shift4' | 'silverflow' | 'square' | 'stax' | 'stripe' | 'stripebilling' | 'taxjar' | 'threedsecureio' | 'tesouro' | 'tokenex' | 'tokenio' | 'trustly' | 'truelayer' | 'trustpay' | 'trustpayments' | 'tsys' | 'tsys_transit' | 'vgs' | 'volt' | 'wellsfargo' | 'wise' | 'worldline' | 'worldpay' | 'worldpayvantiv' | 'worldpayxml' | 'worldpaymodular' | 'signifyd' | 'plaid' | 'riskified' | 'xendit' | 'zen' | 'zift' | 'zsl', required
  - `flow` string, required — The flow in which the code and message occurred for a connector
  - `sub_flow` string, required — The sub_flow in which the code and message occurred for a connector
  - `code` string, required — code received from the connector
  - `message` string, required — message received from the connector
  - `status` string, required — status provided by the router
  - `router_error` string, nullable — optional error provided by the router
  - `decision` 'retry' | 'do_default', required
  - `step_up_possible` boolean, required — indicates if step_up retry is possible **Deprecated**: This field is now included as part of `feature_data` under the `Retry` variant.
  - `unified_code` string, nullable — error code unified across the connectors
  - `unified_message` string, nullable — error message unified across the connectors
  - `error_category` 'frm_decline' | 'processor_downtime' | 'processor_decline_unauthorized' | 'issue_with_payment_method' | 'processor_decline_incorrect_data' | 'hard_decline' | 'soft_decline'
  - `clear_pan_possible` boolean, required — indicates if retry with pan is possible **Deprecated**: This field is now included as part of `feature_data` under the `Retry` variant.
  - `feature` 'retry'
  - `feature_data` GsmFeatureData — Contains the data relevant to the specified GSM feature, if applicable. For example, if the `feature` is `Retry`, this will include configuration details specific to the retry behavior.
    - `retry` RetryFeatureData, required — Represents the data associated with a retry feature in GSM.
      - `step_up_possible` boolean, required — indicates if step_up retry is possible
      - `clear_pan_possible` boolean, required — indicates if retry with pan is possible
      - `alternate_network_possible` boolean, required — indicates if retry with alternate network possible
      - `decision` 'retry' | 'do_default', required
  - `standardised_code` 'account_closed_or_invalid' | 'authentication_failed' | 'authentication_required' | 'authorization_missing_or_revoked' | 'card_lost_or_stolen' | 'card_not_supported_restricted' | 'cfg_pm_not_enabled_or_misconfigured' | 'compliance_or_sanctions_restriction' | 'configuration_issue' | 'credit_limit_exceeded' | 'currency_or_corridor_not_enabled' | 'do_not_honor' | 'downstream_technical_issue' | 'duplicate_request' | 'generic_unknown_error' | 'incorrect_authentication_code' | 'insufficient_funds' | 'integ_cryptographic_issue' | 'integration_issue' | 'invalid_card_number' | 'invalid_credentials' | 'invalid_cvv' | 'invalid_expiry_date' | 'invalid_state' | 'issuer_unavailable' | 'merchant_inactive' | 'missing_or_invalid_param' | 'operation_not_allowed' | 'payment_cancelled_by_user' | 'payment_method_issue' | 'payment_session_timeout' | 'pm_address_mismatch' | 'psp_acquirer_error' | 'psp_fraud_engine_decline' | 'rate_limit' | 'stored_credential_or_mit_not_enabled' | 'subscription_plan_inactive' | 'suspected_fraud' | 'three_ds_authentication_service_issue' | 'three_ds_configuration_issue' | 'three_ds_data_or_protocol_invalid' | 'transaction_not_permitted' | 'transaction_timed_out' | 'velocity_limit_exceeded' | 'wallet_or_token_config_issue'
  - `description` string, nullable — A detailed description of the error intended for debugging, analytics, and support teams.
  - `user_guidance_message` string, nullable — A user-friendly message that can be safely displayed to the customer. This message provides guidance on what the user should do to resolve the issue.

## Response `200`

Gsm created

- GsmResponse
  - `connector` string, required — The connector through which payment has gone through
  - `flow` string, required — The flow in which the code and message occurred for a connector
  - `sub_flow` string, required — The sub_flow in which the code and message occurred for a connector
  - `code` string, required — code received from the connector
  - `message` string, required — message received from the connector
  - `status` string, required — status provided by the router
  - `router_error` string, nullable — optional error provided by the router
  - `decision` 'retry' | 'do_default', required
  - `step_up_possible` boolean, required — indicates if step_up retry is possible **Deprecated**: This field is now included as part of `feature_data` under the `Retry` variant.
  - `unified_code` string, nullable — error code unified across the connectors
  - `unified_message` string, nullable — error message unified across the connectors
  - `error_category` 'frm_decline' | 'processor_downtime' | 'processor_decline_unauthorized' | 'issue_with_payment_method' | 'processor_decline_incorrect_data' | 'hard_decline' | 'soft_decline'
  - `clear_pan_possible` boolean, required — indicates if retry with pan is possible **Deprecated**: This field is now included as part of `feature_data` under the `Retry` variant.
  - `feature` 'retry', required
  - `feature_data` GsmFeatureData, required — Contains the data relevant to the specified GSM feature, if applicable. For example, if the `feature` is `Retry`, this will include configuration details specific to the retry behavior.
    - `retry` RetryFeatureData, required — Represents the data associated with a retry feature in GSM.
      - `step_up_possible` boolean, required — indicates if step_up retry is possible
      - `clear_pan_possible` boolean, required — indicates if retry with pan is possible
      - `alternate_network_possible` boolean, required — indicates if retry with alternate network possible
      - `decision` 'retry' | 'do_default', required
  - `standardised_code` 'account_closed_or_invalid' | 'authentication_failed' | 'authentication_required' | 'authorization_missing_or_revoked' | 'card_lost_or_stolen' | 'card_not_supported_restricted' | 'cfg_pm_not_enabled_or_misconfigured' | 'compliance_or_sanctions_restriction' | 'configuration_issue' | 'credit_limit_exceeded' | 'currency_or_corridor_not_enabled' | 'do_not_honor' | 'downstream_technical_issue' | 'duplicate_request' | 'generic_unknown_error' | 'incorrect_authentication_code' | 'insufficient_funds' | 'integ_cryptographic_issue' | 'integration_issue' | 'invalid_card_number' | 'invalid_credentials' | 'invalid_cvv' | 'invalid_expiry_date' | 'invalid_state' | 'issuer_unavailable' | 'merchant_inactive' | 'missing_or_invalid_param' | 'operation_not_allowed' | 'payment_cancelled_by_user' | 'payment_method_issue' | 'payment_session_timeout' | 'pm_address_mismatch' | 'psp_acquirer_error' | 'psp_fraud_engine_decline' | 'rate_limit' | 'stored_credential_or_mit_not_enabled' | 'subscription_plan_inactive' | 'suspected_fraud' | 'three_ds_authentication_service_issue' | 'three_ds_configuration_issue' | 'three_ds_data_or_protocol_invalid' | 'transaction_not_permitted' | 'transaction_timed_out' | 'velocity_limit_exceeded' | 'wallet_or_token_config_issue'
  - `description` string, nullable — A detailed description of the error intended for debugging, analytics, and support teams.
  - `user_guidance_message` string, nullable — A user-friendly message that can be safely displayed to the customer. This message provides guidance on what the user should do to resolve the issue.

## Other responses

- `400` — Missing Mandatory fields

---

[API](https://skmtc.net/hyperswitch/apis/dynamic-routing-openapi-3-0.md) · [All operations](https://skmtc.net/hyperswitch/apis/dynamic-routing-openapi-3-0/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/hyperswitch/dynamic-routing-openapi-3-0/revisions/8fbf69ab2597/schema)
