Skip to content

Get payment details

This endpoint allows the retrieval of payment status based on the payment ID.

Endpoint GET

http
/api​/payment​/{payment_id}

Headers

http
'Authorization: Bearer {access-token}'

Parameters

http
payment_id

HTTP Code sample

1curl --request GET 'https://api-gateway-sandbox.huch.tech/api/payment/payment_id' \
2--header 'Authorization: Bearer '

200 Response sample

json
{
    "payment_status": "NEW",
    "status_info": "Transaction has just been initiated. No customer action yet.",
    "payment_id": "b2c4643c-38ea-4f82-4222-8589bd0d7d60",
    "shop_name": "Merchant Shop Name Title",
    "type": "WIRE_TRANSFER",
    "currency": "EUR",
    "amount": 970,
    "label": "ChristmasGifts",
    "merchant_id": "9431608a-3204-4435-b546b-54c27717be73",
    "merchant_name": "Huch Test Company",
    "merchant_logo": "",
    "url": "https://sandbox.huch.tech/pay/b2c4643c-38ea-4f82-4222-8589bd0d7d60",
    "is_mobile_platform": null,
    "order_ref": "42837M",
    "environment": "SANDBOX",
    "redirect_url": "https://myshop.com/checkout/payment-pending?payment_id=b2c4643c-38ea-4f82-4222-8589bd0d7d60&paymnt_status=NEW",
    "bank_id": null,
    "qr_code": ""
}

No data found Response:

500 Internal Server Error

Code: 500
json
{
  "message": "Internal error : No query results for model [App\\Models\\Payment]."
}

Payment status list

Always drive your integration from the payment_status field. The status field is deprecated and must not be used.

NameTypeRequiredRestrictionsDescription
anonymousstringfalsenonePayment status
PropertyValueDescription (status_info)Is it a final status?
anonymousNEWPayment has just been initiated. No customer action yet.No
anonymousPENDINGPayment ongoing. Waiting for customer to complete payment.No
anonymousBANK_CONNECTION_FAILEDBANK CONNECTION FAILED: Unable to contact the bank. You can still retry with another bank.No
anonymousAWAITING_CONFIRMATIONAwaiting bank verification or customer action on the bank side.No
anonymousPROCESSINGPayment is being processed by the bank. Settlement has not been done yet. Be aware that it can be REJECTED.No
anonymousFORCE_PAIDPayment has been manually marked as accepted.Yes
anonymousPAIDPayment has been accepted by the bank and funds transfer is ongoing. In rare cases, banks can block these transfers for AML issues.Yes
anonymousPAID_RECEIVEDPayment has been accepted by the bank and received into your bank account.Yes
anonymousEXPIREDCustomer did not complete the payment before the payment validity period elapsed.Yes
anonymousCANCELLEDCustomer abandoned the payment.No
anonymousFAILEDCancelled or rejected by the bank.Yes
anonymousAUTH_FAILEDError on authentication with the bank.Yes
anonymousEXECUTE_FAILEDBank error while executing the payment.Yes

The same list is available on the Response Status page.

IMPORTANT

PAID is not proof that funds have arrived. It means the customer's bank confirmed that the transfer was initiated. Huch reports PAID when it does not receive a settlement confirmation from the merchant's bank.

When you receive PAID, you must confirm the funds in your own bank account before delivering goods or services. In rare cases a bank can still block or reverse the transfer (for example for AML reasons).

PAID_RECEIVED is the accurate settlement status: it is only sent once Huch has received confirmation from the merchant's bank that the funds have landed on the merchant account.

When to fulfil an order

Status receivedRecommended action
NEW, PENDING, AWAITING_CONFIRMATIONWait. The customer has not finished the payment.
PROCESSINGDo not fulfil yet. The bank is still processing and the payment can still be rejected. Some banks never send a final status — reconcile against your bank account.
PAIDFulfil only after you have verified the funds in your bank account (see the note above).
PAID_RECEIVEDFulfil. Funds are settled on your account.
FORCE_PAIDFulfil, if Fast Approval is enabled for your account. You accept the residual risk that the bank rejects the transfer later.
EXPIRED, CANCELLED, FAILED, AUTH_FAILED, EXECUTE_FAILEDDo not fulfil. Release any reserved stock and let the customer retry with a new payment.
BANK_CONNECTION_FAILEDDo not fulfil. The customer can retry with another bank on the same payment.

For a fuller walkthrough of these statuses see the Integrations FAQ and, for the notification side, Webhook Security.

Errors

See the Errors & Error Codes page for the shared error format and retry guidance.

Error codeMeaning
400Invalid or missing information
403Action not allowed
404Payment not found
500The requested payment could not be found or processed

A 500 error may occur when the requested payment reference does not exist or when the system is unable to retrieve the payment information.