Appearance
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_idHTTP 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: 500json
{
"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.
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | Payment status |
| Property | Value | Description (status_info) | Is it a final status? |
|---|---|---|---|
| anonymous | NEW | Payment has just been initiated. No customer action yet. | No |
| anonymous | PENDING | Payment ongoing. Waiting for customer to complete payment. | No |
| anonymous | BANK_CONNECTION_FAILED | BANK CONNECTION FAILED: Unable to contact the bank. You can still retry with another bank. | No |
| anonymous | AWAITING_CONFIRMATION | Awaiting bank verification or customer action on the bank side. | No |
| anonymous | PROCESSING | Payment is being processed by the bank. Settlement has not been done yet. Be aware that it can be REJECTED. | No |
| anonymous | FORCE_PAID | Payment has been manually marked as accepted. | Yes |
| anonymous | PAID | Payment has been accepted by the bank and funds transfer is ongoing. In rare cases, banks can block these transfers for AML issues. | Yes |
| anonymous | PAID_RECEIVED | Payment has been accepted by the bank and received into your bank account. | Yes |
| anonymous | EXPIRED | Customer did not complete the payment before the payment validity period elapsed. | Yes |
| anonymous | CANCELLED | Customer abandoned the payment. | No |
| anonymous | FAILED | Cancelled or rejected by the bank. | Yes |
| anonymous | AUTH_FAILED | Error on authentication with the bank. | Yes |
| anonymous | EXECUTE_FAILED | Bank error while executing the payment. | Yes |
The same list is available on the Response Status page.
PAID vs. PAID_RECEIVED
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 received | Recommended action |
|---|---|
NEW, PENDING, AWAITING_CONFIRMATION | Wait. The customer has not finished the payment. |
PROCESSING | Do 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. |
PAID | Fulfil only after you have verified the funds in your bank account (see the note above). |
PAID_RECEIVED | Fulfil. Funds are settled on your account. |
FORCE_PAID | Fulfil, 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_FAILED | Do not fulfil. Release any reserved stock and let the customer retry with a new payment. |
BANK_CONNECTION_FAILED | Do 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 code | Meaning |
|---|---|
| 400 | Invalid or missing information |
| 403 | Action not allowed |
| 404 | Payment not found |
| 500 | The 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.