To process transactions through Netaxept, you need to follow a certain flow. This flow can be broken up into different steps that are described in more detail below.
Once the customer has confirmed the order, send the Register call to Netaxept. The purpose of the Register call is to send all the data needed to complete a transaction to Netaxept. During the registration, Netaxept accepts and stores the transaction, and replies back with a transaction ID that refers to this transaction.
Test: https://test.epayment.nets.eu/Netaxept/Register.aspx Production: https://epayment.nets.eu/Netaxept/Register.aspx
In the Terminal phase, the customer is forwarded to payment window for entering their payment method information and executing the possible 3D Secure authentication. Depending on your technical API implementation, the customer chooses the payment method either in your webshop site or by using Netaxept or merchant hosted payment window. You need to define this in the Register call.
In PHP the common problem redirecting to the Terminal might be output buffering turned off. As a result PHP fails to send "Location" HTTP header (redirect) in case any error or warning message is outputted prior to header sending attempt. In that case PHP also emits "Cannot modify header information - headers already sent" warning. Similar problem may appear in ASP.NET Forms, if HttpResponse.Flush() is called before HttpResponse.Redirect().
After the Terminal phase, the customer is redirected to the URL specified in the Register call. Further processing is depending on the payment method used. Card payments need to be authorized within 24 hours of the customer being redirected back from the payment window, whereas for example direct bank payments are automatically authorized and captured by Netaxept after the successful registration and Terminal phase.
Test: https://test.epayment.nets.eu/terminal/default.aspx?merchantId=[MERCHANTID]&transactionId=[TRANSACTIONID] Test (for mobile): https://test.epayment.nets.eu/terminal/mobile/default.aspx?merchantId=[MERCHANTID]&transactionId=[TRANSACTIONID] Production: https://epayment.nets.eu/terminal/default.aspx?merchantId=[MERCHANTID]&transactionId=[TRANSACTIONID] Production (for mobile): https://epayment.nets.eu/terminal/mobile/default.aspx?merchantId=[MERCHANTID]&transactionId=[TRANSACTIONID]
When you want to process the payment by reserving the amount previously set in the Register call, send the Process (Auth) call to Netaxept.
According to card acquirers, capture may not be performed until the product or service has been delivered to the customer or there is certainty regarding its delivery. In between, the merchant has the right to reserve the amount on the customer's account.
Both registration and authorization need to receive OK status from Netaxept in order for the payment to be processed successfully. Whether the payment was processed with status OK or not, a reply is sent back to the merchant, enabling the merchant to send a "Thank you" or an error message to the customer.
Test: https://test.epayment.nets.eu/Netaxept/Process.aspx => operation=AUTH Production: https://epayment.nets.eu/Netaxept/Process.aspx => operation=AUTH
If you want to check a card account status in order to ensure that the card used in the purchase is currently valid and active, you can perform account verification by using the Process (Verify) call. It is a compliant way following Visa and Mastercard rules to verify card account without doing a real purchase. The Process (Verify) call can be used in place of the Process (Auth) call, and it will not lead to a balance reservation on the customer's card account. It is mostly applicable when registering a card and creating token for future purchases, to confirm that the card is current and can be stored for future use.
For the time being the Process (Verify) call is supported for Visa, Mastercard and Dankort card payments but not for other payment methods like American Express and Diners Club payment cards.
Test: https://test.epayment.nets.eu/Netaxept/Process.aspx => operation=VERIFY Production: https://epayment.nets.eu/Netaxept/Process.aspx => operation=VERIFY
If you want to immediately capture the amount previously set in the Register call, send the Process (Sale) call to Netaxept. In this case, Netaxept makes the automatic authorization for the payment before the capture.
According to card acquirers, this is allowed when the merchant sells online services or products with immediate delivery. If you cannot deliver immediately, please don't use the Process (Sale), but instead implement the Process (Auth) call and later execute the Process (Capture) call.
Test: https://test.epayment.nets.eu/Netaxept/Process.aspx => operation=SALE Production: https://epayment.nets.eu/Netaxept/Process.aspx => operation=SALE
When you want to capture the amount that was previously reserved on the customer's account, send the Process (Capture) call to Netaxept. During capture, the customer's account is captured up to the authorised amount. If necessary, you may capture only a part of the authorised amount.
If you previously sent the Process (Sale) call, the amount is already captured, and you cannot perform the Process (Capture) call anymore.
Test: https://test.epayment.nets.eu/Netaxept/Process.aspx => operation=CAPTURE Production: https://epayment.nets.eu/Netaxept/Process.aspx => operation=CAPTURE
If the purchase is cancelled and you have only authorised the corresponding payment, you need to cancel the authorisation by using the Process (Annul) call. During the cancellation, the cash provision previously made for the customer's account is cancelled.
If you have already performed the Process (Capture) call or the Process (Sale) call, the amount has already been captured from the customer, and Process (Credit) call need to be done instead.
Test: https://test.epayment.nets.eu/Netaxept/Process.aspx => operation=ANNUL Production: https://epayment.nets.eu/Netaxept/Process.aspx => operation=ANNUL
If the customer returns the product or the purchase is cancelled for any other reason, and you have already captured the payment, you need to credit a previously captured amount by performing the Process (Credit) call. During the credit, the captured amount is returned to the customer's account. If necessary, you can credit only a part of the captured amount.
Test: https://test.epayment.nets.eu/Netaxept/Process.aspx => operation=CREDIT Production: https://epayment.nets.eu/Netaxept/Process.aspx => operation=CREDIT
We highly recommend you to implement the Query call as part of the payment process. The Query call can be used to request information related to the transaction from Netaxept. Netaxept then returns detailed information concerning the transaction, such as the status of the transaction and the payment method used. The Query call can be used for example in the following cases:
- If the payment method used by the customer is not known after the Register call, use the Query call to find out the payment method and then take the further action based on that.
- If you receive an error, use the Query call to get the full information available to do error handling and allowing a better response to the customer.
- If you are unsure about the status of the transaction, use the Query call to check that the transaction has the correct status and the payment has succeeded.
- If you have implemented Recurring payments or Easy payment, run the Query call on the initial transaction to find out the panHash that needs to be stored on the customer profile for future purchases.
Test: https://test.epayment.nets.eu/Netaxept/Query.aspx Production: https://epayment.nets.eu/Netaxept/Query.aspx
Besides the Query call, we recommend you to implement Callback function, especially if you are using direct bank payments. In Callback, Netaxept will automatically inform you when the status of the transaction changes. The Callback must always be followed by the Query call. Read more about Callback >
If you want to request data on transactions included to certain settlement batch(es), send the GetBatch call to Netaxept. Netaxept then returns detailed information concerning the batch(es) and its transactions. Export this data to your SAP or similar systems and use it for reconciliation or reporting purposes.