Canadian Transaction

The following rules ONLY apply to transactions processed in Canadian Dollars (CAD). The primary difference from the normal rules is that you should use void transactions until the transaction has been settled. After that you must use refund transactions.

Voiding a Transaction

POST https://gateway-api.paycertify.com/api/transactions/{transaction_id}/void

For CAD transactions it is possible to void a transaction until they have been settled. You should use the transaction ID response field to reference the transaction being voided. A void cancels a previously made sale or a previously made authorization even if it has been captured. Additionally the void releases the authorized balance on the customer’s card.

Refunding a Transaction

POST https://gateway-api.paycertify.com/api/transactions/{transaction_id}/refund

A refund should be run when running a reversal for a transaction that has been settled. A refund flags the transaction to be sent for settlement and returns the funds to the customer. To refund a transaction that has not yet been settled you must either:

  • Submit the refund request after the transaction has settled.
  • Submit a void request (Caution: it is not possible to do a partial void for CAD transactions).

Batch Settlement Time

For CAD transactions, there is a daily transaction cut off time. It takes 2-4 hours after the cut off before the transactions settles. During this time window the status of the transaction will be reported as unsettled, however the transactions will actually be in an indeterminate state, (at some point during the window the transactions will settle).

Downtime Window

Since it may be unknown if the transaction has settled, it can be difficult to know which endpoint to use void or refund. If your business has a downtime window (where no transactions are processed) the best way to resolve this issue is to contact PayCertify, we can change the cut off time for your account, so that the window aligns with your downtime.

This makes is easy to determine the correct endpoint to use:

  • Same day transactions should use void
  • Previous day transactions should use refund

No Downtime Window

For customer that don’t have a downtime window, it is still recommended you call PayCertify and identify which cut off time will least impact your business.

Once the cut off time/window is established any transaction outside the “cut off window” can be processed the same as before:

  • Same day transactions should use void
  • Previous day transactions should use refund

Transactions inside the Window

The only way to handle a partial refund (a refund for less than the total amount), during the “cut off window” is to wait for the window to end, then submit the refund request.

This strategy is also recommended for “full” refunds. However there is another option available for “full” refunds:

  • Attempt to process a void transaction first.
  • If the void fails re-submit the request as a refund

If a transaction has already settled and a void request is attempted, PayCerify will respond with the following Payload:

{
  "error": {
    "message": {
      "base": [
        "Cannot \"void\" a transaction that has been already settled. For that, use \"refund\"."
      ]
    },
    "status": 422
  },
  "debug": []
}

Please note: this particular response is not authoritative. Please try submitting a refund after receiving any non-successful response to the void request. It is not possible for both the void and the refund to succeed.

Typical Timings

Given a default merchant profile/configuration, the following timings are typical:

Time (UTC) Event Description
20:30 Auto Capture Batch All authorized transactions are captured
22:00 Transaction Cutoff Transactions are submitted to be settled
02:00 Transactions Settled Approximate time that the settlement batch is completed
02:20 Settled state visible The updated/settled state of the transaction is visibile to the API

Uncaptured Transactions

Given these timings, any transaction that misses the 20:30 UTC cutoff will need to wait until 20:30 UTC the next day for processing to continue.

Sale and Captured Transactions

Any transaction that misses the 22:00 UTC cutoff will need to wait until 22:00 the next day for processing to continue.

Before each transaction has been settled (typically at around 02:00 UTC)

  • You can only void the transaction.
  • You cannot refund the transaction.

After each transaction has been settled (typically at around 02:00 UTC)

  • You cannot void the transaction.
  • You can only refund the transaction.

Newly Settled Transactions

For a short period of time (typicaly less than 1 hour) each day, the settled status of a newly settled transaction will not yet be visble via the API. During this time window - between the cutoff (22:00 UTC) and when the API shows the updated settlement status (2:20 UTC) it is recommended that merchants:

  • First try to void the sale/capture.
  • If the void fails - then try a refund.