Payments
Create and manage one-time payments, recurring payments and mandates
Payments - Create
Creates a payment resource, which represents a customer's intent to pay. This endpoint is the starting point for various payment flows:
Payments - Create › Request Body
amountThe primary amount for the payment, provided in the lowest denomination of the specified currency (e.g., 6540 for $65.40 USD). This field is mandatory for creating a payment.
currencyThe three-letter ISO 4217 currency code (e.g., "USD", "EUR") for the payment amount. This field is mandatory for creating a payment.
order_tax_amountTotal tax amount applicable to the order, in the lowest denomination of the currency.
amount_to_captureThe amount to be captured from the user's payment method, in the lowest denomination. If not provided, and capture_method is automatic, the full payment amount will be captured. If capture_method is manual, this can be specified in the /capture call. Must be less than or equal to the authorized amount.
shipping_costThe shipping cost for the payment. This is required for tax calculation in some regions.
payment_idOptional. A merchant-provided unique identifier for the payment, contains 30 characters long (e.g., "pay_mbabizu24mvu3mela5njyhpit4"). If provided, it ensures idempotency for the payment creation request. If omitted, Hyperswitch generates a unique ID for the payment.
connectorThis allows to manually select a connector with which the payment can go through.
capture_methodSpecifies how the payment is captured.
automatic: Funds are captured immediately after successful authorization. This is the default behavior if the field is omitted.manual: Funds are authorized but not captured. A separate request to the/payments/{payment_id}/captureendpoint is required to capture the funds.
authentication_typeSpecifies the type of cardholder authentication to be applied for a payment.
ThreeDs: Requests 3D Secure (3DS) authentication. If the card is enrolled, 3DS authentication will be activated, potentially shifting chargeback liability to the issuer.NoThreeDs: Indicates that 3D Secure authentication should not be performed. The liability for chargebacks typically remains with the merchant. This is often the default if not specified.
Note: The actual authentication behavior can also be influenced by merchant configuration and specific connector defaults. Some connectors might still enforce 3DS or bypass it regardless of this parameter.
confirmIf set to true, Hyperswitch attempts to confirm and authorize the payment immediately after creation, provided sufficient payment method details are included. If false or omitted (default is false), the payment is created with a status such as requires_payment_method or requires_confirmation, and a separate POST /payments/{payment_id}/confirm call is necessary to proceed with authorization.
Passing this object creates a new customer or attaches an existing customer to the payment
customer_idThe identifier for the customer
Merchant-provided customer statistics for advanced routing. All fields are optional.
off_sessionSet to true to indicate that the customer is not in your checkout flow during this payment, and therefore is unable to authenticate. This parameter is intended for scenarios where you collect card details and charge them later. When making a recurring payment by passing a mandate_id, this parameter is mandatory
descriptionAn arbitrary string attached to the payment. Often useful for displaying to users or for your own internal record-keeping.
return_urlThe URL to redirect the customer to after they complete the payment process or authentication. This is crucial for flows that involve off-site redirection (e.g., 3DS, some bank redirects, wallet payments).
setup_future_usageSpecifies how the payment method can be used for future payments.
off_session: The payment method can be used for future payments when the customer is not present.on_session: The payment method is intended for use only when the customer is present during checkout. If omitted, defaults toon_session.
The payment method information provided for making a payment
payment_methodIndicates the type of payment method. Eg: 'card', 'wallet', etc.
payment_tokenAs Hyperswitch tokenises the sensitive details about the payments method, it provides the payment_token as a reference to a stored payment method, ensuring that the sensitive details are not exposed in any manner.
Use this object to capture the details about the different products for which the payment is being made. The sum of amount across different products here should be equal to the overall payment amount
Passing this object during payments creates a mandate. The mandate_type sub object is passed by the server.
This "CustomerAcceptance" object is passed during Payments-Confirm request, it enlists the type, time, and mode of acceptance properties related to an acceptance done by the customer. The customer_acceptance sub object is usually passed by the SDK or client.
mandate_idA unique identifier to link the payment to a mandate. To do Recurring payments after a mandate has been created, pass the mandate_id instead of payment_method_data
Browser information to be used for 3DS 2.0
payment_experienceTo indicate the type of payment experience that the customer would go through
payment_method_typeIndicates the sub type of payment method. Eg: 'google_pay' & 'apple_pay' for wallets.
business_countrybusiness_labelBusiness label of the merchant for this payment. To be deprecated soon. Pass the profile_id instead
Merchant connector details used to make payments.
allowed_payment_method_typesUse this parameter to restrict the Payment Method Types to show for a given PaymentIntent
metadataYou can specify up to 50 keys, with key names up to 40 characters long and values up to 500 characters long. Metadata is useful for storing additional, structured information on an object.
Some connectors like Apple Pay, Airwallex and Noon might require some additional information, find specific details in the child attributes below.
payment_linkWhether to generate the payment link for this payment or not (if applicable)
Configure a custom payment link for the particular payment
payment_link_config_idCustom payment link config id set at business profile, send only if business_specific_configs is configured
profile_idThe business profile to be used for this payment, if not passed the default business profile associated with the merchant account will be used. It is mandatory in case multiple business profiles have been set up.
Details of surcharge applied on this payment, if applicable
payment_typeThe type of the payment that differentiates between normal and various types of mandate payments. Use 'setup_mandate' in case of zero auth flow.
request_incremental_authorizationRequest an incremental authorization, i.e., increase the authorized amount on a confirmed payment before you capture it.
session_expiryWill be used to expire client secret after certain amount of time to be supplied in seconds (900) for 15 mins
frm_metadataAdditional data related to some frm(Fraud Risk Management) connectors
request_external_three_ds_authenticationWhether to perform external authentication (if applicable)
Represents external 3DS authentication data used in the payment flow.
Details required for recurring payment
Fee information for Split Payments to be charged on the payment being collected
request_extended_authorizationOptional boolean value to extent authorization period of this payment
capture method must be manual or manual_multiple
merchant_order_reference_idYour unique identifier for this payment or order. This ID helps you reconcile payments on your system. If provided, it is passed to the connector if supported.
skip_external_tax_calculationWhether to calculate tax for this payment intent
psd2_sca_exemption_typeSCA Exemptions types available for authentication
force_3ds_challengeIndicates if 3ds challenge is forced
threeds_method_comp_indIndicates if 3DS method data was successfully completed or not
is_iframe_redirection_enabledIndicates if the redirection has to open in the iframe
all_keys_requiredIf enabled, provides whole connector response
Describes the channel through which the payment was initiated.
tax_statusdiscount_amountTotal amount of the discount you have applied to the order or transaction.
shipping_amount_taxThis Unit struct represents MinorUnit in which core amount works
duty_amountThis Unit struct represents MinorUnit in which core amount works
order_dateDate the payer placed the order.
enable_partial_authorizationAllow partial authorization for this payment
enable_overcaptureBoolean indicating whether to enable overcapture for this payment
is_stored_credentialBoolean flag indicating whether this payment method is stored and has been previously used for payments
mit_categorySpecifies the category of a Merchant Initiated Transaction (MIT). In the case of MIT, mit_category tells what kind of MIT is being processed. In the case of CIT, it tells the future intended MIT type.
Billing Descriptor information to be sent to the payment gateway
tokenizationThe type of tokenization to use for the payment method
Information identifying partner and merchant application initiating the request
Installment payment options grouped by payment method. When provided, the payment is treated as an installment payment.
Installment selection sent by the customer during payment confirmation.
statement_descriptor_nameFor non-card charges, you can use this value as the complete description that appears on your customers’ statements. Must contain at least one letter, maximum 22 characters. To be deprecated soon, use billing_descriptor instead.
statement_descriptor_suffixProvides information about a card payment that customers see on their statements. Concatenated with the prefix (shortened descriptor) or statement descriptor that’s set on the account to form the complete statement descriptor. Maximum 22 characters for the concatenated descriptor. To be deprecated soon, use billing_descriptor instead.
Payments - Create › Responses
Payment created
payment_idUnique identifier for the payment. This ensures idempotency for multiple payments that have been done by a single merchant.
merchant_idThis is an identifier for the merchant account. This is inferred from the API key provided during the request
statusRepresents the overall status of a payment intent. The status transitions through various states depending on the payment method, confirmation, capture method, and any subsequent actions (like customer authentication or manual capture).
amountThe payment amount. Amount for the payment in lowest denomination of the currency. (i.e) in cents for USD denomination, in paisa for INR denomination etc.,
net_amountThe payment net amount. net_amount = amount + surcharge_details.surcharge_amount + surcharge_details.tax_amount + shipping_cost + order_tax_amount, If no surcharge_details, shipping_cost, order_tax_amount, net_amount = amount
amount_capturableThe amount (in minor units) that can still be captured for this payment. This is relevant when capture_method is manual. Once fully captured, or if capture_method is automatic and payment succeeded, this will be 0.
processor_merchant_idThe identifier for the processor merchant account. In platform-connected setups, this is the connected merchant ID. For standard merchants, this is same as merchant_id.
currencyThe three-letter ISO 4217 currency code (e.g., "USD", "EUR") for the payment amount. This field is mandatory for creating a payment.
payment_methodIndicates the type of payment method. Eg: 'card', 'wallet', etc.
attempt_countTotal number of attempts associated with this payment
shipping_costThe shipping cost for the payment.
amount_receivedThe total amount (in minor units) that has been captured for this payment. For fauxpay sandbox connector, this might reflect the authorized amount if status is succeeded even if capture_method was manual.
initiatorRepresents the initiator context in platform-connected setups Used in payment/refund/dispute responses to indicate who initiated the operation None indicates a standard merchant flow / JWT flow / Admin flow or insufficient information
sdk_authorizationToken containing encoded information for sdk authorization.
connectorThe name of the payment connector (e.g., 'stripe', 'adyen') that processed or is processing this payment.
Additional metadata for payment intent state containing refunded and disputed amounts
client_secretA secret token unique to this payment intent. It is primarily used by client-side applications (e.g., Hyperswitch SDKs) to authenticate actions like confirming the payment or handling next actions. This secret should be handled carefully and not exposed publicly beyond its intended client-side use.
createdTimestamp indicating when this payment intent was created, in ISO 8601 format.
modified_atTimestamp indicating when this payment intent was last modified, in ISO 8601 format.
descriptionAn arbitrary string providing a description for the payment, often useful for display or internal record-keeping.
An array of refund objects associated with this payment. Empty or null if no refunds have been processed.
List of disputes that happened on this intent
List of attempts that happened on this intent
List of captures done on latest attempt
mandate_idA unique identifier to link the payment to a mandate, can be used instead of payment_method_data, in case of setting up recurring payments
Passing this object during payments creates a mandate. The mandate_type sub object is passed by the server.
setup_future_usageSpecifies how the payment method can be used for future payments.
off_session: The payment method can be used for future payments when the customer is not present.on_session: The payment method is intended for use only when the customer is present during checkout. If omitted, defaults toon_session.
off_sessionSet to true to indicate that the customer is not in your checkout flow during this payment, and therefore is unable to authenticate. This parameter is intended for scenarios where you collect card details and charge them later. This parameter can only be used with confirm=true.
capture_methodSpecifies how the payment is captured.
automatic: Funds are captured immediately after successful authorization. This is the default behavior if the field is omitted.manual: Funds are authorized but not captured. A separate request to the/payments/{payment_id}/captureendpoint is required to capture the funds.
payment_tokenProvide a reference to a stored payment method
Information about the product , quantity and amount for connectors. (e.g. Klarna)
return_urlThe URL to redirect after the completion of the operation
authentication_typeSpecifies the type of cardholder authentication to be applied for a payment.
ThreeDs: Requests 3D Secure (3DS) authentication. If the card is enrolled, 3DS authentication will be activated, potentially shifting chargeback liability to the issuer.NoThreeDs: Indicates that 3D Secure authentication should not be performed. The liability for chargebacks typically remains with the merchant. This is often the default if not specified.
Note: The actual authentication behavior can also be influenced by merchant configuration and specific connector defaults. Some connectors might still enforce 3DS or bypass it regardless of this parameter.
statement_descriptor_nameFor non-card charges, you can use this value as the complete description that appears on your customers’ statements. Must contain at least one letter, maximum 22 characters.
statement_descriptor_suffixProvides information about a card payment that customers see on their statements. Concatenated with the prefix (shortened descriptor) or statement descriptor that’s set on the account to form the complete statement descriptor. Maximum 255 characters for the concatenated descriptor.
cancellation_reasonIf the payment intent was cancelled, this field provides a textual reason for the cancellation (e.g., "requested_by_customer", "abandoned").
error_codeThe connector-specific error code from the last failed payment attempt associated with this payment intent.
error_messageA human-readable error message from the last failed payment attempt associated with this payment intent.
Complete error details for V1 PaymentsResponse containing unified, issuer, and connector-level error information.
payment_experienceTo indicate the type of payment experience that the customer would go through
payment_method_typeIndicates the sub type of payment method. Eg: 'google_pay' & 'apple_pay' for wallets.
connector_labelA label identifying the specific merchant connector account (MCA) used for this payment. This often combines the connector name, business country, and a custom label (e.g., "stripe_US_primary").
business_countrybusiness_labelThe label identifying the specific business unit or profile under which this payment was processed by the merchant.
business_sub_labelAn optional sub-label for further categorization of the business unit or profile used for this payment.
allowed_payment_method_typesAllowed Payment Method Types for a given PaymentIntent
manual_retry_allowedIf true the payment can be retried with same or different payment method which means the confirm call can be made again.
connector_transaction_idA unique identifier for a payment provided by the connector
frm message is an object sent inside the payments response...when frm is invoked, its value is Some(...), else its None
metadataYou can specify up to 50 keys, with key names up to 40 characters long and values up to 500 characters long. Metadata is useful for storing additional, structured information on an object.
Some connectors like Apple Pay, Airwallex and Noon might require some additional information, find specific details in the child attributes below.
additional data that might be required by hyperswitch
reference_idreference(Identifier) to the payment at connector side
profile_idThe business profile that is associated with this payment
Details of surcharge applied on this payment, if applicable
merchant_decisionDenotes the action(approve or reject) taken by merchant in case of manual review. Manual review can occur when the transaction is marked as risky by the frm_processor, payment processor or when there is underpayment/over payment incase of crypto payment
merchant_connector_idIdentifier of the connector ( merchant connector account ) which was chosen to make the payment
incremental_authorization_allowedIf true, incremental authorization can be performed on this payment, in case the funds authorized initially fall short.
authorization_countTotal number of authorizations happened in an incremental_authorization payment
List of incremental authorizations happened to the payment
Details of external authentication
external_3ds_authentication_attemptedFlag indicating if external 3ds authentication is made or not
expires_onDate Time for expiry of the payment
fingerprintPayment Fingerprint, to identify a particular card. It is a 20 character long alphanumeric code.
Browser information to be used for 3DS 2.0
Describes the channel through which the payment was initiated.
payment_method_idA unique identifier for the payment method used in this payment. If the payment method was saved or tokenized, this ID can be used to reference it for future transactions or recurring payments.
Refer payment_method_tokenization_details for detailed view of payment method tokenization
network_transaction_idThe network transaction ID is a unique identifier for the transaction as recognized by the payment network (e.g., Visa, Mastercard), this ID can be used to reference it for future transactions or recurring payments.
Refer payment_method_tokenization_details for detailed view of payment method tokenization
payment_method_statusPayment Method Status
updatedDate time at which payment was updated
Charge Information
frm_metadataYou can specify up to 50 keys, with key names up to 40 characters long and values up to 500 characters long. FRM Metadata is useful for storing additional, structured information on an object related to FRM.
extended_authorization_appliedflag that indicates if extended authorization is applied on this payment or not
extended_authorization_last_applied_atdate and time at which extended authorization was last applied on this payment
request_extended_authorizationOptional boolean value to extent authorization period of this payment
capture method must be manual or manual_multiple
capture_beforedate and time after which this payment cannot be captured
merchant_order_reference_idMerchant's identifier for the payment/invoice. This will be sent to the connector if the connector provides support to accept multiple reference ids. In case the connector supports only one reference id, Hyperswitch's Payment ID will be sent as reference.
order_tax_amountThis Unit struct represents MinorUnit in which core amount works
connector_mandate_idConnector Identifier for the payment method
card_discoveryIndicates the method by which a card is discovered during a payment
force_3ds_challengeIndicates if 3ds challenge is forced
force_3ds_challenge_triggerIndicates if 3ds challenge is triggered
issuer_error_codeError code received from the issuer in case of failed payments
issuer_error_messageError message received from the issuer in case of failed payments
is_iframe_redirection_enabledIndicates if the redirection has to open in the iframe
whole_connector_responseContains whole connector response
enable_partial_authorizationAllow partial authorization for this payment
enable_overcaptureBool indicating if overcapture must be requested for this payment
is_overcapture_enabledBoolean indicating whether overcapture is effectively enabled for this payment
is_stored_credentialBoolean flag indicating whether this payment method is stored and has been previously used for payments
mit_categorySpecifies the category of a Merchant Initiated Transaction (MIT). In the case of MIT, mit_category tells what kind of MIT is being processed. In the case of CIT, it tells the future intended MIT type.
Billing Descriptor information to be sent to the payment gateway
tokenizationThe type of tokenization to use for the payment method
Information identifying partner and merchant application initiating the request
Installment payment options associated with this payment, grouped by payment method
Installment selection made by the customer during payment confirmation.
Statistics for a customer within a single profile
The authorized fee snapshot aggregated across a payment's capture rows.
None on the containing response means that no merchant commission
snapshot exists. A calculated zero remains Some(0).
customer_idThe identifier for the customer object. If not provided the customer ID will be autogenerated.
This field will be deprecated soon. Please refer to customer.id
emaildescription: The customer's email address
This field will be deprecated soon. Please refer to customer.email object
namedescription: The customer's name
This field will be deprecated soon. Please refer to customer.name object
phoneThe customer's phone number
This field will be deprecated soon. Please refer to customer.phone object
Payments - Retrieve
Retrieves a Payment. This API can also be used to get the status of a previously initiated payment or next action for an ongoing payment
path Parameters
payment_idThe identifier for payment
query Parameters
force_syncDecider to enable or disable the connector call for retrieve request
client_secretThis is a token which expires after 15 minutes, used from the client to authenticate and create sessions from the SDK
expand_attemptsIf enabled provides list of attempts linked to payment intent
expand_capturesIf enabled provides list of captures linked to latest attempt
expand_customer_statisticsWhen true, includes customer statistics for the payment profile (OLAP)
Payments - Retrieve › Responses
Gets the payment with final status
payment_idUnique identifier for the payment. This ensures idempotency for multiple payments that have been done by a single merchant.
merchant_idThis is an identifier for the merchant account. This is inferred from the API key provided during the request
statusRepresents the overall status of a payment intent. The status transitions through various states depending on the payment method, confirmation, capture method, and any subsequent actions (like customer authentication or manual capture).
amountThe payment amount. Amount for the payment in lowest denomination of the currency. (i.e) in cents for USD denomination, in paisa for INR denomination etc.,
net_amountThe payment net amount. net_amount = amount + surcharge_details.surcharge_amount + surcharge_details.tax_amount + shipping_cost + order_tax_amount, If no surcharge_details, shipping_cost, order_tax_amount, net_amount = amount
amount_capturableThe amount (in minor units) that can still be captured for this payment. This is relevant when capture_method is manual. Once fully captured, or if capture_method is automatic and payment succeeded, this will be 0.
processor_merchant_idThe identifier for the processor merchant account. In platform-connected setups, this is the connected merchant ID. For standard merchants, this is same as merchant_id.
currencyThe three-letter ISO 4217 currency code (e.g., "USD", "EUR") for the payment amount. This field is mandatory for creating a payment.
payment_methodIndicates the type of payment method. Eg: 'card', 'wallet', etc.
attempt_countTotal number of attempts associated with this payment
shipping_costThe shipping cost for the payment.
amount_receivedThe total amount (in minor units) that has been captured for this payment. For fauxpay sandbox connector, this might reflect the authorized amount if status is succeeded even if capture_method was manual.
initiatorRepresents the initiator context in platform-connected setups Used in payment/refund/dispute responses to indicate who initiated the operation None indicates a standard merchant flow / JWT flow / Admin flow or insufficient information
sdk_authorizationToken containing encoded information for sdk authorization.
connectorThe name of the payment connector (e.g., 'stripe', 'adyen') that processed or is processing this payment.
Additional metadata for payment intent state containing refunded and disputed amounts
client_secretA secret token unique to this payment intent. It is primarily used by client-side applications (e.g., Hyperswitch SDKs) to authenticate actions like confirming the payment or handling next actions. This secret should be handled carefully and not exposed publicly beyond its intended client-side use.
createdTimestamp indicating when this payment intent was created, in ISO 8601 format.
modified_atTimestamp indicating when this payment intent was last modified, in ISO 8601 format.
Details of customer attached to this payment
descriptionAn arbitrary string providing a description for the payment, often useful for display or internal record-keeping.
An array of refund objects associated with this payment. Empty or null if no refunds have been processed.
List of disputes that happened on this intent
List of attempts that happened on this intent
List of captures done on latest attempt
mandate_idA unique identifier to link the payment to a mandate, can be used instead of payment_method_data, in case of setting up recurring payments
Passing this object during payments creates a mandate. The mandate_type sub object is passed by the server.
setup_future_usageSpecifies how the payment method can be used for future payments.
off_session: The payment method can be used for future payments when the customer is not present.on_session: The payment method is intended for use only when the customer is present during checkout. If omitted, defaults toon_session.
off_sessionSet to true to indicate that the customer is not in your checkout flow during this payment, and therefore is unable to authenticate. This parameter is intended for scenarios where you collect card details and charge them later. This parameter can only be used with confirm=true.
capture_onA timestamp (ISO 8601 code) that determines when the payment should be captured.
Providing this field will automatically set capture to true
capture_methodSpecifies how the payment is captured.
automatic: Funds are captured immediately after successful authorization. This is the default behavior if the field is omitted.manual: Funds are authorized but not captured. A separate request to the/payments/{payment_id}/captureendpoint is required to capture the funds.
payment_tokenProvide a reference to a stored payment method
Information about the product , quantity and amount for connectors. (e.g. Klarna)
return_urlThe URL to redirect after the completion of the operation
authentication_typeSpecifies the type of cardholder authentication to be applied for a payment.
ThreeDs: Requests 3D Secure (3DS) authentication. If the card is enrolled, 3DS authentication will be activated, potentially shifting chargeback liability to the issuer.NoThreeDs: Indicates that 3D Secure authentication should not be performed. The liability for chargebacks typically remains with the merchant. This is often the default if not specified.
Note: The actual authentication behavior can also be influenced by merchant configuration and specific connector defaults. Some connectors might still enforce 3DS or bypass it regardless of this parameter.
statement_descriptor_nameFor non-card charges, you can use this value as the complete description that appears on your customers’ statements. Must contain at least one letter, maximum 22 characters.
statement_descriptor_suffixProvides information about a card payment that customers see on their statements. Concatenated with the prefix (shortened descriptor) or statement descriptor that’s set on the account to form the complete statement descriptor. Maximum 255 characters for the concatenated descriptor.
cancellation_reasonIf the payment intent was cancelled, this field provides a textual reason for the cancellation (e.g., "requested_by_customer", "abandoned").
error_codeThe connector-specific error code from the last failed payment attempt associated with this payment intent.
error_messageA human-readable error message from the last failed payment attempt associated with this payment intent.
unified_codeerror code unified across the connectors is received here if there was an error while calling connector
unified_messageerror message unified across the connectors is received here if there was an error while calling connector
Complete error details for V1 PaymentsResponse containing unified, issuer, and connector-level error information.
payment_experienceTo indicate the type of payment experience that the customer would go through
payment_method_typeIndicates the sub type of payment method. Eg: 'google_pay' & 'apple_pay' for wallets.
connector_labelA label identifying the specific merchant connector account (MCA) used for this payment. This often combines the connector name, business country, and a custom label (e.g., "stripe_US_primary").
business_countrybusiness_labelThe label identifying the specific business unit or profile under which this payment was processed by the merchant.
business_sub_labelAn optional sub-label for further categorization of the business unit or profile used for this payment.
allowed_payment_method_typesAllowed Payment Method Types for a given PaymentIntent
manual_retry_allowedIf true the payment can be retried with same or different payment method which means the confirm call can be made again.
connector_transaction_idA unique identifier for a payment provided by the connector
frm message is an object sent inside the payments response...when frm is invoked, its value is Some(...), else its None
metadataYou can specify up to 50 keys, with key names up to 40 characters long and values up to 500 characters long. Metadata is useful for storing additional, structured information on an object.
Some connectors like Apple Pay, Airwallex and Noon might require some additional information, find specific details in the child attributes below.
additional data that might be required by hyperswitch
reference_idreference(Identifier) to the payment at connector side
profile_idThe business profile that is associated with this payment
Details of surcharge applied on this payment, if applicable
merchant_decisionDenotes the action(approve or reject) taken by merchant in case of manual review. Manual review can occur when the transaction is marked as risky by the frm_processor, payment processor or when there is underpayment/over payment incase of crypto payment
merchant_connector_idIdentifier of the connector ( merchant connector account ) which was chosen to make the payment
incremental_authorization_allowedIf true, incremental authorization can be performed on this payment, in case the funds authorized initially fall short.
authorization_countTotal number of authorizations happened in an incremental_authorization payment
List of incremental authorizations happened to the payment
Details of external authentication
external_3ds_authentication_attemptedFlag indicating if external 3ds authentication is made or not
expires_onDate Time for expiry of the payment
fingerprintPayment Fingerprint, to identify a particular card. It is a 20 character long alphanumeric code.
Browser information to be used for 3DS 2.0
Describes the channel through which the payment was initiated.
payment_method_idA unique identifier for the payment method used in this payment. If the payment method was saved or tokenized, this ID can be used to reference it for future transactions or recurring payments.
Refer payment_method_tokenization_details for detailed view of payment method tokenization
network_transaction_idThe network transaction ID is a unique identifier for the transaction as recognized by the payment network (e.g., Visa, Mastercard), this ID can be used to reference it for future transactions or recurring payments.
Refer payment_method_tokenization_details for detailed view of payment method tokenization
payment_method_statusPayment Method Status
updatedDate time at which payment was updated
Charge Information
frm_metadataYou can specify up to 50 keys, with key names up to 40 characters long and values up to 500 characters long. FRM Metadata is useful for storing additional, structured information on an object related to FRM.
extended_authorization_appliedflag that indicates if extended authorization is applied on this payment or not
extended_authorization_last_applied_atdate and time at which extended authorization was last applied on this payment
request_extended_authorizationOptional boolean value to extent authorization period of this payment
capture method must be manual or manual_multiple
capture_beforedate and time after which this payment cannot be captured
merchant_order_reference_idMerchant's identifier for the payment/invoice. This will be sent to the connector if the connector provides support to accept multiple reference ids. In case the connector supports only one reference id, Hyperswitch's Payment ID will be sent as reference.
order_tax_amountThis Unit struct represents MinorUnit in which core amount works
connector_mandate_idConnector Identifier for the payment method
card_discoveryIndicates the method by which a card is discovered during a payment
force_3ds_challengeIndicates if 3ds challenge is forced
force_3ds_challenge_triggerIndicates if 3ds challenge is triggered
issuer_error_codeError code received from the issuer in case of failed payments
issuer_error_messageError message received from the issuer in case of failed payments
is_iframe_redirection_enabledIndicates if the redirection has to open in the iframe
whole_connector_responseContains whole connector response
enable_partial_authorizationAllow partial authorization for this payment
enable_overcaptureBool indicating if overcapture must be requested for this payment
is_overcapture_enabledBoolean indicating whether overcapture is effectively enabled for this payment
is_stored_credentialBoolean flag indicating whether this payment method is stored and has been previously used for payments
mit_categorySpecifies the category of a Merchant Initiated Transaction (MIT). In the case of MIT, mit_category tells what kind of MIT is being processed. In the case of CIT, it tells the future intended MIT type.
Billing Descriptor information to be sent to the payment gateway
tokenizationThe type of tokenization to use for the payment method
Information identifying partner and merchant application initiating the request
Installment payment options associated with this payment, grouped by payment method
Installment selection made by the customer during payment confirmation.
Statistics for a customer within a single profile
The authorized fee snapshot aggregated across a payment's capture rows.
None on the containing response means that no merchant commission
snapshot exists. A calculated zero remains Some(0).
customer_idThe identifier for the customer object. If not provided the customer ID will be autogenerated.
This field will be deprecated soon. Please refer to customer.id
emaildescription: The customer's email address
This field will be deprecated soon. Please refer to customer.email object
namedescription: The customer's name
This field will be deprecated soon. Please refer to customer.name object
phoneThe customer's phone number
This field will be deprecated soon. Please refer to customer.phone object
Payments - Update
To update the properties of a PaymentIntent object. This may include attaching a payment method, or attaching customer object or metadata fields after the Payment is created
path Parameters
payment_idThe identifier for payment
Payments - Update › Request Body
amountThe primary amount for the payment, provided in the lowest denomination of the specified currency (e.g., 6540 for $65.40 USD). This field is mandatory for creating a payment.
order_tax_amountTotal tax amount applicable to the order, in the lowest denomination of the currency.
currencyThe three-letter ISO 4217 currency code (e.g., "USD", "EUR") for the payment amount. This field is mandatory for creating a payment.
amount_to_captureThe amount to be captured from the user's payment method, in the lowest denomination. If not provided, and capture_method is automatic, the full payment amount will be captured. If capture_method is manual, this can be specified in the /capture call. Must be less than or equal to the authorized amount.
shipping_costThe shipping cost for the payment. This is required for tax calculation in some regions.
payment_idOptional. A merchant-provided unique identifier for the payment, contains 30 characters long (e.g., "pay_mbabizu24mvu3mela5njyhpit4"). If provided, it ensures idempotency for the payment creation request. If omitted, Hyperswitch generates a unique ID for the payment.
connectorThis allows to manually select a connector with which the payment can go through.
capture_methodSpecifies how the payment is captured.
automatic: Funds are captured immediately after successful authorization. This is the default behavior if the field is omitted.manual: Funds are authorized but not captured. A separate request to the/payments/{payment_id}/captureendpoint is required to capture the funds.
authentication_typeSpecifies the type of cardholder authentication to be applied for a payment.
ThreeDs: Requests 3D Secure (3DS) authentication. If the card is enrolled, 3DS authentication will be activated, potentially shifting chargeback liability to the issuer.NoThreeDs: Indicates that 3D Secure authentication should not be performed. The liability for chargebacks typically remains with the merchant. This is often the default if not specified.
Note: The actual authentication behavior can also be influenced by merchant configuration and specific connector defaults. Some connectors might still enforce 3DS or bypass it regardless of this parameter.
confirmIf set to true, Hyperswitch attempts to confirm and authorize the payment immediately after creation, provided sufficient payment method details are included. If false or omitted (default is false), the payment is created with a status such as requires_payment_method or requires_confirmation, and a separate POST /payments/{payment_id}/confirm call is necessary to proceed with authorization.
Passing this object creates a new customer or attaches an existing customer to the payment
customer_idThe identifier for the customer
Merchant-provided customer statistics for advanced routing. All fields are optional.
off_sessionSet to true to indicate that the customer is not in your checkout flow during this payment, and therefore is unable to authenticate. This parameter is intended for scenarios where you collect card details and charge them later. When making a recurring payment by passing a mandate_id, this parameter is mandatory
descriptionAn arbitrary string attached to the payment. Often useful for displaying to users or for your own internal record-keeping.
return_urlThe URL to redirect the customer to after they complete the payment process or authentication. This is crucial for flows that involve off-site redirection (e.g., 3DS, some bank redirects, wallet payments).
setup_future_usageSpecifies how the payment method can be used for future payments.
off_session: The payment method can be used for future payments when the customer is not present.on_session: The payment method is intended for use only when the customer is present during checkout. If omitted, defaults toon_session.
The payment method information provided for making a payment
payment_methodIndicates the type of payment method. Eg: 'card', 'wallet', etc.
payment_tokenAs Hyperswitch tokenises the sensitive details about the payments method, it provides the payment_token as a reference to a stored payment method, ensuring that the sensitive details are not exposed in any manner.
Use this object to capture the details about the different products for which the payment is being made. The sum of amount across different products here should be equal to the overall payment amount
Passing this object during payments creates a mandate. The mandate_type sub object is passed by the server.
This "CustomerAcceptance" object is passed during Payments-Confirm request, it enlists the type, time, and mode of acceptance properties related to an acceptance done by the customer. The customer_acceptance sub object is usually passed by the SDK or client.
Browser information to be used for 3DS 2.0
payment_experienceTo indicate the type of payment experience that the customer would go through
payment_method_typeIndicates the sub type of payment method. Eg: 'google_pay' & 'apple_pay' for wallets.
Merchant connector details used to make payments.
allowed_payment_method_typesUse this parameter to restrict the Payment Method Types to show for a given PaymentIntent
retry_actionDenotes the retry action
metadataYou can specify up to 50 keys, with key names up to 40 characters long and values up to 500 characters long. Metadata is useful for storing additional, structured information on an object.
Some connectors like Apple Pay, Airwallex and Noon might require some additional information, find specific details in the child attributes below.
payment_linkWhether to generate the payment link for this payment or not (if applicable)
Configure a custom payment link for the particular payment
payment_link_config_idCustom payment link config id set at business profile, send only if business_specific_configs is configured
Details of surcharge applied on this payment, if applicable
payment_typeThe type of the payment that differentiates between normal and various types of mandate payments. Use 'setup_mandate' in case of zero auth flow.
request_incremental_authorizationRequest an incremental authorization, i.e., increase the authorized amount on a confirmed payment before you capture it.
session_expiryWill be used to expire client secret after certain amount of time to be supplied in seconds (900) for 15 mins
frm_metadataAdditional data related to some frm(Fraud Risk Management) connectors
request_external_three_ds_authenticationWhether to perform external authentication (if applicable)
Represents external 3DS authentication data used in the payment flow.
Details required for recurring payment
Fee information for Split Payments to be charged on the payment being collected
request_extended_authorizationOptional boolean value to extent authorization period of this payment
capture method must be manual or manual_multiple
merchant_order_reference_idYour unique identifier for this payment or order. This ID helps you reconcile payments on your system. If provided, it is passed to the connector if supported.
skip_external_tax_calculationWhether to calculate tax for this payment intent
psd2_sca_exemption_typeSCA Exemptions types available for authentication
force_3ds_challengeIndicates if 3ds challenge is forced
threeds_method_comp_indIndicates if 3DS method data was successfully completed or not
is_iframe_redirection_enabledIndicates if the redirection has to open in the iframe
all_keys_requiredIf enabled, provides whole connector response
Describes the channel through which the payment was initiated.
tax_statusdiscount_amountTotal amount of the discount you have applied to the order or transaction.
shipping_amount_taxThis Unit struct represents MinorUnit in which core amount works
duty_amountThis Unit struct represents MinorUnit in which core amount works
order_dateDate the payer placed the order.
enable_partial_authorizationAllow partial authorization for this payment
enable_overcaptureBoolean indicating whether to enable overcapture for this payment
is_stored_credentialBoolean flag indicating whether this payment method is stored and has been previously used for payments
mit_categorySpecifies the category of a Merchant Initiated Transaction (MIT). In the case of MIT, mit_category tells what kind of MIT is being processed. In the case of CIT, it tells the future intended MIT type.
Billing Descriptor information to be sent to the payment gateway
tokenizationThe type of tokenization to use for the payment method
Information identifying partner and merchant application initiating the request
Installment payment options grouped by payment method. When provided, the payment is treated as an installment payment.
Installment selection sent by the customer during payment confirmation.
statement_descriptor_nameFor non-card charges, you can use this value as the complete description that appears on your customers’ statements. Must contain at least one letter, maximum 22 characters. To be deprecated soon, use billing_descriptor instead.
statement_descriptor_suffixProvides information about a card payment that customers see on their statements. Concatenated with the prefix (shortened descriptor) or statement descriptor that’s set on the account to form the complete statement descriptor. Maximum 22 characters for the concatenated descriptor. To be deprecated soon, use billing_descriptor instead.
Payments - Update › Responses
Payment updated
payment_idUnique identifier for the payment. This ensures idempotency for multiple payments that have been done by a single merchant.
merchant_idThis is an identifier for the merchant account. This is inferred from the API key provided during the request
statusRepresents the overall status of a payment intent. The status transitions through various states depending on the payment method, confirmation, capture method, and any subsequent actions (like customer authentication or manual capture).
amountThe payment amount. Amount for the payment in lowest denomination of the currency. (i.e) in cents for USD denomination, in paisa for INR denomination etc.,
net_amountThe payment net amount. net_amount = amount + surcharge_details.surcharge_amount + surcharge_details.tax_amount + shipping_cost + order_tax_amount, If no surcharge_details, shipping_cost, order_tax_amount, net_amount = amount
amount_capturableThe amount (in minor units) that can still be captured for this payment. This is relevant when capture_method is manual. Once fully captured, or if capture_method is automatic and payment succeeded, this will be 0.
processor_merchant_idThe identifier for the processor merchant account. In platform-connected setups, this is the connected merchant ID. For standard merchants, this is same as merchant_id.
currencyThe three-letter ISO 4217 currency code (e.g., "USD", "EUR") for the payment amount. This field is mandatory for creating a payment.
payment_methodIndicates the type of payment method. Eg: 'card', 'wallet', etc.
attempt_countTotal number of attempts associated with this payment
shipping_costThe shipping cost for the payment.
amount_receivedThe total amount (in minor units) that has been captured for this payment. For fauxpay sandbox connector, this might reflect the authorized amount if status is succeeded even if capture_method was manual.
initiatorRepresents the initiator context in platform-connected setups Used in payment/refund/dispute responses to indicate who initiated the operation None indicates a standard merchant flow / JWT flow / Admin flow or insufficient information
sdk_authorizationToken containing encoded information for sdk authorization.
connectorThe name of the payment connector (e.g., 'stripe', 'adyen') that processed or is processing this payment.
Additional metadata for payment intent state containing refunded and disputed amounts
client_secretA secret token unique to this payment intent. It is primarily used by client-side applications (e.g., Hyperswitch SDKs) to authenticate actions like confirming the payment or handling next actions. This secret should be handled carefully and not exposed publicly beyond its intended client-side use.
createdTimestamp indicating when this payment intent was created, in ISO 8601 format.
modified_atTimestamp indicating when this payment intent was last modified, in ISO 8601 format.
descriptionAn arbitrary string providing a description for the payment, often useful for display or internal record-keeping.
An array of refund objects associated with this payment. Empty or null if no refunds have been processed.
List of disputes that happened on this intent
List of attempts that happened on this intent
List of captures done on latest attempt
mandate_idA unique identifier to link the payment to a mandate, can be used instead of payment_method_data, in case of setting up recurring payments
Passing this object during payments creates a mandate. The mandate_type sub object is passed by the server.
setup_future_usageSpecifies how the payment method can be used for future payments.
off_session: The payment method can be used for future payments when the customer is not present.on_session: The payment method is intended for use only when the customer is present during checkout. If omitted, defaults toon_session.
off_sessionSet to true to indicate that the customer is not in your checkout flow during this payment, and therefore is unable to authenticate. This parameter is intended for scenarios where you collect card details and charge them later. This parameter can only be used with confirm=true.
capture_methodSpecifies how the payment is captured.
automatic: Funds are captured immediately after successful authorization. This is the default behavior if the field is omitted.manual: Funds are authorized but not captured. A separate request to the/payments/{payment_id}/captureendpoint is required to capture the funds.
payment_tokenProvide a reference to a stored payment method
Information about the product , quantity and amount for connectors. (e.g. Klarna)
return_urlThe URL to redirect after the completion of the operation
authentication_typeSpecifies the type of cardholder authentication to be applied for a payment.
ThreeDs: Requests 3D Secure (3DS) authentication. If the card is enrolled, 3DS authentication will be activated, potentially shifting chargeback liability to the issuer.NoThreeDs: Indicates that 3D Secure authentication should not be performed. The liability for chargebacks typically remains with the merchant. This is often the default if not specified.
Note: The actual authentication behavior can also be influenced by merchant configuration and specific connector defaults. Some connectors might still enforce 3DS or bypass it regardless of this parameter.
statement_descriptor_nameFor non-card charges, you can use this value as the complete description that appears on your customers’ statements. Must contain at least one letter, maximum 22 characters.
statement_descriptor_suffixProvides information about a card payment that customers see on their statements. Concatenated with the prefix (shortened descriptor) or statement descriptor that’s set on the account to form the complete statement descriptor. Maximum 255 characters for the concatenated descriptor.
cancellation_reasonIf the payment intent was cancelled, this field provides a textual reason for the cancellation (e.g., "requested_by_customer", "abandoned").
error_codeThe connector-specific error code from the last failed payment attempt associated with this payment intent.
error_messageA human-readable error message from the last failed payment attempt associated with this payment intent.
Complete error details for V1 PaymentsResponse containing unified, issuer, and connector-level error information.
payment_experienceTo indicate the type of payment experience that the customer would go through
payment_method_typeIndicates the sub type of payment method. Eg: 'google_pay' & 'apple_pay' for wallets.
connector_labelA label identifying the specific merchant connector account (MCA) used for this payment. This often combines the connector name, business country, and a custom label (e.g., "stripe_US_primary").
business_countrybusiness_labelThe label identifying the specific business unit or profile under which this payment was processed by the merchant.
business_sub_labelAn optional sub-label for further categorization of the business unit or profile used for this payment.
allowed_payment_method_typesAllowed Payment Method Types for a given PaymentIntent
manual_retry_allowedIf true the payment can be retried with same or different payment method which means the confirm call can be made again.
connector_transaction_idA unique identifier for a payment provided by the connector
frm message is an object sent inside the payments response...when frm is invoked, its value is Some(...), else its None
metadataYou can specify up to 50 keys, with key names up to 40 characters long and values up to 500 characters long. Metadata is useful for storing additional, structured information on an object.
Some connectors like Apple Pay, Airwallex and Noon might require some additional information, find specific details in the child attributes below.
additional data that might be required by hyperswitch
reference_idreference(Identifier) to the payment at connector side
profile_idThe business profile that is associated with this payment
Details of surcharge applied on this payment, if applicable
merchant_decisionDenotes the action(approve or reject) taken by merchant in case of manual review. Manual review can occur when the transaction is marked as risky by the frm_processor, payment processor or when there is underpayment/over payment incase of crypto payment
merchant_connector_idIdentifier of the connector ( merchant connector account ) which was chosen to make the payment
incremental_authorization_allowedIf true, incremental authorization can be performed on this payment, in case the funds authorized initially fall short.
authorization_countTotal number of authorizations happened in an incremental_authorization payment
List of incremental authorizations happened to the payment
Details of external authentication
external_3ds_authentication_attemptedFlag indicating if external 3ds authentication is made or not
expires_onDate Time for expiry of the payment
fingerprintPayment Fingerprint, to identify a particular card. It is a 20 character long alphanumeric code.
Browser information to be used for 3DS 2.0
Describes the channel through which the payment was initiated.
payment_method_idA unique identifier for the payment method used in this payment. If the payment method was saved or tokenized, this ID can be used to reference it for future transactions or recurring payments.
Refer payment_method_tokenization_details for detailed view of payment method tokenization
network_transaction_idThe network transaction ID is a unique identifier for the transaction as recognized by the payment network (e.g., Visa, Mastercard), this ID can be used to reference it for future transactions or recurring payments.
Refer payment_method_tokenization_details for detailed view of payment method tokenization
payment_method_statusPayment Method Status
updatedDate time at which payment was updated
Charge Information
frm_metadataYou can specify up to 50 keys, with key names up to 40 characters long and values up to 500 characters long. FRM Metadata is useful for storing additional, structured information on an object related to FRM.
extended_authorization_appliedflag that indicates if extended authorization is applied on this payment or not
extended_authorization_last_applied_atdate and time at which extended authorization was last applied on this payment
request_extended_authorizationOptional boolean value to extent authorization period of this payment
capture method must be manual or manual_multiple
capture_beforedate and time after which this payment cannot be captured
merchant_order_reference_idMerchant's identifier for the payment/invoice. This will be sent to the connector if the connector provides support to accept multiple reference ids. In case the connector supports only one reference id, Hyperswitch's Payment ID will be sent as reference.
order_tax_amountThis Unit struct represents MinorUnit in which core amount works
connector_mandate_idConnector Identifier for the payment method
card_discoveryIndicates the method by which a card is discovered during a payment
force_3ds_challengeIndicates if 3ds challenge is forced
force_3ds_challenge_triggerIndicates if 3ds challenge is triggered
issuer_error_codeError code received from the issuer in case of failed payments
issuer_error_messageError message received from the issuer in case of failed payments
is_iframe_redirection_enabledIndicates if the redirection has to open in the iframe
whole_connector_responseContains whole connector response
enable_partial_authorizationAllow partial authorization for this payment
enable_overcaptureBool indicating if overcapture must be requested for this payment
is_overcapture_enabledBoolean indicating whether overcapture is effectively enabled for this payment
is_stored_credentialBoolean flag indicating whether this payment method is stored and has been previously used for payments
mit_categorySpecifies the category of a Merchant Initiated Transaction (MIT). In the case of MIT, mit_category tells what kind of MIT is being processed. In the case of CIT, it tells the future intended MIT type.
Billing Descriptor information to be sent to the payment gateway
tokenizationThe type of tokenization to use for the payment method
Information identifying partner and merchant application initiating the request
Installment payment options associated with this payment, grouped by payment method
Installment selection made by the customer during payment confirmation.
Statistics for a customer within a single profile
The authorized fee snapshot aggregated across a payment's capture rows.
None on the containing response means that no merchant commission
snapshot exists. A calculated zero remains Some(0).
customer_idThe identifier for the customer object. If not provided the customer ID will be autogenerated.
This field will be deprecated soon. Please refer to customer.id
emaildescription: The customer's email address
This field will be deprecated soon. Please refer to customer.email object
namedescription: The customer's name
This field will be deprecated soon. Please refer to customer.name object
phoneThe customer's phone number
This field will be deprecated soon. Please refer to customer.phone object
Payments - Confirm
Confirms a payment intent that was previously created with confirm: false. This action attempts to authorize the payment with the payment processor.
Expected status transitions after confirmation:
succeeded: If authorization is successful andcapture_methodisautomatic.requires_capture: If authorization is successful andcapture_methodismanual.failed: If authorization fails.
path Parameters
payment_idThe identifier for payment
Payments - Confirm › Request Body
amountThe primary amount for the payment, provided in the lowest denomination of the specified currency (e.g., 6540 for $65.40 USD). This field is mandatory for creating a payment.
order_tax_amountTotal tax amount applicable to the order, in the lowest denomination of the currency.
currencyThe three-letter ISO 4217 currency code (e.g., "USD", "EUR") for the payment amount. This field is mandatory for creating a payment.
amount_to_captureThe amount to be captured from the user's payment method, in the lowest denomination. If not provided, and capture_method is automatic, the full payment amount will be captured. If capture_method is manual, this can be specified in the /capture call. Must be less than or equal to the authorized amount.
shipping_costThe shipping cost for the payment. This is required for tax calculation in some regions.
payment_idOptional. A merchant-provided unique identifier for the payment, contains 30 characters long (e.g., "pay_mbabizu24mvu3mela5njyhpit4"). If provided, it ensures idempotency for the payment creation request. If omitted, Hyperswitch generates a unique ID for the payment.
connectorThis allows to manually select a connector with which the payment can go through.
capture_methodSpecifies how the payment is captured.
automatic: Funds are captured immediately after successful authorization. This is the default behavior if the field is omitted.manual: Funds are authorized but not captured. A separate request to the/payments/{payment_id}/captureendpoint is required to capture the funds.
authentication_typeSpecifies the type of cardholder authentication to be applied for a payment.
ThreeDs: Requests 3D Secure (3DS) authentication. If the card is enrolled, 3DS authentication will be activated, potentially shifting chargeback liability to the issuer.NoThreeDs: Indicates that 3D Secure authentication should not be performed. The liability for chargebacks typically remains with the merchant. This is often the default if not specified.
Note: The actual authentication behavior can also be influenced by merchant configuration and specific connector defaults. Some connectors might still enforce 3DS or bypass it regardless of this parameter.
confirmIf set to true, Hyperswitch attempts to confirm and authorize the payment immediately after creation, provided sufficient payment method details are included. If false or omitted (default is false), the payment is created with a status such as requires_payment_method or requires_confirmation, and a separate POST /payments/{payment_id}/confirm call is necessary to proceed with authorization.
Passing this object creates a new customer or attaches an existing customer to the payment
customer_idThe identifier for the customer
Merchant-provided customer statistics for advanced routing. All fields are optional.
off_sessionSet to true to indicate that the customer is not in your checkout flow during this payment, and therefore is unable to authenticate. This parameter is intended for scenarios where you collect card details and charge them later. When making a recurring payment by passing a mandate_id, this parameter is mandatory
descriptionAn arbitrary string attached to the payment. Often useful for displaying to users or for your own internal record-keeping.
return_urlThe URL to redirect the customer to after they complete the payment process or authentication. This is crucial for flows that involve off-site redirection (e.g., 3DS, some bank redirects, wallet payments).
setup_future_usageSpecifies how the payment method can be used for future payments.
off_session: The payment method can be used for future payments when the customer is not present.on_session: The payment method is intended for use only when the customer is present during checkout. If omitted, defaults toon_session.
The payment method information provided for making a payment
payment_methodIndicates the type of payment method. Eg: 'card', 'wallet', etc.
payment_tokenAs Hyperswitch tokenises the sensitive details about the payments method, it provides the payment_token as a reference to a stored payment method, ensuring that the sensitive details are not exposed in any manner.
Use this object to capture the details about the different products for which the payment is being made. The sum of amount across different products here should be equal to the overall payment amount
client_secretIt's a token used for client side verification.
Passing this object during payments creates a mandate. The mandate_type sub object is passed by the server.
This "CustomerAcceptance" object is passed during Payments-Confirm request, it enlists the type, time, and mode of acceptance properties related to an acceptance done by the customer. The customer_acceptance sub object is usually passed by the SDK or client.
mandate_idA unique identifier to link the payment to a mandate. To do Recurring payments after a mandate has been created, pass the mandate_id instead of payment_method_data
Browser information to be used for 3DS 2.0
payment_experienceTo indicate the type of payment experience that the customer would go through
payment_method_typeIndicates the sub type of payment method. Eg: 'google_pay' & 'apple_pay' for wallets.
Merchant connector details used to make payments.
allowed_payment_method_typesUse this parameter to restrict the Payment Method Types to show for a given PaymentIntent
retry_actionDenotes the retry action
metadataYou can specify up to 50 keys, with key names up to 40 characters long and values up to 500 characters long. Metadata is useful for storing additional, structured information on an object.
Some connectors like Apple Pay, Airwallex and Noon might require some additional information, find specific details in the child attributes below.
payment_linkWhether to generate the payment link for this payment or not (if applicable)
Configure a custom payment link for the particular payment
payment_link_config_idCustom payment link config id set at business profile, send only if business_specific_configs is configured
payment_typeThe type of the payment that differentiates between normal and various types of mandate payments. Use 'setup_mandate' in case of zero auth flow.
request_incremental_authorizationRequest an incremental authorization, i.e., increase the authorized amount on a confirmed payment before you capture it.
session_expiryWill be used to expire client secret after certain amount of time to be supplied in seconds (900) for 15 mins
frm_metadataAdditional data related to some frm(Fraud Risk Management) connectors
request_external_three_ds_authenticationWhether to perform external authentication (if applicable)
Represents external 3DS authentication data used in the payment flow.
Details required for recurring payment
Fee information for Split Payments to be charged on the payment being collected
request_extended_authorizationOptional boolean value to extent authorization period of this payment
capture method must be manual or manual_multiple
merchant_order_reference_idYour unique identifier for this payment or order. This ID helps you reconcile payments on your system. If provided, it is passed to the connector if supported.
skip_external_tax_calculationWhether to calculate tax for this payment intent
psd2_sca_exemption_typeSCA Exemptions types available for authentication
force_3ds_challengeIndicates if 3ds challenge is forced
threeds_method_comp_indIndicates if 3DS method data was successfully completed or not
is_iframe_redirection_enabledIndicates if the redirection has to open in the iframe
all_keys_requiredIf enabled, provides whole connector response
Describes the channel through which the payment was initiated.
tax_statusdiscount_amountTotal amount of the discount you have applied to the order or transaction.
shipping_amount_taxThis Unit struct represents MinorUnit in which core amount works
duty_amountThis Unit struct represents MinorUnit in which core amount works
order_dateDate the payer placed the order.
enable_partial_authorizationAllow partial authorization for this payment
is_stored_credentialBoolean flag indicating whether this payment method is stored and has been previously used for payments
mit_categorySpecifies the category of a Merchant Initiated Transaction (MIT). In the case of MIT, mit_category tells what kind of MIT is being processed. In the case of CIT, it tells the future intended MIT type.
Billing Descriptor information to be sent to the payment gateway
tokenizationThe type of tokenization to use for the payment method
Information identifying partner and merchant application initiating the request
Installment payment options grouped by payment method. When provided, the payment is treated as an installment payment.
Installment selection sent by the customer during payment confirmation.
statement_descriptor_nameFor non-card charges, you can use this value as the complete description that appears on your customers’ statements. Must contain at least one letter, maximum 22 characters. To be deprecated soon, use billing_descriptor instead.
statement_descriptor_suffixProvides information about a card payment that customers see on their statements. Concatenated with the prefix (shortened descriptor) or statement descriptor that’s set on the account to form the complete statement descriptor. Maximum 22 characters for the concatenated descriptor. To be deprecated soon, use billing_descriptor instead.
Payments - Confirm › Responses
Payment confirmed
payment_idUnique identifier for the payment. This ensures idempotency for multiple payments that have been done by a single merchant.
merchant_idThis is an identifier for the merchant account. This is inferred from the API key provided during the request
statusRepresents the overall status of a payment intent. The status transitions through various states depending on the payment method, confirmation, capture method, and any subsequent actions (like customer authentication or manual capture).
amountThe payment amount. Amount for the payment in lowest denomination of the currency. (i.e) in cents for USD denomination, in paisa for INR denomination etc.,
net_amountThe payment net amount. net_amount = amount + surcharge_details.surcharge_amount + surcharge_details.tax_amount + shipping_cost + order_tax_amount, If no surcharge_details, shipping_cost, order_tax_amount, net_amount = amount
amount_capturableThe amount (in minor units) that can still be captured for this payment. This is relevant when capture_method is manual. Once fully captured, or if capture_method is automatic and payment succeeded, this will be 0.
processor_merchant_idThe identifier for the processor merchant account. In platform-connected setups, this is the connected merchant ID. For standard merchants, this is same as merchant_id.
currencyThe three-letter ISO 4217 currency code (e.g., "USD", "EUR") for the payment amount. This field is mandatory for creating a payment.
payment_methodIndicates the type of payment method. Eg: 'card', 'wallet', etc.
attempt_countTotal number of attempts associated with this payment
shipping_costThe shipping cost for the payment.
amount_receivedThe total amount (in minor units) that has been captured for this payment. For fauxpay sandbox connector, this might reflect the authorized amount if status is succeeded even if capture_method was manual.
initiatorRepresents the initiator context in platform-connected setups Used in payment/refund/dispute responses to indicate who initiated the operation None indicates a standard merchant flow / JWT flow / Admin flow or insufficient information
sdk_authorizationToken containing encoded information for sdk authorization.
connectorThe name of the payment connector (e.g., 'stripe', 'adyen') that processed or is processing this payment.
Additional metadata for payment intent state containing refunded and disputed amounts
client_secretA secret token unique to this payment intent. It is primarily used by client-side applications (e.g., Hyperswitch SDKs) to authenticate actions like confirming the payment or handling next actions. This secret should be handled carefully and not exposed publicly beyond its intended client-side use.
createdTimestamp indicating when this payment intent was created, in ISO 8601 format.
modified_atTimestamp indicating when this payment intent was last modified, in ISO 8601 format.
descriptionAn arbitrary string providing a description for the payment, often useful for display or internal record-keeping.
An array of refund objects associated with this payment. Empty or null if no refunds have been processed.
List of disputes that happened on this intent
List of attempts that happened on this intent
List of captures done on latest attempt
mandate_idA unique identifier to link the payment to a mandate, can be used instead of payment_method_data, in case of setting up recurring payments
Passing this object during payments creates a mandate. The mandate_type sub object is passed by the server.
setup_future_usageSpecifies how the payment method can be used for future payments.
off_session: The payment method can be used for future payments when the customer is not present.on_session: The payment method is intended for use only when the customer is present during checkout. If omitted, defaults toon_session.
off_sessionSet to true to indicate that the customer is not in your checkout flow during this payment, and therefore is unable to authenticate. This parameter is intended for scenarios where you collect card details and charge them later. This parameter can only be used with confirm=true.
capture_methodSpecifies how the payment is captured.
automatic: Funds are captured immediately after successful authorization. This is the default behavior if the field is omitted.manual: Funds are authorized but not captured. A separate request to the/payments/{payment_id}/captureendpoint is required to capture the funds.
payment_tokenProvide a reference to a stored payment method
Information about the product , quantity and amount for connectors. (e.g. Klarna)
return_urlThe URL to redirect after the completion of the operation
authentication_typeSpecifies the type of cardholder authentication to be applied for a payment.
ThreeDs: Requests 3D Secure (3DS) authentication. If the card is enrolled, 3DS authentication will be activated, potentially shifting chargeback liability to the issuer.NoThreeDs: Indicates that 3D Secure authentication should not be performed. The liability for chargebacks typically remains with the merchant. This is often the default if not specified.
Note: The actual authentication behavior can also be influenced by merchant configuration and specific connector defaults. Some connectors might still enforce 3DS or bypass it regardless of this parameter.
statement_descriptor_nameFor non-card charges, you can use this value as the complete description that appears on your customers’ statements. Must contain at least one letter, maximum 22 characters.
statement_descriptor_suffixProvides information about a card payment that customers see on their statements. Concatenated with the prefix (shortened descriptor) or statement descriptor that’s set on the account to form the complete statement descriptor. Maximum 255 characters for the concatenated descriptor.
cancellation_reasonIf the payment intent was cancelled, this field provides a textual reason for the cancellation (e.g., "requested_by_customer", "abandoned").
error_codeThe connector-specific error code from the last failed payment attempt associated with this payment intent.
error_messageA human-readable error message from the last failed payment attempt associated with this payment intent.
Complete error details for V1 PaymentsResponse containing unified, issuer, and connector-level error information.
payment_experienceTo indicate the type of payment experience that the customer would go through
payment_method_typeIndicates the sub type of payment method. Eg: 'google_pay' & 'apple_pay' for wallets.
connector_labelA label identifying the specific merchant connector account (MCA) used for this payment. This often combines the connector name, business country, and a custom label (e.g., "stripe_US_primary").
business_countrybusiness_labelThe label identifying the specific business unit or profile under which this payment was processed by the merchant.
business_sub_labelAn optional sub-label for further categorization of the business unit or profile used for this payment.
allowed_payment_method_typesAllowed Payment Method Types for a given PaymentIntent
manual_retry_allowedIf true the payment can be retried with same or different payment method which means the confirm call can be made again.
connector_transaction_idA unique identifier for a payment provided by the connector
frm message is an object sent inside the payments response...when frm is invoked, its value is Some(...), else its None
metadataYou can specify up to 50 keys, with key names up to 40 characters long and values up to 500 characters long. Metadata is useful for storing additional, structured information on an object.
Some connectors like Apple Pay, Airwallex and Noon might require some additional information, find specific details in the child attributes below.
additional data that might be required by hyperswitch
reference_idreference(Identifier) to the payment at connector side
profile_idThe business profile that is associated with this payment
Details of surcharge applied on this payment, if applicable
merchant_decisionDenotes the action(approve or reject) taken by merchant in case of manual review. Manual review can occur when the transaction is marked as risky by the frm_processor, payment processor or when there is underpayment/over payment incase of crypto payment
merchant_connector_idIdentifier of the connector ( merchant connector account ) which was chosen to make the payment
incremental_authorization_allowedIf true, incremental authorization can be performed on this payment, in case the funds authorized initially fall short.
authorization_countTotal number of authorizations happened in an incremental_authorization payment
List of incremental authorizations happened to the payment
Details of external authentication
external_3ds_authentication_attemptedFlag indicating if external 3ds authentication is made or not
expires_onDate Time for expiry of the payment
fingerprintPayment Fingerprint, to identify a particular card. It is a 20 character long alphanumeric code.
Browser information to be used for 3DS 2.0
Describes the channel through which the payment was initiated.
payment_method_idA unique identifier for the payment method used in this payment. If the payment method was saved or tokenized, this ID can be used to reference it for future transactions or recurring payments.
Refer payment_method_tokenization_details for detailed view of payment method tokenization
network_transaction_idThe network transaction ID is a unique identifier for the transaction as recognized by the payment network (e.g., Visa, Mastercard), this ID can be used to reference it for future transactions or recurring payments.
Refer payment_method_tokenization_details for detailed view of payment method tokenization
payment_method_statusPayment Method Status
updatedDate time at which payment was updated
Charge Information
frm_metadataYou can specify up to 50 keys, with key names up to 40 characters long and values up to 500 characters long. FRM Metadata is useful for storing additional, structured information on an object related to FRM.
extended_authorization_appliedflag that indicates if extended authorization is applied on this payment or not
extended_authorization_last_applied_atdate and time at which extended authorization was last applied on this payment
request_extended_authorizationOptional boolean value to extent authorization period of this payment
capture method must be manual or manual_multiple
capture_beforedate and time after which this payment cannot be captured
merchant_order_reference_idMerchant's identifier for the payment/invoice. This will be sent to the connector if the connector provides support to accept multiple reference ids. In case the connector supports only one reference id, Hyperswitch's Payment ID will be sent as reference.
order_tax_amountThis Unit struct represents MinorUnit in which core amount works
connector_mandate_idConnector Identifier for the payment method
card_discoveryIndicates the method by which a card is discovered during a payment
force_3ds_challengeIndicates if 3ds challenge is forced
force_3ds_challenge_triggerIndicates if 3ds challenge is triggered
issuer_error_codeError code received from the issuer in case of failed payments
issuer_error_messageError message received from the issuer in case of failed payments
is_iframe_redirection_enabledIndicates if the redirection has to open in the iframe
whole_connector_responseContains whole connector response
enable_partial_authorizationAllow partial authorization for this payment
enable_overcaptureBool indicating if overcapture must be requested for this payment
is_overcapture_enabledBoolean indicating whether overcapture is effectively enabled for this payment
is_stored_credentialBoolean flag indicating whether this payment method is stored and has been previously used for payments
mit_categorySpecifies the category of a Merchant Initiated Transaction (MIT). In the case of MIT, mit_category tells what kind of MIT is being processed. In the case of CIT, it tells the future intended MIT type.
Billing Descriptor information to be sent to the payment gateway
tokenizationThe type of tokenization to use for the payment method
Information identifying partner and merchant application initiating the request
Installment payment options associated with this payment, grouped by payment method
Installment selection made by the customer during payment confirmation.
Statistics for a customer within a single profile
The authorized fee snapshot aggregated across a payment's capture rows.
None on the containing response means that no merchant commission
snapshot exists. A calculated zero remains Some(0).
customer_idThe identifier for the customer object. If not provided the customer ID will be autogenerated.
This field will be deprecated soon. Please refer to customer.id
emaildescription: The customer's email address
This field will be deprecated soon. Please refer to customer.email object
namedescription: The customer's name
This field will be deprecated soon. Please refer to customer.name object
phoneThe customer's phone number
This field will be deprecated soon. Please refer to customer.phone object
Payments — detailed read model (OLAP)
Returns an expanded payment record: intent, attempts, refunds, disputes, webhook history, etc.
path Parameters
payment_idThe identifier for payment
query Parameters
expand_customer_statisticsWhen true, includes customer statistics for the payment profile (OLAP)
Payments — detailed read model (OLAP) › Responses
Payment details
payment_idmerchant_idstatusRepresents the overall status of a payment intent. The status transitions through various states depending on the payment method, confirmation, capture method, and any subsequent actions (like customer authentication or manual capture).
amountnet_amountNet amount including surcharge and tax.
net_amount = amount + surcharge_amount + tax_on_surcharge + shipping_cost + order_tax_amount
amount_capturablecurrencyThree-letter ISO 4217 currency code.
The list is ordered by created_at ascending.
Webhook delivery records from the Postgres events table.
Each entry corresponds to one delivery attempt (including retries).
Records are grouped by initial_attempt_id.
A record of which top-level fields in [PaymentDetailedResponse] were
merchant-provided vs. platform-generated for this specific payment intent.
Keys are field names matching [PaymentDetailedResponse]'s serde names.
Any field absent from this map should be treated as GeneratedByPlatform.
shipping_costamount_receiveddescriptionMerchant-supplied description for this payment.
metadataMerchant-supplied metadata key/value pairs.
createdmodified_atDetails of customer attached to this payment
Statistics for a customer within a single profile
The authorized fee snapshot aggregated across a payment's capture rows.
None on the containing response means that no merchant commission
snapshot exists. A calculated zero remains Some(0).
Payments - Capture
Captures the funds for a previously authorized payment intent where capture_method was set to manual and the payment is in a requires_capture state.
Upon successful capture, the payment status usually transitions to succeeded.
The amount_to_capture can be specified in the request body; it must be less than or equal to the payment's amount_capturable. If omitted, the full capturable amount is captured.
A payment must be in a capturable state (e.g., requires_capture). Attempting to capture an already succeeded (and fully captured) payment or one in an invalid state will lead to an error.
path Parameters
payment_idThe identifier for payment
Payments - Capture › Request Body
merchant_idThe unique identifier for the merchant. This is usually inferred from the API key.
amount_to_captureThe amount to capture, in the lowest denomination of the currency. If omitted, the entire amount_capturable of the payment will be captured. Must be less than or equal to the current amount_capturable.
refund_uncaptured_amountDecider to refund the uncaptured amount. (Currently not fully supported or behavior may vary by connector).
statement_descriptor_suffixA dynamic suffix that appears on your customer's credit card statement. This is concatenated with the (shortened) descriptor prefix set on your account to form the complete statement descriptor. The combined length should not exceed connector-specific limits (typically 22 characters).
statement_descriptor_prefixAn optional prefix for the statement descriptor that appears on your customer's credit card statement. This can override the default prefix set on your merchant account. The combined length of prefix and suffix should not exceed connector-specific limits (typically 22 characters).
Merchant connector details used to make payments.
all_keys_requiredIf true, returns stringified connector raw response body
Payments - Capture › Responses
Payment captured
payment_idUnique identifier for the payment. This ensures idempotency for multiple payments that have been done by a single merchant.
merchant_idThis is an identifier for the merchant account. This is inferred from the API key provided during the request
statusRepresents the overall status of a payment intent. The status transitions through various states depending on the payment method, confirmation, capture method, and any subsequent actions (like customer authentication or manual capture).
amountThe payment amount. Amount for the payment in lowest denomination of the currency. (i.e) in cents for USD denomination, in paisa for INR denomination etc.,
net_amountThe payment net amount. net_amount = amount + surcharge_details.surcharge_amount + surcharge_details.tax_amount + shipping_cost + order_tax_amount, If no surcharge_details, shipping_cost, order_tax_amount, net_amount = amount
amount_capturableThe amount (in minor units) that can still be captured for this payment. This is relevant when capture_method is manual. Once fully captured, or if capture_method is automatic and payment succeeded, this will be 0.
processor_merchant_idThe identifier for the processor merchant account. In platform-connected setups, this is the connected merchant ID. For standard merchants, this is same as merchant_id.
currencyThe three-letter ISO 4217 currency code (e.g., "USD", "EUR") for the payment amount. This field is mandatory for creating a payment.
payment_methodIndicates the type of payment method. Eg: 'card', 'wallet', etc.
attempt_countTotal number of attempts associated with this payment
shipping_costThe shipping cost for the payment.
amount_receivedThe total amount (in minor units) that has been captured for this payment. For fauxpay sandbox connector, this might reflect the authorized amount if status is succeeded even if capture_method was manual.
initiatorRepresents the initiator context in platform-connected setups Used in payment/refund/dispute responses to indicate who initiated the operation None indicates a standard merchant flow / JWT flow / Admin flow or insufficient information
sdk_authorizationToken containing encoded information for sdk authorization.
connectorThe name of the payment connector (e.g., 'stripe', 'adyen') that processed or is processing this payment.
Additional metadata for payment intent state containing refunded and disputed amounts
client_secretA secret token unique to this payment intent. It is primarily used by client-side applications (e.g., Hyperswitch SDKs) to authenticate actions like confirming the payment or handling next actions. This secret should be handled carefully and not exposed publicly beyond its intended client-side use.
createdTimestamp indicating when this payment intent was created, in ISO 8601 format.
modified_atTimestamp indicating when this payment intent was last modified, in ISO 8601 format.
Details of customer attached to this payment
descriptionAn arbitrary string providing a description for the payment, often useful for display or internal record-keeping.
An array of refund objects associated with this payment. Empty or null if no refunds have been processed.
List of disputes that happened on this intent
List of attempts that happened on this intent
List of captures done on latest attempt
mandate_idA unique identifier to link the payment to a mandate, can be used instead of payment_method_data, in case of setting up recurring payments
Passing this object during payments creates a mandate. The mandate_type sub object is passed by the server.
setup_future_usageSpecifies how the payment method can be used for future payments.
off_session: The payment method can be used for future payments when the customer is not present.on_session: The payment method is intended for use only when the customer is present during checkout. If omitted, defaults toon_session.
off_sessionSet to true to indicate that the customer is not in your checkout flow during this payment, and therefore is unable to authenticate. This parameter is intended for scenarios where you collect card details and charge them later. This parameter can only be used with confirm=true.
capture_onA timestamp (ISO 8601 code) that determines when the payment should be captured.
Providing this field will automatically set capture to true
capture_methodSpecifies how the payment is captured.
automatic: Funds are captured immediately after successful authorization. This is the default behavior if the field is omitted.manual: Funds are authorized but not captured. A separate request to the/payments/{payment_id}/captureendpoint is required to capture the funds.
payment_tokenProvide a reference to a stored payment method
Information about the product , quantity and amount for connectors. (e.g. Klarna)
return_urlThe URL to redirect after the completion of the operation
authentication_typeSpecifies the type of cardholder authentication to be applied for a payment.
ThreeDs: Requests 3D Secure (3DS) authentication. If the card is enrolled, 3DS authentication will be activated, potentially shifting chargeback liability to the issuer.NoThreeDs: Indicates that 3D Secure authentication should not be performed. The liability for chargebacks typically remains with the merchant. This is often the default if not specified.
Note: The actual authentication behavior can also be influenced by merchant configuration and specific connector defaults. Some connectors might still enforce 3DS or bypass it regardless of this parameter.
statement_descriptor_nameFor non-card charges, you can use this value as the complete description that appears on your customers’ statements. Must contain at least one letter, maximum 22 characters.
statement_descriptor_suffixProvides information about a card payment that customers see on their statements. Concatenated with the prefix (shortened descriptor) or statement descriptor that’s set on the account to form the complete statement descriptor. Maximum 255 characters for the concatenated descriptor.
cancellation_reasonIf the payment intent was cancelled, this field provides a textual reason for the cancellation (e.g., "requested_by_customer", "abandoned").
error_codeThe connector-specific error code from the last failed payment attempt associated with this payment intent.
error_messageA human-readable error message from the last failed payment attempt associated with this payment intent.
unified_codeerror code unified across the connectors is received here if there was an error while calling connector
unified_messageerror message unified across the connectors is received here if there was an error while calling connector
Complete error details for V1 PaymentsResponse containing unified, issuer, and connector-level error information.
payment_experienceTo indicate the type of payment experience that the customer would go through
payment_method_typeIndicates the sub type of payment method. Eg: 'google_pay' & 'apple_pay' for wallets.
connector_labelA label identifying the specific merchant connector account (MCA) used for this payment. This often combines the connector name, business country, and a custom label (e.g., "stripe_US_primary").
business_countrybusiness_labelThe label identifying the specific business unit or profile under which this payment was processed by the merchant.
business_sub_labelAn optional sub-label for further categorization of the business unit or profile used for this payment.
allowed_payment_method_typesAllowed Payment Method Types for a given PaymentIntent
manual_retry_allowedIf true the payment can be retried with same or different payment method which means the confirm call can be made again.
connector_transaction_idA unique identifier for a payment provided by the connector
frm message is an object sent inside the payments response...when frm is invoked, its value is Some(...), else its None
metadataYou can specify up to 50 keys, with key names up to 40 characters long and values up to 500 characters long. Metadata is useful for storing additional, structured information on an object.
Some connectors like Apple Pay, Airwallex and Noon might require some additional information, find specific details in the child attributes below.
additional data that might be required by hyperswitch
reference_idreference(Identifier) to the payment at connector side
profile_idThe business profile that is associated with this payment
Details of surcharge applied on this payment, if applicable
merchant_decisionDenotes the action(approve or reject) taken by merchant in case of manual review. Manual review can occur when the transaction is marked as risky by the frm_processor, payment processor or when there is underpayment/over payment incase of crypto payment
merchant_connector_idIdentifier of the connector ( merchant connector account ) which was chosen to make the payment
incremental_authorization_allowedIf true, incremental authorization can be performed on this payment, in case the funds authorized initially fall short.
authorization_countTotal number of authorizations happened in an incremental_authorization payment
List of incremental authorizations happened to the payment
Details of external authentication
external_3ds_authentication_attemptedFlag indicating if external 3ds authentication is made or not
expires_onDate Time for expiry of the payment
fingerprintPayment Fingerprint, to identify a particular card. It is a 20 character long alphanumeric code.
Browser information to be used for 3DS 2.0
Describes the channel through which the payment was initiated.
payment_method_idA unique identifier for the payment method used in this payment. If the payment method was saved or tokenized, this ID can be used to reference it for future transactions or recurring payments.
Refer payment_method_tokenization_details for detailed view of payment method tokenization
network_transaction_idThe network transaction ID is a unique identifier for the transaction as recognized by the payment network (e.g., Visa, Mastercard), this ID can be used to reference it for future transactions or recurring payments.
Refer payment_method_tokenization_details for detailed view of payment method tokenization
payment_method_statusPayment Method Status
updatedDate time at which payment was updated
Charge Information
frm_metadataYou can specify up to 50 keys, with key names up to 40 characters long and values up to 500 characters long. FRM Metadata is useful for storing additional, structured information on an object related to FRM.
extended_authorization_appliedflag that indicates if extended authorization is applied on this payment or not
extended_authorization_last_applied_atdate and time at which extended authorization was last applied on this payment
request_extended_authorizationOptional boolean value to extent authorization period of this payment
capture method must be manual or manual_multiple
capture_beforedate and time after which this payment cannot be captured
merchant_order_reference_idMerchant's identifier for the payment/invoice. This will be sent to the connector if the connector provides support to accept multiple reference ids. In case the connector supports only one reference id, Hyperswitch's Payment ID will be sent as reference.
order_tax_amountThis Unit struct represents MinorUnit in which core amount works
connector_mandate_idConnector Identifier for the payment method
card_discoveryIndicates the method by which a card is discovered during a payment
force_3ds_challengeIndicates if 3ds challenge is forced
force_3ds_challenge_triggerIndicates if 3ds challenge is triggered
issuer_error_codeError code received from the issuer in case of failed payments
issuer_error_messageError message received from the issuer in case of failed payments
is_iframe_redirection_enabledIndicates if the redirection has to open in the iframe
whole_connector_responseContains whole connector response
enable_partial_authorizationAllow partial authorization for this payment
enable_overcaptureBool indicating if overcapture must be requested for this payment
is_overcapture_enabledBoolean indicating whether overcapture is effectively enabled for this payment
is_stored_credentialBoolean flag indicating whether this payment method is stored and has been previously used for payments
mit_categorySpecifies the category of a Merchant Initiated Transaction (MIT). In the case of MIT, mit_category tells what kind of MIT is being processed. In the case of CIT, it tells the future intended MIT type.
Billing Descriptor information to be sent to the payment gateway
tokenizationThe type of tokenization to use for the payment method
Information identifying partner and merchant application initiating the request
Installment payment options associated with this payment, grouped by payment method
Installment selection made by the customer during payment confirmation.
Statistics for a customer within a single profile
The authorized fee snapshot aggregated across a payment's capture rows.
None on the containing response means that no merchant commission
snapshot exists. A calculated zero remains Some(0).
customer_idThe identifier for the customer object. If not provided the customer ID will be autogenerated.
This field will be deprecated soon. Please refer to customer.id
emaildescription: The customer's email address
This field will be deprecated soon. Please refer to customer.email object
namedescription: The customer's name
This field will be deprecated soon. Please refer to customer.name object
phoneThe customer's phone number
This field will be deprecated soon. Please refer to customer.phone object
Payments - Session token
Creates a session object or a session token for wallets like Apple Pay, Google Pay, etc. These tokens are used by Hyperswitch's SDK to initiate these wallets' SDK.
Payments - Session token › Request Body
payment_idThe identifier for the payment
walletsThe list of the supported wallets
client_secretThis is a token which expires after 15 minutes, used from the client to authenticate and create sessions from the SDK
Merchant connector details used to make payments.
Payments - Session token › Responses
Payment session object created or session token was retrieved from wallets
payment_idThe identifier for the payment
client_secretThis is a token which expires after 15 minutes, used from the client to authenticate and create sessions from the SDK
The list of session token object
Payments - Cancel
A Payment could can be cancelled when it is in one of these statuses: requires_payment_method, requires_capture, requires_confirmation, requires_customer_action.
path Parameters
payment_idThe identifier for payment
Payments - Cancel › Request Body
cancellation_reasonThe reason for the payment cancel
Merchant connector details used to make payments.
all_keys_requiredIf enabled, provides whole connector response
Payments - Cancel › Responses
Payment canceled
Payments - Cancel Post Capture
A Payment could can be cancelled when it is in one of these statuses: succeeded, partially_captured, partially_captured_and_capturable.
path Parameters
payment_idThe identifier for payment
Payments - Cancel Post Capture › Request Body
cancellation_reasonThe reason for the payment cancel
Payments - Cancel Post Capture › Responses
Payment canceled post capture
payment_idUnique identifier for the payment. This ensures idempotency for multiple payments that have been done by a single merchant.
merchant_idThis is an identifier for the merchant account. This is inferred from the API key provided during the request
statusRepresents the overall status of a payment intent. The status transitions through various states depending on the payment method, confirmation, capture method, and any subsequent actions (like customer authentication or manual capture).
amountThe payment amount. Amount for the payment in lowest denomination of the currency. (i.e) in cents for USD denomination, in paisa for INR denomination etc.,
net_amountThe payment net amount. net_amount = amount + surcharge_details.surcharge_amount + surcharge_details.tax_amount + shipping_cost + order_tax_amount, If no surcharge_details, shipping_cost, order_tax_amount, net_amount = amount
amount_capturableThe amount (in minor units) that can still be captured for this payment. This is relevant when capture_method is manual. Once fully captured, or if capture_method is automatic and payment succeeded, this will be 0.
processor_merchant_idThe identifier for the processor merchant account. In platform-connected setups, this is the connected merchant ID. For standard merchants, this is same as merchant_id.
currencyThe three-letter ISO 4217 currency code (e.g., "USD", "EUR") for the payment amount. This field is mandatory for creating a payment.
payment_methodIndicates the type of payment method. Eg: 'card', 'wallet', etc.
attempt_countTotal number of attempts associated with this payment
shipping_costThe shipping cost for the payment.
amount_receivedThe total amount (in minor units) that has been captured for this payment. For fauxpay sandbox connector, this might reflect the authorized amount if status is succeeded even if capture_method was manual.
initiatorRepresents the initiator context in platform-connected setups Used in payment/refund/dispute responses to indicate who initiated the operation None indicates a standard merchant flow / JWT flow / Admin flow or insufficient information
sdk_authorizationToken containing encoded information for sdk authorization.
connectorThe name of the payment connector (e.g., 'stripe', 'adyen') that processed or is processing this payment.
Additional metadata for payment intent state containing refunded and disputed amounts
client_secretA secret token unique to this payment intent. It is primarily used by client-side applications (e.g., Hyperswitch SDKs) to authenticate actions like confirming the payment or handling next actions. This secret should be handled carefully and not exposed publicly beyond its intended client-side use.
createdTimestamp indicating when this payment intent was created, in ISO 8601 format.
modified_atTimestamp indicating when this payment intent was last modified, in ISO 8601 format.
Details of customer attached to this payment
descriptionAn arbitrary string providing a description for the payment, often useful for display or internal record-keeping.
An array of refund objects associated with this payment. Empty or null if no refunds have been processed.
List of disputes that happened on this intent
List of attempts that happened on this intent
List of captures done on latest attempt
mandate_idA unique identifier to link the payment to a mandate, can be used instead of payment_method_data, in case of setting up recurring payments
Passing this object during payments creates a mandate. The mandate_type sub object is passed by the server.
setup_future_usageSpecifies how the payment method can be used for future payments.
off_session: The payment method can be used for future payments when the customer is not present.on_session: The payment method is intended for use only when the customer is present during checkout. If omitted, defaults toon_session.
off_sessionSet to true to indicate that the customer is not in your checkout flow during this payment, and therefore is unable to authenticate. This parameter is intended for scenarios where you collect card details and charge them later. This parameter can only be used with confirm=true.
capture_onA timestamp (ISO 8601 code) that determines when the payment should be captured.
Providing this field will automatically set capture to true
capture_methodSpecifies how the payment is captured.
automatic: Funds are captured immediately after successful authorization. This is the default behavior if the field is omitted.manual: Funds are authorized but not captured. A separate request to the/payments/{payment_id}/captureendpoint is required to capture the funds.
payment_tokenProvide a reference to a stored payment method
Information about the product , quantity and amount for connectors. (e.g. Klarna)
return_urlThe URL to redirect after the completion of the operation
authentication_typeSpecifies the type of cardholder authentication to be applied for a payment.
ThreeDs: Requests 3D Secure (3DS) authentication. If the card is enrolled, 3DS authentication will be activated, potentially shifting chargeback liability to the issuer.NoThreeDs: Indicates that 3D Secure authentication should not be performed. The liability for chargebacks typically remains with the merchant. This is often the default if not specified.
Note: The actual authentication behavior can also be influenced by merchant configuration and specific connector defaults. Some connectors might still enforce 3DS or bypass it regardless of this parameter.
statement_descriptor_nameFor non-card charges, you can use this value as the complete description that appears on your customers’ statements. Must contain at least one letter, maximum 22 characters.
statement_descriptor_suffixProvides information about a card payment that customers see on their statements. Concatenated with the prefix (shortened descriptor) or statement descriptor that’s set on the account to form the complete statement descriptor. Maximum 255 characters for the concatenated descriptor.
cancellation_reasonIf the payment intent was cancelled, this field provides a textual reason for the cancellation (e.g., "requested_by_customer", "abandoned").
error_codeThe connector-specific error code from the last failed payment attempt associated with this payment intent.
error_messageA human-readable error message from the last failed payment attempt associated with this payment intent.
unified_codeerror code unified across the connectors is received here if there was an error while calling connector
unified_messageerror message unified across the connectors is received here if there was an error while calling connector
Complete error details for V1 PaymentsResponse containing unified, issuer, and connector-level error information.
payment_experienceTo indicate the type of payment experience that the customer would go through
payment_method_typeIndicates the sub type of payment method. Eg: 'google_pay' & 'apple_pay' for wallets.
connector_labelA label identifying the specific merchant connector account (MCA) used for this payment. This often combines the connector name, business country, and a custom label (e.g., "stripe_US_primary").
business_countrybusiness_labelThe label identifying the specific business unit or profile under which this payment was processed by the merchant.
business_sub_labelAn optional sub-label for further categorization of the business unit or profile used for this payment.
allowed_payment_method_typesAllowed Payment Method Types for a given PaymentIntent
manual_retry_allowedIf true the payment can be retried with same or different payment method which means the confirm call can be made again.
connector_transaction_idA unique identifier for a payment provided by the connector
frm message is an object sent inside the payments response...when frm is invoked, its value is Some(...), else its None
metadataYou can specify up to 50 keys, with key names up to 40 characters long and values up to 500 characters long. Metadata is useful for storing additional, structured information on an object.
Some connectors like Apple Pay, Airwallex and Noon might require some additional information, find specific details in the child attributes below.
additional data that might be required by hyperswitch
reference_idreference(Identifier) to the payment at connector side
profile_idThe business profile that is associated with this payment
Details of surcharge applied on this payment, if applicable
merchant_decisionDenotes the action(approve or reject) taken by merchant in case of manual review. Manual review can occur when the transaction is marked as risky by the frm_processor, payment processor or when there is underpayment/over payment incase of crypto payment
merchant_connector_idIdentifier of the connector ( merchant connector account ) which was chosen to make the payment
incremental_authorization_allowedIf true, incremental authorization can be performed on this payment, in case the funds authorized initially fall short.
authorization_countTotal number of authorizations happened in an incremental_authorization payment
List of incremental authorizations happened to the payment
Details of external authentication
external_3ds_authentication_attemptedFlag indicating if external 3ds authentication is made or not
expires_onDate Time for expiry of the payment
fingerprintPayment Fingerprint, to identify a particular card. It is a 20 character long alphanumeric code.
Browser information to be used for 3DS 2.0
Describes the channel through which the payment was initiated.
payment_method_idA unique identifier for the payment method used in this payment. If the payment method was saved or tokenized, this ID can be used to reference it for future transactions or recurring payments.
Refer payment_method_tokenization_details for detailed view of payment method tokenization
network_transaction_idThe network transaction ID is a unique identifier for the transaction as recognized by the payment network (e.g., Visa, Mastercard), this ID can be used to reference it for future transactions or recurring payments.
Refer payment_method_tokenization_details for detailed view of payment method tokenization
payment_method_statusPayment Method Status
updatedDate time at which payment was updated
Charge Information
frm_metadataYou can specify up to 50 keys, with key names up to 40 characters long and values up to 500 characters long. FRM Metadata is useful for storing additional, structured information on an object related to FRM.
extended_authorization_appliedflag that indicates if extended authorization is applied on this payment or not
extended_authorization_last_applied_atdate and time at which extended authorization was last applied on this payment
request_extended_authorizationOptional boolean value to extent authorization period of this payment
capture method must be manual or manual_multiple
capture_beforedate and time after which this payment cannot be captured
merchant_order_reference_idMerchant's identifier for the payment/invoice. This will be sent to the connector if the connector provides support to accept multiple reference ids. In case the connector supports only one reference id, Hyperswitch's Payment ID will be sent as reference.
order_tax_amountThis Unit struct represents MinorUnit in which core amount works
connector_mandate_idConnector Identifier for the payment method
card_discoveryIndicates the method by which a card is discovered during a payment
force_3ds_challengeIndicates if 3ds challenge is forced
force_3ds_challenge_triggerIndicates if 3ds challenge is triggered
issuer_error_codeError code received from the issuer in case of failed payments
issuer_error_messageError message received from the issuer in case of failed payments
is_iframe_redirection_enabledIndicates if the redirection has to open in the iframe
whole_connector_responseContains whole connector response
enable_partial_authorizationAllow partial authorization for this payment
enable_overcaptureBool indicating if overcapture must be requested for this payment
is_overcapture_enabledBoolean indicating whether overcapture is effectively enabled for this payment
is_stored_credentialBoolean flag indicating whether this payment method is stored and has been previously used for payments
mit_categorySpecifies the category of a Merchant Initiated Transaction (MIT). In the case of MIT, mit_category tells what kind of MIT is being processed. In the case of CIT, it tells the future intended MIT type.
Billing Descriptor information to be sent to the payment gateway
tokenizationThe type of tokenization to use for the payment method
Information identifying partner and merchant application initiating the request
Installment payment options associated with this payment, grouped by payment method
Installment selection made by the customer during payment confirmation.
Statistics for a customer within a single profile
The authorized fee snapshot aggregated across a payment's capture rows.
None on the containing response means that no merchant commission
snapshot exists. A calculated zero remains Some(0).
customer_idThe identifier for the customer object. If not provided the customer ID will be autogenerated.
This field will be deprecated soon. Please refer to customer.id
emaildescription: The customer's email address
This field will be deprecated soon. Please refer to customer.email object
namedescription: The customer's name
This field will be deprecated soon. Please refer to customer.name object
phoneThe customer's phone number
This field will be deprecated soon. Please refer to customer.phone object
Payments - Extended Authorization
Extended authorization is available for payments currently in the requires_capture status
Call this endpoint to increase the authorization validity period
path Parameters
payment_idThe identifier for payment
Payments - Extended Authorization › Responses
Extended authorization for the payment
Payments - List
To list the payments
query Parameters
customer_idThe identifier for the customer
starting_afterA cursor for use in pagination, fetch the next list after some object
ending_beforeA cursor for use in pagination, fetch the previous list before some object
limitLimit on the number of objects to return
createdThe time at which payment is created
created_ltTime less than the payment created time
created_gtTime greater than the payment created time
created_lteTime less than or equals to the payment created time
created_gteTime greater than or equals to the payment created time
Payments - List › Responses
Successfully retrieved a payment list
sizeThe number of payments included in the list
Payments - List using filters
Lists payments with optional column operators
Payments - List using filters › Request Body
payment_idThe identifier for payment
profile_idThe identifier for business profile
customer_idThe identifier for customer
limitThe limit on the number of objects. The default limit is 10 and max limit is 20
offsetThe starting point within a list of objects
connectorThe list of connectors to filter payments list
currencyThe list of currencies to filter payments list
statusThe list of payment status to filter payments list
payment_methodThe list of payment methods to filter payments list
payment_method_typeThe list of payment method types to filter payments list
authentication_typeThe list of authentication types to filter payments list
merchant_connector_idThe list of merchant connector ids to filter payments list for selected label
card_networkThe List of all the card networks to filter payments list
merchant_order_reference_idThe identifier for merchant order reference id
card_discoveryIndicates the method by which a card is discovered during a payment
Column predicates. Combined with other fields using AND.
Payments - List using filters › Responses
Payments filtered
countThe number of payments included in the list for given constraints
total_countThe total number of available payments for given constraints
The list of payments response objects
Payments - Incremental Authorization
Authorized amount for a payment can be incremented if it is in status: requires_capture
path Parameters
payment_idThe identifier for payment
Payments - Incremental Authorization › Request Body
amountThe total amount including previously authorized amount and additional amount
reasonReason for incremental authorization
Payments - Incremental Authorization › Responses
Payment authorized amount incremented
payment_idUnique identifier for the payment. This ensures idempotency for multiple payments that have been done by a single merchant.
merchant_idThis is an identifier for the merchant account. This is inferred from the API key provided during the request
statusRepresents the overall status of a payment intent. The status transitions through various states depending on the payment method, confirmation, capture method, and any subsequent actions (like customer authentication or manual capture).
amountThe payment amount. Amount for the payment in lowest denomination of the currency. (i.e) in cents for USD denomination, in paisa for INR denomination etc.,
net_amountThe payment net amount. net_amount = amount + surcharge_details.surcharge_amount + surcharge_details.tax_amount + shipping_cost + order_tax_amount, If no surcharge_details, shipping_cost, order_tax_amount, net_amount = amount
amount_capturableThe amount (in minor units) that can still be captured for this payment. This is relevant when capture_method is manual. Once fully captured, or if capture_method is automatic and payment succeeded, this will be 0.
processor_merchant_idThe identifier for the processor merchant account. In platform-connected setups, this is the connected merchant ID. For standard merchants, this is same as merchant_id.
currencyThe three-letter ISO 4217 currency code (e.g., "USD", "EUR") for the payment amount. This field is mandatory for creating a payment.
payment_methodIndicates the type of payment method. Eg: 'card', 'wallet', etc.
attempt_countTotal number of attempts associated with this payment
shipping_costThe shipping cost for the payment.
amount_receivedThe total amount (in minor units) that has been captured for this payment. For fauxpay sandbox connector, this might reflect the authorized amount if status is succeeded even if capture_method was manual.
initiatorRepresents the initiator context in platform-connected setups Used in payment/refund/dispute responses to indicate who initiated the operation None indicates a standard merchant flow / JWT flow / Admin flow or insufficient information
sdk_authorizationToken containing encoded information for sdk authorization.
connectorThe name of the payment connector (e.g., 'stripe', 'adyen') that processed or is processing this payment.
Additional metadata for payment intent state containing refunded and disputed amounts
client_secretA secret token unique to this payment intent. It is primarily used by client-side applications (e.g., Hyperswitch SDKs) to authenticate actions like confirming the payment or handling next actions. This secret should be handled carefully and not exposed publicly beyond its intended client-side use.
createdTimestamp indicating when this payment intent was created, in ISO 8601 format.
modified_atTimestamp indicating when this payment intent was last modified, in ISO 8601 format.
Details of customer attached to this payment
descriptionAn arbitrary string providing a description for the payment, often useful for display or internal record-keeping.
An array of refund objects associated with this payment. Empty or null if no refunds have been processed.
List of disputes that happened on this intent
List of attempts that happened on this intent
List of captures done on latest attempt
mandate_idA unique identifier to link the payment to a mandate, can be used instead of payment_method_data, in case of setting up recurring payments
Passing this object during payments creates a mandate. The mandate_type sub object is passed by the server.
setup_future_usageSpecifies how the payment method can be used for future payments.
off_session: The payment method can be used for future payments when the customer is not present.on_session: The payment method is intended for use only when the customer is present during checkout. If omitted, defaults toon_session.
off_sessionSet to true to indicate that the customer is not in your checkout flow during this payment, and therefore is unable to authenticate. This parameter is intended for scenarios where you collect card details and charge them later. This parameter can only be used with confirm=true.
capture_onA timestamp (ISO 8601 code) that determines when the payment should be captured.
Providing this field will automatically set capture to true
capture_methodSpecifies how the payment is captured.
automatic: Funds are captured immediately after successful authorization. This is the default behavior if the field is omitted.manual: Funds are authorized but not captured. A separate request to the/payments/{payment_id}/captureendpoint is required to capture the funds.
payment_tokenProvide a reference to a stored payment method
Information about the product , quantity and amount for connectors. (e.g. Klarna)
return_urlThe URL to redirect after the completion of the operation
authentication_typeSpecifies the type of cardholder authentication to be applied for a payment.
ThreeDs: Requests 3D Secure (3DS) authentication. If the card is enrolled, 3DS authentication will be activated, potentially shifting chargeback liability to the issuer.NoThreeDs: Indicates that 3D Secure authentication should not be performed. The liability for chargebacks typically remains with the merchant. This is often the default if not specified.
Note: The actual authentication behavior can also be influenced by merchant configuration and specific connector defaults. Some connectors might still enforce 3DS or bypass it regardless of this parameter.
statement_descriptor_nameFor non-card charges, you can use this value as the complete description that appears on your customers’ statements. Must contain at least one letter, maximum 22 characters.
statement_descriptor_suffixProvides information about a card payment that customers see on their statements. Concatenated with the prefix (shortened descriptor) or statement descriptor that’s set on the account to form the complete statement descriptor. Maximum 255 characters for the concatenated descriptor.
cancellation_reasonIf the payment intent was cancelled, this field provides a textual reason for the cancellation (e.g., "requested_by_customer", "abandoned").
error_codeThe connector-specific error code from the last failed payment attempt associated with this payment intent.
error_messageA human-readable error message from the last failed payment attempt associated with this payment intent.
unified_codeerror code unified across the connectors is received here if there was an error while calling connector
unified_messageerror message unified across the connectors is received here if there was an error while calling connector
Complete error details for V1 PaymentsResponse containing unified, issuer, and connector-level error information.
payment_experienceTo indicate the type of payment experience that the customer would go through
payment_method_typeIndicates the sub type of payment method. Eg: 'google_pay' & 'apple_pay' for wallets.
connector_labelA label identifying the specific merchant connector account (MCA) used for this payment. This often combines the connector name, business country, and a custom label (e.g., "stripe_US_primary").
business_countrybusiness_labelThe label identifying the specific business unit or profile under which this payment was processed by the merchant.
business_sub_labelAn optional sub-label for further categorization of the business unit or profile used for this payment.
allowed_payment_method_typesAllowed Payment Method Types for a given PaymentIntent
manual_retry_allowedIf true the payment can be retried with same or different payment method which means the confirm call can be made again.
connector_transaction_idA unique identifier for a payment provided by the connector
frm message is an object sent inside the payments response...when frm is invoked, its value is Some(...), else its None
metadataYou can specify up to 50 keys, with key names up to 40 characters long and values up to 500 characters long. Metadata is useful for storing additional, structured information on an object.
Some connectors like Apple Pay, Airwallex and Noon might require some additional information, find specific details in the child attributes below.
additional data that might be required by hyperswitch
reference_idreference(Identifier) to the payment at connector side
profile_idThe business profile that is associated with this payment
Details of surcharge applied on this payment, if applicable
merchant_decisionDenotes the action(approve or reject) taken by merchant in case of manual review. Manual review can occur when the transaction is marked as risky by the frm_processor, payment processor or when there is underpayment/over payment incase of crypto payment
merchant_connector_idIdentifier of the connector ( merchant connector account ) which was chosen to make the payment
incremental_authorization_allowedIf true, incremental authorization can be performed on this payment, in case the funds authorized initially fall short.
authorization_countTotal number of authorizations happened in an incremental_authorization payment
List of incremental authorizations happened to the payment
Details of external authentication
external_3ds_authentication_attemptedFlag indicating if external 3ds authentication is made or not
expires_onDate Time for expiry of the payment
fingerprintPayment Fingerprint, to identify a particular card. It is a 20 character long alphanumeric code.
Browser information to be used for 3DS 2.0
Describes the channel through which the payment was initiated.
payment_method_idA unique identifier for the payment method used in this payment. If the payment method was saved or tokenized, this ID can be used to reference it for future transactions or recurring payments.
Refer payment_method_tokenization_details for detailed view of payment method tokenization
network_transaction_idThe network transaction ID is a unique identifier for the transaction as recognized by the payment network (e.g., Visa, Mastercard), this ID can be used to reference it for future transactions or recurring payments.
Refer payment_method_tokenization_details for detailed view of payment method tokenization
payment_method_statusPayment Method Status
updatedDate time at which payment was updated
Charge Information
frm_metadataYou can specify up to 50 keys, with key names up to 40 characters long and values up to 500 characters long. FRM Metadata is useful for storing additional, structured information on an object related to FRM.
extended_authorization_appliedflag that indicates if extended authorization is applied on this payment or not
extended_authorization_last_applied_atdate and time at which extended authorization was last applied on this payment
request_extended_authorizationOptional boolean value to extent authorization period of this payment
capture method must be manual or manual_multiple
capture_beforedate and time after which this payment cannot be captured
merchant_order_reference_idMerchant's identifier for the payment/invoice. This will be sent to the connector if the connector provides support to accept multiple reference ids. In case the connector supports only one reference id, Hyperswitch's Payment ID will be sent as reference.
order_tax_amountThis Unit struct represents MinorUnit in which core amount works
connector_mandate_idConnector Identifier for the payment method
card_discoveryIndicates the method by which a card is discovered during a payment
force_3ds_challengeIndicates if 3ds challenge is forced
force_3ds_challenge_triggerIndicates if 3ds challenge is triggered
issuer_error_codeError code received from the issuer in case of failed payments
issuer_error_messageError message received from the issuer in case of failed payments
is_iframe_redirection_enabledIndicates if the redirection has to open in the iframe
whole_connector_responseContains whole connector response
enable_partial_authorizationAllow partial authorization for this payment
enable_overcaptureBool indicating if overcapture must be requested for this payment
is_overcapture_enabledBoolean indicating whether overcapture is effectively enabled for this payment
is_stored_credentialBoolean flag indicating whether this payment method is stored and has been previously used for payments
mit_categorySpecifies the category of a Merchant Initiated Transaction (MIT). In the case of MIT, mit_category tells what kind of MIT is being processed. In the case of CIT, it tells the future intended MIT type.
Billing Descriptor information to be sent to the payment gateway
tokenizationThe type of tokenization to use for the payment method
Information identifying partner and merchant application initiating the request
Installment payment options associated with this payment, grouped by payment method
Installment selection made by the customer during payment confirmation.
Statistics for a customer within a single profile
The authorized fee snapshot aggregated across a payment's capture rows.
None on the containing response means that no merchant commission
snapshot exists. A calculated zero remains Some(0).
customer_idThe identifier for the customer object. If not provided the customer ID will be autogenerated.
This field will be deprecated soon. Please refer to customer.id
emaildescription: The customer's email address
This field will be deprecated soon. Please refer to customer.email object
namedescription: The customer's name
This field will be deprecated soon. Please refer to customer.name object
phoneThe customer's phone number
This field will be deprecated soon. Please refer to customer.phone object
Payments Link - Retrieve
To retrieve the properties of a Payment Link. This may be used to get the status of a previously initiated payment or next action for an ongoing payment
path Parameters
payment_link_idThe identifier for payment link
query Parameters
client_secretThis is a token which expires after 15 minutes, used from the client to authenticate and create sessions from the SDK
Payments Link - Retrieve › Responses
Gets details regarding payment link
payment_link_idIdentifier for Payment Link
merchant_idIdentifier for Merchant
link_to_payOpen payment link (without any security checks and listing SPMs)
amountThe payment amount. Amount for the payment in the lowest denomination of the currency
created_atDate and time of Payment Link creation
statusStatus Of the Payment Link
expiryDate and time of Expiration for Payment Link
descriptionDescription for Payment Link
currencyThe three-letter ISO 4217 currency code (e.g., "USD", "EUR") for the payment amount. This field is mandatory for creating a payment.
secure_linkSecure payment link (with security checks and listing saved payment methods)
Payments - External 3DS Authentication
External 3DS Authentication is performed and returns the AuthenticationResponse
path Parameters
payment_idThe identifier for payment
Payments - External 3DS Authentication › Request Body
device_channelDevice Channel indicating whether request is coming from App or Browser
threeds_method_comp_indIndicates if 3DS method data was successfully completed or not
client_secretClient Secret
SDK Information if request is from SDK
Payments - External 3DS Authentication › Responses
Authentication created
trans_statusIndicates the transaction status
three_ds_requestor_urlThree DS Requestor URL
acs_urlAccess Server URL to be used for challenge submission
challenge_requestChallenge request which should be sent to acs_url
challenge_request_keyChallenge request key which should be set as form field name for creq
acs_reference_numberUnique identifier assigned by the EMVCo(Europay, Mastercard and Visa)
acs_trans_idUnique identifier assigned by the ACS to identify a single transaction
three_dsserver_trans_idUnique identifier assigned by the 3DS Server to identify a single transaction
acs_signed_contentContains the JWS object created by the ACS for the ARes(Authentication Response) message
three_ds_requestor_app_urlMerchant app declaring their URL within the CReq message so that the Authentication app can call the Merchant app after OOB authentication has occurred
error_messageError message if any
Payments - Complete Authorize
path Parameters
payment_idThe identifier for payment
Payments - Complete Authorize › Request Body
client_secretClient Secret
threeds_method_comp_indIndicates if 3DS method data was successfully completed or not
Payments - Complete Authorize › Responses
Payments Complete Authorize Success
payment_idUnique identifier for the payment. This ensures idempotency for multiple payments that have been done by a single merchant.
merchant_idThis is an identifier for the merchant account. This is inferred from the API key provided during the request
statusRepresents the overall status of a payment intent. The status transitions through various states depending on the payment method, confirmation, capture method, and any subsequent actions (like customer authentication or manual capture).
amountThe payment amount. Amount for the payment in lowest denomination of the currency. (i.e) in cents for USD denomination, in paisa for INR denomination etc.,
net_amountThe payment net amount. net_amount = amount + surcharge_details.surcharge_amount + surcharge_details.tax_amount + shipping_cost + order_tax_amount, If no surcharge_details, shipping_cost, order_tax_amount, net_amount = amount
amount_capturableThe amount (in minor units) that can still be captured for this payment. This is relevant when capture_method is manual. Once fully captured, or if capture_method is automatic and payment succeeded, this will be 0.
processor_merchant_idThe identifier for the processor merchant account. In platform-connected setups, this is the connected merchant ID. For standard merchants, this is same as merchant_id.
currencyThe three-letter ISO 4217 currency code (e.g., "USD", "EUR") for the payment amount. This field is mandatory for creating a payment.
payment_methodIndicates the type of payment method. Eg: 'card', 'wallet', etc.
attempt_countTotal number of attempts associated with this payment
shipping_costThe shipping cost for the payment.
amount_receivedThe total amount (in minor units) that has been captured for this payment. For fauxpay sandbox connector, this might reflect the authorized amount if status is succeeded even if capture_method was manual.
initiatorRepresents the initiator context in platform-connected setups Used in payment/refund/dispute responses to indicate who initiated the operation None indicates a standard merchant flow / JWT flow / Admin flow or insufficient information
sdk_authorizationToken containing encoded information for sdk authorization.
connectorThe name of the payment connector (e.g., 'stripe', 'adyen') that processed or is processing this payment.
Additional metadata for payment intent state containing refunded and disputed amounts
client_secretA secret token unique to this payment intent. It is primarily used by client-side applications (e.g., Hyperswitch SDKs) to authenticate actions like confirming the payment or handling next actions. This secret should be handled carefully and not exposed publicly beyond its intended client-side use.
createdTimestamp indicating when this payment intent was created, in ISO 8601 format.
modified_atTimestamp indicating when this payment intent was last modified, in ISO 8601 format.
Details of customer attached to this payment
descriptionAn arbitrary string providing a description for the payment, often useful for display or internal record-keeping.
An array of refund objects associated with this payment. Empty or null if no refunds have been processed.
List of disputes that happened on this intent
List of attempts that happened on this intent
List of captures done on latest attempt
mandate_idA unique identifier to link the payment to a mandate, can be used instead of payment_method_data, in case of setting up recurring payments
Passing this object during payments creates a mandate. The mandate_type sub object is passed by the server.
setup_future_usageSpecifies how the payment method can be used for future payments.
off_session: The payment method can be used for future payments when the customer is not present.on_session: The payment method is intended for use only when the customer is present during checkout. If omitted, defaults toon_session.
off_sessionSet to true to indicate that the customer is not in your checkout flow during this payment, and therefore is unable to authenticate. This parameter is intended for scenarios where you collect card details and charge them later. This parameter can only be used with confirm=true.
capture_onA timestamp (ISO 8601 code) that determines when the payment should be captured.
Providing this field will automatically set capture to true
capture_methodSpecifies how the payment is captured.
automatic: Funds are captured immediately after successful authorization. This is the default behavior if the field is omitted.manual: Funds are authorized but not captured. A separate request to the/payments/{payment_id}/captureendpoint is required to capture the funds.
payment_tokenProvide a reference to a stored payment method
Information about the product , quantity and amount for connectors. (e.g. Klarna)
return_urlThe URL to redirect after the completion of the operation
authentication_typeSpecifies the type of cardholder authentication to be applied for a payment.
ThreeDs: Requests 3D Secure (3DS) authentication. If the card is enrolled, 3DS authentication will be activated, potentially shifting chargeback liability to the issuer.NoThreeDs: Indicates that 3D Secure authentication should not be performed. The liability for chargebacks typically remains with the merchant. This is often the default if not specified.
Note: The actual authentication behavior can also be influenced by merchant configuration and specific connector defaults. Some connectors might still enforce 3DS or bypass it regardless of this parameter.
statement_descriptor_nameFor non-card charges, you can use this value as the complete description that appears on your customers’ statements. Must contain at least one letter, maximum 22 characters.
statement_descriptor_suffixProvides information about a card payment that customers see on their statements. Concatenated with the prefix (shortened descriptor) or statement descriptor that’s set on the account to form the complete statement descriptor. Maximum 255 characters for the concatenated descriptor.
cancellation_reasonIf the payment intent was cancelled, this field provides a textual reason for the cancellation (e.g., "requested_by_customer", "abandoned").
error_codeThe connector-specific error code from the last failed payment attempt associated with this payment intent.
error_messageA human-readable error message from the last failed payment attempt associated with this payment intent.
unified_codeerror code unified across the connectors is received here if there was an error while calling connector
unified_messageerror message unified across the connectors is received here if there was an error while calling connector
Complete error details for V1 PaymentsResponse containing unified, issuer, and connector-level error information.
payment_experienceTo indicate the type of payment experience that the customer would go through
payment_method_typeIndicates the sub type of payment method. Eg: 'google_pay' & 'apple_pay' for wallets.
connector_labelA label identifying the specific merchant connector account (MCA) used for this payment. This often combines the connector name, business country, and a custom label (e.g., "stripe_US_primary").
business_countrybusiness_labelThe label identifying the specific business unit or profile under which this payment was processed by the merchant.
business_sub_labelAn optional sub-label for further categorization of the business unit or profile used for this payment.
allowed_payment_method_typesAllowed Payment Method Types for a given PaymentIntent
manual_retry_allowedIf true the payment can be retried with same or different payment method which means the confirm call can be made again.
connector_transaction_idA unique identifier for a payment provided by the connector
frm message is an object sent inside the payments response...when frm is invoked, its value is Some(...), else its None
metadataYou can specify up to 50 keys, with key names up to 40 characters long and values up to 500 characters long. Metadata is useful for storing additional, structured information on an object.
Some connectors like Apple Pay, Airwallex and Noon might require some additional information, find specific details in the child attributes below.
additional data that might be required by hyperswitch
reference_idreference(Identifier) to the payment at connector side
profile_idThe business profile that is associated with this payment
Details of surcharge applied on this payment, if applicable
merchant_decisionDenotes the action(approve or reject) taken by merchant in case of manual review. Manual review can occur when the transaction is marked as risky by the frm_processor, payment processor or when there is underpayment/over payment incase of crypto payment
merchant_connector_idIdentifier of the connector ( merchant connector account ) which was chosen to make the payment
incremental_authorization_allowedIf true, incremental authorization can be performed on this payment, in case the funds authorized initially fall short.
authorization_countTotal number of authorizations happened in an incremental_authorization payment
List of incremental authorizations happened to the payment
Details of external authentication
external_3ds_authentication_attemptedFlag indicating if external 3ds authentication is made or not
expires_onDate Time for expiry of the payment
fingerprintPayment Fingerprint, to identify a particular card. It is a 20 character long alphanumeric code.
Browser information to be used for 3DS 2.0
Describes the channel through which the payment was initiated.
payment_method_idA unique identifier for the payment method used in this payment. If the payment method was saved or tokenized, this ID can be used to reference it for future transactions or recurring payments.
Refer payment_method_tokenization_details for detailed view of payment method tokenization
network_transaction_idThe network transaction ID is a unique identifier for the transaction as recognized by the payment network (e.g., Visa, Mastercard), this ID can be used to reference it for future transactions or recurring payments.
Refer payment_method_tokenization_details for detailed view of payment method tokenization
payment_method_statusPayment Method Status
updatedDate time at which payment was updated
Charge Information
frm_metadataYou can specify up to 50 keys, with key names up to 40 characters long and values up to 500 characters long. FRM Metadata is useful for storing additional, structured information on an object related to FRM.
extended_authorization_appliedflag that indicates if extended authorization is applied on this payment or not
extended_authorization_last_applied_atdate and time at which extended authorization was last applied on this payment
request_extended_authorizationOptional boolean value to extent authorization period of this payment
capture method must be manual or manual_multiple
capture_beforedate and time after which this payment cannot be captured
merchant_order_reference_idMerchant's identifier for the payment/invoice. This will be sent to the connector if the connector provides support to accept multiple reference ids. In case the connector supports only one reference id, Hyperswitch's Payment ID will be sent as reference.
order_tax_amountThis Unit struct represents MinorUnit in which core amount works
connector_mandate_idConnector Identifier for the payment method
card_discoveryIndicates the method by which a card is discovered during a payment
force_3ds_challengeIndicates if 3ds challenge is forced
force_3ds_challenge_triggerIndicates if 3ds challenge is triggered
issuer_error_codeError code received from the issuer in case of failed payments
issuer_error_messageError message received from the issuer in case of failed payments
is_iframe_redirection_enabledIndicates if the redirection has to open in the iframe
whole_connector_responseContains whole connector response
enable_partial_authorizationAllow partial authorization for this payment
enable_overcaptureBool indicating if overcapture must be requested for this payment
is_overcapture_enabledBoolean indicating whether overcapture is effectively enabled for this payment
is_stored_credentialBoolean flag indicating whether this payment method is stored and has been previously used for payments
mit_categorySpecifies the category of a Merchant Initiated Transaction (MIT). In the case of MIT, mit_category tells what kind of MIT is being processed. In the case of CIT, it tells the future intended MIT type.
Billing Descriptor information to be sent to the payment gateway
tokenizationThe type of tokenization to use for the payment method
Information identifying partner and merchant application initiating the request
Installment payment options associated with this payment, grouped by payment method
Installment selection made by the customer during payment confirmation.
Statistics for a customer within a single profile
The authorized fee snapshot aggregated across a payment's capture rows.
None on the containing response means that no merchant commission
snapshot exists. A calculated zero remains Some(0).
customer_idThe identifier for the customer object. If not provided the customer ID will be autogenerated.
This field will be deprecated soon. Please refer to customer.id
emaildescription: The customer's email address
This field will be deprecated soon. Please refer to customer.email object
namedescription: The customer's name
This field will be deprecated soon. Please refer to customer.name object
phoneThe customer's phone number
This field will be deprecated soon. Please refer to customer.phone object
Payments - Post Session Tokens
path Parameters
payment_idThe identifier for payment
Payments - Post Session Tokens › Request Body
payment_method_typeIndicates the sub type of payment method. Eg: 'google_pay' & 'apple_pay' for wallets.
payment_methodIndicates the type of payment method. Eg: 'card', 'wallet', etc.
client_secretIt's a token used for client side verification.
Payments - Post Session Tokens › Responses
Post Session Token is done
payment_idThe identifier for the payment
statusRepresents the overall status of a payment intent. The status transitions through various states depending on the payment method, confirmation, capture method, and any subsequent actions (like customer authentication or manual capture).
Payments - Update Metadata
path Parameters
payment_idThe identifier for payment
Payments - Update Metadata › Request Body
metadataMetadata is useful for storing additional, unstructured information on an object.
additional data that might be required by hyperswitch
Payments - Update Metadata › Responses
Metadata updated successfully
payment_idThe identifier for the payment
statusRepresents the overall status of a payment intent. The status transitions through various states depending on the payment method, confirmation, capture method, and any subsequent actions (like customer authentication or manual capture).
metadataMetadata is useful for storing additional, unstructured information on an object.
additional data that might be required by hyperswitch
Payments - Submit Eligibility Data
path Parameters
payment_idThe identifier for payment
Payments - Submit Eligibility Data › Request Body
client_secretToken used for client side verification
payment_method_typeIndicates the type of payment method. Eg: 'card', 'wallet', etc.
Payment method data request for eligibility check
payment_method_subtypeIndicates the sub type of payment method. Eg: 'google_pay' & 'apple_pay' for wallets.
Browser information to be used for 3DS 2.0
Payments - Submit Eligibility Data › Responses
Eligibility submit is successful
payment_idThe identifier for the payment