Skip to content

    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.