Transaction feedback
Processing transactions via our GoPay API means
- Creating payments (as authorisation or Direct Sale requests).
- Following-up on these payments via maintenance operations.
Consequentially, a transaction goes through various stages and statuses. Updating your transaction database accordingly is crucial for your business operations, so you need to have the possibility to request its status any given moment.
GoPay offers various means to do so, covering multiple use cases.
Are you migrating from legacy to GoPay?
Familiarize yourself with the key differences between our legacy platform and the GoPay API via our Follow-up on transactions guide.
Overview
For all the stages within a transaction’s life cycle, the GoPay API provides different ways to follow-up on a transaction’s status.
When creating the initial payment via CreateHostedCheckout/CreatePayment requests, you get an instantaneous reply from our platform. However, neither of these endpoints are suitable for getting the transaction status at a later point.
To get the transaction’s status anytime at a later point, you can do the following:
- Manually look up the transaction’s status via the Merchant Portal or the e-Portal.
- Send requests to our dedicated API endpoints.
- Implement webhooks.
Let us discuss each option and applicable use cases.
Refer to the decision matrix for a comprehensive overview of the different methods and applicable use cases.
Refer to our dedicated Statuses for a full overview about all statuses, their meanings and possible follow-up actions.
Merchant Portal
The Merchant Portal is a user-friendly interface for manually checking the status of a transaction. In the "Transactions" tab, you can search, filter, and view each payment's status, amount, and customer details. This manual workflow provides immediate visibility without the need for technical integration, making it ideal for ad-hoc inquiries and basic monitoring by non-technical staff.
Refer to the dedicated chapter in our Merchant Portal guide to learn more.
Transaction management in the e-Portal
Are you using the e-Portal?
Refer to the dedicated "Reporting" chapter in our e-Portal guide covering this subject.
GoPay API Endpoints
The GoPay API offers dedicated endpoints to follow up on transactions, enabling automated monitoring and integration into your webshop infrastructure:
- GetHostedCheckout enables status updates for Hosted Checkout Page. Unlike GetPayment/GetPaymentDetails, it accepts a hostedCheckoutId (not a payment.id, which may have a different format) to report customer activity and transaction results. You can monitor the checkout in real time as the process unfolds. The hostedCheckoutIdexpires after three hours. To follow up on transactions after that period, use GetPayment or GetPaymentDetails instead.
- GetPayment allows you to follow up on a transaction regardless of the original integration method. It accepts only the original payment.id from the initial CreatePayment/CreateHostedCheckout request. GetPayment returns the global transaction status, which is useful for quick status checks.
- GetPaymentDetails also enables you to follow up on a transaction regardless of the original integration method. Unlike GetPayment, GetPaymentDetails accepts any payment.id from either the initial CreatePayment/CreateHostedCheckout request or subsequent maintenance operations.
GetPaymentDetails provides a complete history of maintenance operations performed on the transaction. This makes it ideal for detailed analysis requiring the full transaction history.
Use the following code samples for sending requests to these API endpoints:
GetHostedCheckout
GetPayment
GetPaymentDetails
Are you migrating from legacy to GoPay?
Legacy distinguishes between a global transaction status (the PAYID) and the history level of a transaction (the PAYIDSUB). Hence, legacy returns the PAYID/PAYIDSUB as separate instances in Direct Maintenance requests as shown here:
<!--?xml version="1.0"?-->
<ncresponse orderid="99999" payid="4373667397" payidsub="3"
ncstatus="0" ncerror="" ncerrorplus="" acceptance="12345" status="91"
amount="125" currency="EUR"></ncresponse>
GoPay replaces the PAYID/PAYIDSUB logic in favour of property payment.id. Our platform returns a separate, unique payment.id for every CreatePayment request and every maintenance operation, which implements the formula PAYID_PAYIDSUB:
{
"creationOutput": {},
"payment": {
[other data omitted]
"id": "4373719828_0"
}
}
Therefore, use the full, intact payment.id when sending GetPayment/GetPaymentDetails requests.
To familiarize yourself with this payment.id logic, we strongly recommend referring to the API Reference for request/response samples and performing test via the API Explorer.
Webhooks
Webhooks are notifications, automatically sending transaction information to your system as events occur. These messages originate from our platform and are sent to your server, giving updates on transaction activities. Webhooks cover both new transactions, maintenance operations and track status changes.
Mind that webhooks are asynchronous and are not suitable for updating your transaction status database in real time. If you require real-time updates to adapt the customer’s payment journey, we recommend using API requests.
Refer to our dedicated Webhooks guide for a comprehensive overview.
Decision matrix
Each of the methods have difference in terms of
- Integration requirements.
- Input/output data.
- Applicable use cases.
Refer to this table to select the best fit for your business needs.
| Merchant Portal | GetHostedCheckout | GetPayment | GetPaymentDetails | Webhooks | |
|---|---|---|---|---|---|
| Technical integration | No-code web browser access | Server-to-Server GET request | Server-to-Server GET request | Server-to-Server GET request | Automated, push-based notifications to your server |
| Real-time capability | Immediate visibility when manually accessed | Real-time when requested | Real-time when requested | Real-time when requested | Asynchronous, not suitable for real-time database updates |
| Request identifiers | Search by various criteria | hostedCheckoutId only | payment.id from initial payment request only | Any payment.id from either initial payment request or any subsequent maintenance operations | N/A (push-based) |
| Data Scope | Payment status, amount, customer details | Customer checkout activity and transaction results | Global transaction status | Complete transaction history and maintenance operations | Transaction activities, maintenance operations, status changes for event tracking |
| Time Limitations | Always available | Expires after 3 hours | No expiration | No expiration | N/A |
| Availability | Any integration method | Hosted Checkout Page transaction only | Any integration method | Any integration method | Any integration method |
| Use Cases | Basic monitoring, occasional checks | Real-time checkout progress tracking for Hosted Checkout sessions | Quick automated status verification | Detailed transaction analysis/historical data | Automated notifications, event tracking |