When a customer initiates a payment on your checkout page, you need to trigger a payment flow. A payment flow executes a number of steps in which you invoke all required API requests that are needed to complete the payment. Actions that occur outside a flow (such as refunding a customer) are called operations.
When accepting your first payment, you explored a one-step payment flow in which you immediately transferred the charged amount to your acquiring bank. It is also quite common, however, to temporarily lock the funds for a particular payment and only transfer the funds at a later stage. This is known as a two-step, or Authorize-Capture, payment flow: your customer authorizes the payment during checkout, but you only transfer (capture) the funds to your acquiring bank when the goods or services are delivered.
A charge is a one-step payment flow that combines the Authorize-Capture steps into a single transaction. Funds are transferred from your customer’s account to your acquiring bank once the payment has been authorized.
When you need to return funds to a customer or cancel an operation, you have two options:
- Refund: a refund allows you to cancel or undo a sale and return the charged amount to the customer.
- Void: a void cancels an operation (such as an authorization or capture), before it has been finalized. The most common procedure is to void an authorization.
There may be scenarios in which you need to transfer funds from your account directly to your customer, unrelated to a previous customer transaction. You can do this by invoking a Create Credit request, which credits your customer’s credit card for the amount you specify.
Flows may vary in their communication modes and in the steps you may require customers to follow in order to complete a payment. In this topic we will explore two types of communication modes that a payment flow may implement: asynchronous and synchronous modes. We will also explore the implementation of a redirection flow as means of redirecting customers to a third party platform for completing additional steps needed to finalize a payment.