Authorizing an invoice

There are actually 2 steps involved in capturing a payment. First, the payment is authorized. This step involves checking that the customer has enough money in their account to settle the payment and then "locking" that money so that it is not available for other payments. The second step is the capture itself, which involves booking the final money transfer between banks.

For Merchant Initiated Transactions (MITs), the payment is automatically authorized when you call capture() but you can call authorize() explicitly to perform the authorization as a separate step. You can authorize a payment up to 7 days before capturing it, which may be useful for fraud checking, for example.

For Customer Initiated Transactions (CITs) you must authorize the invoice separately on the client to comply with Strong Customer Authentication (SCA) legislation. See the page about authorizing a payment for more information and examples.

You can also use the auto_capture_at option with the authorize() function to arrange for the payment to be captured automatically after a time delay. The value for auto_capture_at is a date and time in RFC 3339 format that specifies the time when you want the capture to happen. (UTC only such as "2026-05-11T17:33:00Z". Timezone offset will get stripped)

Note that if you do authorize a payment then you can call the capture() function without specifying a payment source. The source you supply during authorization will be used for the capture.

Path Params
string
required

The invoice ID generated by ProcessOut during the invoice creation

Body Params
string

Source used to authorization the payment. Can be a card, a token or a gateway request.

boolean

Optional if you want us to save the payment source (card or APM) by creating a customer token during the authorisation

string

Override the scheme ID

boolean
Defaults to false

Request a pre-authorization that can be incremented at a later stage

string

Scheme the customer would prefer to process transaction on. Ex: carte bancaire. If there is already a default set on the card object, then you can override it using this field. Please use none if you wish to override it back to empty for this request.
Only supported on compatible payment providers.

external_three_d_s
object

Allow you to pass 3DS data obtained from an external provider outside of ProcessOut. Please contact your CSM to ensure the PSPs you are routing towards support this functionality.

Headers
string

Unique key to your request that will be used for idempotency

Responses

Language
Credentials
Basic
base64
:
LoadingLoading…
Response
Choose an example:
application/json