How to process payments
Once you've enrolled the payment for your merchant, you can start processing payments. The following section shows how.
Before you start
In order to process payments, you MUST have received the payment_method_configuration_id
.
You also MUST have subscribed to the relevant notifications.
Overview
To process payments you use the Processing Service. You can find the service definitions in the corresponding .proto file and in our API reference.
The Processing Service contains the following methods:
-
Authorize - allows for a payment to get authorized and returns a status, as a result, the payment is reserved, ready for capture
-
Cancel - allows to cancel a payment that has been authorized but not captured yet
-
Capture - captures the funds - returns a status
-
Charge - allows to directly charge the account and to skip authorize and capture
-
Refund - allows to refund (partially or total)
-
GetSummary - returns the payment specific data, according to the
payment_id
-
GetOperationsSummary - returns the payment specific data, according to the
payment_id
What calls can be send depends on the payment method. Please find the specifics per payment method in our payment methods section.
Authorize Request
To process payments, you use the payment processing service. You can find the .proto file's detailed description in our API reference section.
The initial request you send in order to process payments is either the Authorize or the Charge call. If successful, you'll receive a redirectURL
in the response. In a final step you must then send the redirectURL
to the merchant.
Wheter you must send an Authorize or Charge call depends on the used payment methods.
The AuthorizeRequest
requires the payment_method_configuration_id
, the request_id
, the reference
, the payment_method
, the order
and the data
. The data
object depends on the chosen payment method.
We will explain each of these values now.
Payment Method Configuration
You've received the payment_method_configuration_id
as a result of the Payment Method Enrollment service's Enroll Request.
Request id
The request_id
refers to this specific request. You can freely choose its value.
Payment Method
This is the payment method used for this payment.
Please note that the payment method must be successfully enrolled for the merchant first.
Order
The order
field requires another structured object which consists of the amount
, the currency
and the optional reference
.
Data
This is the AuthorizeRequestData from the paymentmethod.proto
The data field expects an object that corresponds with the payment_method value. So, from the payment methods that require the AuthorizeRequest call (insted of the ChargeRequest call, you MUST choose the structured object for this specific payment method as a value here.
Example:
Express Bank is a payment method that requires the AuthorizePayment call to be sent. The data
field's value MUST be the structured object as defined in the API reference.
Processing flows
There are basically to flows to process them. Which off them MUST be followed, depends on the payment method.
Separate capture
This flow allows to authorize the payment and then capture it in a second step. The advantage is, that after authorizing the payment and before capturing the funds, the payment can be canceled.
Some payment methods allow to partially capture from the authorized amount (such as Twint, for example) while others only allow to capture the complete amount (ExpressBank).
Charge
While for most of the payment methods that allow separate capture to skip these steps and process the charge request right away is an option, others do not allow separate capture and require the charge call.
Please check our Payment Method section for the payment specific requirements. We will explain each of these messages below.