GET
/
payments
/
{payment_id}
curl --request GET \
  --url https://sandbox.hyperswitch.io/payments/{payment_id} \
  --header 'Content-Type: application/json' \
  --header 'api-key: <api-key>' \
  --data '{
  "merchant_id": "<string>",
  "force_sync": true,
  "client_secret": "<string>",
  "expand_captures": true,
  "expand_attempts": true
}'
{
  "payment_id": "pay_mbabizu24mvu3mela5njyhpit4",
  "merchant_id": "merchant_1668273825",
  "status": "succeeded",
  "amount": 100,
  "net_amount": 110,
  "amount_capturable": 6540,
  "amount_received": 6540,
  "connector": "stripe",
  "client_secret": "pay_U42c409qyHwOkWo3vK60_secret_el9ksDkiB8hi6j9N78yo",
  "created": "2022-09-10T10:11:12Z",
  "currency": "AED",
  "customer_id": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
  "description": "It's my first payment request",
  "refunds": [
    {
      "refund_id": "<string>",
      "payment_id": "<string>",
      "amount": 123,
      "currency": "<string>",
      "status": "succeeded",
      "reason": "<string>",
      "metadata": {},
      "error_message": "<string>",
      "error_code": "<string>",
      "created_at": "2023-11-07T05:31:56Z",
      "updated_at": "2023-11-07T05:31:56Z",
      "connector": "stripe",
      "profile_id": "<string>",
      "merchant_connector_id": "<string>"
    }
  ],
  "disputes": [
    {
      "dispute_id": "<string>",
      "dispute_stage": "pre_dispute",
      "dispute_status": "dispute_opened",
      "connector_status": "<string>",
      "connector_dispute_id": "<string>",
      "connector_reason": "<string>",
      "connector_reason_code": "<string>",
      "challenge_required_by": "2023-11-07T05:31:56Z",
      "connector_created_at": "2023-11-07T05:31:56Z",
      "connector_updated_at": "2023-11-07T05:31:56Z",
      "created_at": "2023-11-07T05:31:56Z"
    }
  ],
  "attempts": [
    {
      "attempt_id": "<string>",
      "status": "started",
      "amount": 123,
      "currency": "AED",
      "connector": "<string>",
      "error_message": "<string>",
      "payment_method": "card",
      "connector_transaction_id": "<string>",
      "capture_method": "automatic",
      "authentication_type": "three_ds",
      "cancellation_reason": "<string>",
      "mandate_id": "<string>",
      "error_code": "<string>",
      "payment_token": "<string>",
      "connector_metadata": "<any>",
      "payment_experience": "redirect_to_url",
      "payment_method_type": "ach",
      "reference_id": "993672945374576J",
      "unified_code": "<string>",
      "unified_message": "<string>"
    }
  ],
  "captures": [
    {
      "capture_id": "<string>",
      "status": "started",
      "amount": 123,
      "currency": "AED",
      "connector": "<string>",
      "authorized_attempt_id": "<string>",
      "connector_capture_id": "<string>",
      "capture_sequence": 123,
      "error_message": "<string>",
      "error_code": "<string>",
      "error_reason": "<string>",
      "reference_id": "<string>"
    }
  ],
  "mandate_id": "mandate_iwer89rnjef349dni3",
  "mandate_data": {
    "customer_acceptance": {
      "acceptance_type": "online",
      "accepted_at": "2022-09-10T10:11:12Z",
      "online": {
        "ip_address": "123.32.25.123",
        "user_agent": "<string>"
      }
    },
    "mandate_type": {
      "single_use": {
        "amount": 6540,
        "currency": "AED",
        "start_date": "2022-09-10T00:00:00Z",
        "end_date": "2023-09-10T23:59:59Z",
        "metadata": {}
      }
    }
  },
  "setup_future_usage": "off_session",
  "off_session": true,
  "capture_on": "2022-09-10T10:11:12Z",
  "capture_method": "automatic",
  "payment_method": "ach",
  "payment_method_data": "card",
  "payment_token": "187282ab-40ef-47a9-9206-5099ba31e432",
  "shipping": {
    "address": {
      "city": "New York",
      "country": "AF",
      "line1": "123, King Street",
      "line2": "Powelson Avenue",
      "line3": "Bridgewater",
      "zip": "08807",
      "state": "New York",
      "first_name": "John",
      "last_name": "Doe"
    },
    "phone": {
      "number": "9999999999",
      "country_code": "+1"
    }
  },
  "billing": {
    "address": {
      "city": "New York",
      "country": "AF",
      "line1": "123, King Street",
      "line2": "Powelson Avenue",
      "line3": "Bridgewater",
      "zip": "08807",
      "state": "New York",
      "first_name": "John",
      "last_name": "Doe"
    },
    "phone": {
      "number": "9999999999",
      "country_code": "+1"
    }
  },
  "order_details": "[{\n        \"product_name\": \"gillete creme\",\n        \"quantity\": 15,\n        \"amount\" : 900\n    }]",
  "email": "johntest@test.com",
  "name": "John Test",
  "phone": "3141592653",
  "return_url": "https://hyperswitch.io",
  "authentication_type": "three_ds",
  "statement_descriptor_name": "Hyperswitch Router",
  "statement_descriptor_suffix": "Payment for shoes purchase",
  "next_action": {
    "redirect_to_url": "<string>",
    "type": "redirect_to_url"
  },
  "cancellation_reason": "<string>",
  "error_code": "E0001",
  "error_message": "Failed while verifying the card",
  "unified_code": "<string>",
  "unified_message": "<string>",
  "payment_experience": "redirect_to_url",
  "payment_method_type": "ach",
  "connector_label": "stripe_US_food",
  "business_country": "AF",
  "business_label": "<string>",
  "business_sub_label": "<string>",
  "allowed_payment_method_types": [
    "ach"
  ],
  "ephemeral_key": {
    "customer_id": "<string>",
    "created_at": 123,
    "expires": 123,
    "secret": "<string>"
  },
  "manual_retry_allowed": true,
  "connector_transaction_id": "993672945374576J",
  "frm_message": {
    "frm_name": "<string>",
    "frm_transaction_id": "<string>",
    "frm_transaction_type": "<string>",
    "frm_status": "<string>",
    "frm_score": 123,
    "frm_reason": "<any>",
    "frm_error": "<string>"
  },
  "metadata": {},
  "connector_metadata": {
    "apple_pay": {
      "session_token_data": {
        "certificate": "<string>",
        "certificate_keys": "<string>",
        "merchant_identifier": "<string>",
        "display_name": "<string>",
        "initiative": "<string>",
        "initiative_context": "<string>"
      }
    },
    "airwallex": {
      "payload": "<string>"
    },
    "noon": {
      "order_category": "<string>"
    }
  },
  "feature_metadata": {
    "redirect_response": {
      "param": "<string>",
      "json_payload": {}
    }
  },
  "reference_id": "993672945374576J",
  "payment_link": {
    "link": "<string>",
    "payment_link_id": "<string>"
  },
  "profile_id": "<string>",
  "surcharge_details": {
    "surcharge_amount": 123,
    "tax_amount": 123
  },
  "attempt_count": 123,
  "merchant_decision": "<string>",
  "merchant_connector_id": "<string>",
  "incremental_authorization_allowed": true,
  "authorization_count": 123,
  "incremental_authorizations": [
    {
      "authorization_id": "<string>",
      "amount": 123,
      "status": "success",
      "error_code": "<string>",
      "error_message": "<string>",
      "previously_authorized_amount": 123
    }
  ],
  "fingerprint": "<string>"
}

Authorizations

api-key
string
headerrequired

Use the API key created under your merchant account from the HyperSwitch dashboard. API key is used to authenticate API requests from your merchant server only. Don't expose this key on a website or embed it in a mobile application.

Path Parameters

payment_id
string
required

The identifier for payment

Body

application/json
merchant_id
string | null

The identifier for the Merchant Account.

force_sync
boolean | null

Decider to enable or disable the connector call for retrieve request

client_secret
string | null

This is a token which expires after 15 minutes, used from the client to authenticate and create sessions from the SDK

expand_captures
boolean | null

If enabled provides list of captures linked to latest attempt

expand_attempts
boolean | null

If enabled provides list of attempts linked to payment intent

Response

200 - application/json
payment_id
string | null

Unique identifier for the payment. This ensures idempotency for multiple payments that have been done by a single merchant.

merchant_id
string | null

This is an identifier for the merchant account. This is inferred from the API key provided during the request

status
enum<string>
required
Available options:
succeeded,
failed,
cancelled,
processing,
requires_customer_action,
requires_merchant_action,
requires_payment_method,
requires_confirmation,
requires_capture,
partially_captured,
partially_captured_and_capturable
amount
integer
required

The 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_amount
integer
required

The payment net amount. net_amount = amount + surcharge_details.surcharge_amount + surcharge_details.tax_amount, If no surcharge_details, net_amount = amount

amount_capturable
integer | null

The maximum amount that could be captured from the payment

amount_received
integer | null

The amount which is already captured from the payment

connector
string | null

The connector used for the payment

client_secret
string | null

It's a token used for client side verification.

created
string | null

Time when the payment was created

currency
enum<string>
required

The three letter ISO currency code in uppercase. Eg: 'USD' for the United States Dollar.

Available options:
AED,
ALL,
AMD,
ANG,
ARS,
AUD,
AWG,
AZN,
BBD,
BDT,
BHD,
BIF,
BMD,
BND,
BOB,
BRL,
BSD,
BWP,
BZD,
CAD,
CHF,
CLP,
CNY,
COP,
CRC,
CUP,
CZK,
DJF,
DKK,
DOP,
DZD,
EGP,
ETB,
EUR,
FJD,
GBP,
GHS,
GIP,
GMD,
GNF,
GTQ,
GYD,
HKD,
HNL,
HRK,
HTG,
HUF,
IDR,
ILS,
INR,
JMD,
JOD,
JPY,
KES,
KGS,
KHR,
KMF,
KRW,
KWD,
KYD,
KZT,
LAK,
LBP,
LKR,
LRD,
LSL,
MAD,
MDL,
MGA,
MKD,
MMK,
MNT,
MOP,
MUR,
MVR,
MWK,
MXN,
MYR,
NAD,
NGN,
NIO,
NOK,
NPR,
NZD,
OMR,
PEN,
PGK,
PHP,
PKR,
PLN,
PYG,
QAR,
RON,
RUB,
RWF,
SAR,
SCR,
SEK,
SGD,
SLL,
SOS,
SSP,
SVC,
SZL,
THB,
TRY,
TTD,
TWD,
TZS,
UGX,
USD,
UYU,
UZS,
VND,
VUV,
XAF,
XOF,
XPF,
YER,
ZAR
customer_id
string | null

The identifier for the customer object. If not provided the customer ID will be autogenerated.

description
string | null

A description of the payment

refunds
object[] | null

List of refund that happened on this intent

disputes
object[] | null

List of dispute that happened on this intent

attempts
object[] | null

List of attempts that happened on this intent

captures
object[] | null

List of captures done on latest attempt

mandate_id
string | null

A unique identifier to link the payment to a mandate, can be use instead of payment_method_data

mandate_data
object
setup_future_usage
enum<string>
Available options:
off_session,
on_session
off_session
boolean | null

Set 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_on
string | null

A timestamp (ISO 8601 code) that determines when the payment should be captured. Providing this field will automatically set capture to true

capture_method
enum<string>
Available options:
automatic,
manual,
manual_multiple,
scheduled
payment_method
enum<string>
required

Indicates the sub type of payment method. Eg: 'google_pay' & 'apple_pay' for wallets.

Available options:
ach,
affirm,
afterpay_clearpay,
alfamart,
ali_pay,
ali_pay_hk,
alma,
apple_pay,
atome,
bacs,
bancontact_card,
becs,
benefit,
bizum,
blik,
boleto,
bca_bank_transfer,
bni_va,
bri_va,
card_redirect,
cimb_va,
classic,
credit,
crypto_currency,
cashapp,
dana,
danamon_va,
debit,
efecty,
eps,
evoucher,
giropay,
givex,
google_pay,
go_pay,
gcash,
ideal,
interac,
indomaret,
klarna,
kakao_pay,
mandiri_va,
knet,
mb_way,
mobile_pay,
momo,
momo_atm,
multibanco,
online_banking_thailand,
online_banking_czech_republic,
online_banking_finland,
online_banking_fpx,
online_banking_poland,
online_banking_slovakia,
oxxo,
pago_efectivo,
permata_bank_transfer,
open_banking_uk,
pay_bright,
paypal,
pix,
pay_safe_card,
przelewy24,
pse,
red_compra,
red_pagos,
samsung_pay,
sepa,
sofort,
swish,
touch_n_go,
trustly,
twint,
upi_collect,
vipps,
walley,
we_chat_pay,
seven_eleven,
lawson,
mini_stop,
family_mart,
seicomart,
pay_easy
payment_method_data
enum<string>

Indicates the type of payment method. Eg: 'card', 'wallet', etc.

Available options:
card,
card_redirect,
pay_later,
wallet,
bank_redirect,
bank_transfer,
crypto,
bank_debit,
reward,
upi,
voucher,
gift_card
payment_token
string | null

Provide a reference to a stored payment method

shipping
object
billing
object
order_details
object[] | null

Information about the product , quantity and amount for connectors. (e.g. Klarna)

email
string | null

description: The customer's email address

name
string | null

description: The customer's name

phone
string | null

The customer's phone number

return_url
string | null

The URL to redirect after the completion of the operation

authentication_type
enum<string>
Available options:
three_ds,
no_three_ds
statement_descriptor_name
string | null

For 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_suffix
string | null

Provides 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.

next_action
object

Contains the url for redirection flow

  • Option 1

  • Option 2

  • Option 3

  • Option 4

  • Option 5

  • Option 6

cancellation_reason
string | null

If the payment was cancelled the reason provided here

error_code
string | null

If there was an error while calling the connectors the code is received here

error_message
string | null

If there was an error while calling the connector the error message is received here

unified_code
string | null

error code unified across the connectors is received here if there was an error while calling connector

unified_message
string | null

error message unified across the connectors is received here if there was an error while calling connector

payment_experience
enum<string>

To indicate the type of payment experience that the customer would go through

Available options:
redirect_to_url,
invoke_sdk_client,
display_qr_code,
one_click,
link_wallet,
invoke_payment_app,
display_wait_screen
payment_method_type
enum<string>

Indicates the sub type of payment method. Eg: 'google_pay' & 'apple_pay' for wallets.

Available options:
ach,
affirm,
afterpay_clearpay,
alfamart,
ali_pay,
ali_pay_hk,
alma,
apple_pay,
atome,
bacs,
bancontact_card,
becs,
benefit,
bizum,
blik,
boleto,
bca_bank_transfer,
bni_va,
bri_va,
card_redirect,
cimb_va,
classic,
credit,
crypto_currency,
cashapp,
dana,
danamon_va,
debit,
efecty,
eps,
evoucher,
giropay,
givex,
google_pay,
go_pay,
gcash,
ideal,
interac,
indomaret,
klarna,
kakao_pay,
mandiri_va,
knet,
mb_way,
mobile_pay,
momo,
momo_atm,
multibanco,
online_banking_thailand,
online_banking_czech_republic,
online_banking_finland,
online_banking_fpx,
online_banking_poland,
online_banking_slovakia,
oxxo,
pago_efectivo,
permata_bank_transfer,
open_banking_uk,
pay_bright,
paypal,
pix,
pay_safe_card,
przelewy24,
pse,
red_compra,
red_pagos,
samsung_pay,
sepa,
sofort,
swish,
touch_n_go,
trustly,
twint,
upi_collect,
vipps,
walley,
we_chat_pay,
seven_eleven,
lawson,
mini_stop,
family_mart,
seicomart,
pay_easy
connector_label
string | null

The connector used for this payment along with the country and business details

business_country
enum<string>
Available options:
AF,
AX,
AL,
DZ,
AS,
AD,
AO,
AI,
AQ,
AG,
AR,
AM,
AW,
AU,
AT,
AZ,
BS,
BH,
BD,
BB,
BY,
BE,
BZ,
BJ,
BM,
BT,
BO,
BQ,
BA,
BW,
BV,
BR,
IO,
BN,
BG,
BF,
BI,
KH,
CM,
CA,
CV,
KY,
CF,
TD,
CL,
CN,
CX,
CC,
CO,
KM,
CG,
CD,
CK,
CR,
CI,
HR,
CU,
CW,
CY,
CZ,
DK,
DJ,
DM,
DO,
EC,
EG,
SV,
GQ,
ER,
EE,
ET,
FK,
FO,
FJ,
FI,
FR,
GF,
PF,
TF,
GA,
GM,
GE,
DE,
GH,
GI,
GR,
GL,
GD,
GP,
GU,
GT,
GG,
GN,
GW,
GY,
HT,
HM,
VA,
HN,
HK,
HU,
IS,
IN,
ID,
IR,
IQ,
IE,
IM,
IL,
IT,
JM,
JP,
JE,
JO,
KZ,
KE,
KI,
KP,
KR,
KW,
KG,
LA,
LV,
LB,
LS,
LR,
LY,
LI,
LT,
LU,
MO,
MK,
MG,
MW,
MY,
MV,
ML,
MT,
MH,
MQ,
MR,
MU,
YT,
MX,
FM,
MD,
MC,
MN,
ME,
MS,
MA,
MZ,
MM,
NA,
NR,
NP,
NL,
NC,
NZ,
NI,
NE,
NG,
NU,
NF,
MP,
NO,
OM,
PK,
PW,
PS,
PA,
PG,
PY,
PE,
PH,
PN,
PL,
PT,
PR,
QA,
RE,
RO,
RU,
RW,
BL,
SH,
KN,
LC,
MF,
PM,
VC,
WS,
SM,
ST,
SA,
SN,
RS,
SC,
SL,
SG,
SX,
SK,
SI,
SB,
SO,
ZA,
GS,
SS,
ES,
LK,
SD,
SR,
SJ,
SZ,
SE,
CH,
SY,
TW,
TJ,
TZ,
TH,
TL,
TG,
TK,
TO,
TT,
TN,
TR,
TM,
TC,
TV,
UG,
UA,
AE,
GB,
UM,
UY,
UZ,
VU,
VE,
VN,
VG,
VI,
WF,
EH,
YE,
ZM,
ZW,
US
business_label
string | null

The business label of merchant for this payment

business_sub_label
string | null

The business_sub_label for this payment

allowed_payment_method_types
enum<string>[] | null

Allowed Payment Method Types for a given PaymentIntent

Available options:
ach,
affirm,
afterpay_clearpay,
alfamart,
ali_pay,
ali_pay_hk,
alma,
apple_pay,
atome,
bacs,
bancontact_card,
becs,
benefit,
bizum,
blik,
boleto,
bca_bank_transfer,
bni_va,
bri_va,
card_redirect,
cimb_va,
classic,
credit,
crypto_currency,
cashapp,
dana,
danamon_va,
debit,
efecty,
eps,
evoucher,
giropay,
givex,
google_pay,
go_pay,
gcash,
ideal,
interac,
indomaret,
klarna,
kakao_pay,
mandiri_va,
knet,
mb_way,
mobile_pay,
momo,
momo_atm,
multibanco,
online_banking_thailand,
online_banking_czech_republic,
online_banking_finland,
online_banking_fpx,
online_banking_poland,
online_banking_slovakia,
oxxo,
pago_efectivo,
permata_bank_transfer,
open_banking_uk,
pay_bright,
paypal,
pix,
pay_safe_card,
przelewy24,
pse,
red_compra,
red_pagos,
samsung_pay,
sepa,
sofort,
swish,
touch_n_go,
trustly,
twint,
upi_collect,
vipps,
walley,
we_chat_pay,
seven_eleven,
lawson,
mini_stop,
family_mart,
seicomart,
pay_easy
ephemeral_key
object
manual_retry_allowed
boolean | null

If true the payment can be retried with same or different payment method which means the confirm call can be made again.

connector_transaction_id
string | null

A unique identifier for a payment provided by the connector

frm_message
object

frm message is an object sent inside the payments response...when frm is invoked, its value is Some(...), else its None

metadata
object | null

You 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.

connector_metadata
object
feature_metadata
object
reference_id
string | null

reference to the payment at connector side

payment_link
object
profile_id
string | null

The business profile that is associated with this payment

surcharge_details
object
attempt_count
integer
required

total number of attempts associated with this payment

merchant_decision
string | null

Denotes 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_id
string | null

Identifier of the connector ( merchant connector account ) which was chosen to make the payment

incremental_authorization_allowed
boolean | null

If true incremental authorization can be performed on this payment

authorization_count
integer | null

Total number of authorizations happened in an incremental_authorization payment

incremental_authorizations
object[] | null

List of incremental authorizations happened to the payment

fingerprint
string | null

Payment Fingerprint