Capture and Daily Closing

These two features are extremely important Saferpay features. Depending on the means of payment, the two can be directly associated with each other, and they must be carried out for the cash flow to be initiated to the merchant’s account. If no capture and batch has been executed, no money will be transferred.

This is why this dedicated chapter is so important. Here, we'll cover, what the capture is, how it is triggered and how you know, that it must be triggered.

Capture

The Capture serves to book and thus to conclude/finalize a payment. As long as a transaction has not passed through the capture, the amount is merely reserved (“authorized”), but it will not be transferred to the merchant account. This is, why the capture is so important.

On the API side, you receive information about the transaction via the Transaction.Status parameter, e.g. through the PaymentPage Assert, or Transaction Authorize. Transactions which have not yet been booked are visible in Saferpay Backoffice as "Reservation", Reservations are marked as "AUTHORIZED" on API-level and have to go through the Capture, to be finalized:

"Transaction": {
  "Type": "PURCHASE",
  "Status": "AUTHORIZED",
  "Id": "MUOGAWA9pKr6rAv5dUKIbAjrCGYA",
  "Date": "2015-09-18T09:19:27.078Z",
  "Amount": {
    "Value": "100",
    "CurrencyCode": "CHF"
  },
  "AcquirerName": "AcquirerName",
  "AcquirerReference": "Reference"
}

If a transaction has already passed through, or does not need the capture, the status is changed to “CAPTURED”:

"Transaction": {
  "Type": "PURCHASE",
  "Status": "CAPTURED",
  "Id": "MUOGAWA9pKr6rAv5dUKIbAjrCGYA",
  "Date": "2015-09-18T09:19:27.078Z",
  "Amount": {
    "Value": "100",
    "CurrencyCode": "CHF"
  },
  "AcquirerName": "AcquirerName",
  "AcquirerReference": "Reference"
}

A Capture may only be executed once! Should a second Capture be attempted, the API will throw an error, informing you, that the Capture already happened:

{
  "ResponseHeader": {
    "SpecVersion": "1.14",
    "RequestId": "93388d85dc4519ea37595121dd8bd4ae"
  },
  "Behavior": "ABORT",
  "ErrorName": "TRANSACTION_ALREADY_CAPTURED",
  "ErrorMessage": "Transaction already captured"
}

Note, that this error doesn't mean, that this transaction has failed. It simply means, that the capture has already been executed, so the transaction is already finalized and the money will be transferred to your bank account.

Not all payment methods need a separate capture to trigger the cash flow. The respective Payment Method chapter will give you the necessary information, if a Capture is needed. However, dynamically reacting on the Transaction.Status parameter is the preferred method, as this enables you to also react to more payment methods, that will be added to your account, down the line, with no, or just minimal code-changes.

Payment methods, that do not need the capture, will return the status "CAPTURED" right away.

Capturing a different amount and Multipart Captures

The Capture can also be used to change the amount of the transaction. It is generally possible to capture less, than initially authorized. So applying things like voucher codes, or similar, is possible. Capturing more than initially authorized, however, may result in an error and is not recommended and sometimes downright blocked. This however depends on your processor/used payment method.

It is important to note, that a Capture can only be performed once. The rest of the authorized amount will be released and can no longer be captured, if you capture less.

However, certain payment methods do support Multipart Captures, which allow you to claim the money in multiple, smaller chunks. Please refer to the given payment method chapter, to see, if Multipart Captures are supported.

Cancel

A Cancel is the direct opposite of a capture. Instead of claiming the money, it releases the authorized amount. A Cancel should always be performed, if you no longer want to Capture the money of a given transaction.

Note, that this does not apply, if you intend on using Partial Captures, as those do work in a different way, also in terms of releasing money! Please read the chapter there, on how to handle Partial Captures.

This is also important to understand, because the Capture and the Cancel are in direct relationship to one another. Generally

  • If a Capture is available, a Cancel can also be performed.

  • If a Capture has been performed, a Cancel can no longer be issued. A Refund has to be executed instead.

    • If a Cancel has been executed, you can no longer Capture the transaction and thus claim the money.

Please refer to the given payment method chapter for more information, as there may be special cases.

Reservation times

A reservation, made through a certain payment processor, may only last for a limited time only. If this timeframe is exceeded, the authorized amount is released and becomes available to the account holder again. This may have the result that the amount can no longer be claimed. We recommend to Capture an authorization as soon as possible. Either by direct API call, or manually via Saferpay Backoffice. If this is not possible, the Capture nonetheless must be done as soon as possible.

The time-frame depends on the given payment method, so there is no rule of thumb. With credit cards, this time-frame is a minimum of 10 days. Everything above that, depends on the cardholders bank.

Third party payment methods, e.g. PayPal may treat this differently though, so you may have to ask them for further information.

Daily Closing

The daily closing follows the capture once daily, automatically at 22h CEST. During this process, all transactions that have passed through the capture are filed with the payment method processor in order. Depending on the payment processor, this is also the point, where all captured transactions are paid out onto the merchant's bank-account. Please contact your processor for the given payment method, if you need more information.

It also serves as a "collecting" step, where all captured transactions are filed together, which then can be viewed inside the Backoffice.

Triggering the Batch Close via API

If desired, this step can also be triggered via the Saferpay API. The request necessary for this is called Batch Close.

However, before you can use the API, you need to disable the daily closing in the Saferpay Backoffice via "Settings -> Terminals" for the respective terminal.

A Batch Close must be carried out only once a day. It is possible to do it multiple times, but it is only recommended to do so, if really needed.

If you deactivate the batch close, but then do not trigger it via API, it will lead to some transactions not being paid out, so make sure, that either one, or the other is being done.

Last updated