This page explains how to add Afterpay to your existing Web Components integration.
Requirements
Select the server-side flow that your integration uses:
When making an Afterpay payment, you also need to:
- Collect shopper details, and specify these in your payment request. Afterpay uses these for risk checks.
- Provide information about the purchased items.
- Make sure that you use a supported combination of country/region and currency.
API reference
Select which endpoint you are using:
Component configuration
Step 1: Create a DOM element
Create a DOM element on your checkout page, placing it where you want the payment method form to be rendered:
<div id="afterpaytouch-container"></div>
Step 2: Create an instance of the Component
v6.0.0 or later
Create an instance of the Component, passing:
- Your instance of
AdyenCheckout.
const afterpaytouch = new Afterpay(checkout).mount('#afterpaytouch-container');
v5.x.x or earlier
Use the create method of your AdyenCheckout instance, in this case checkout, to create the Component:
const afterpaytouchComponent = checkout.create('afterpaytouch').mount('#afterpaytouch-container');
Pre-filled shopper data
You can add configuration with the shopper's company and personal information to pre-fill the payment form.
The data property includes the following information that you can pre-fill:
| Property | Description | Data type |
|---|---|---|
companyDetails.name |
The registered name of the company. | String |
companyDetails.registrationNumber |
The official business registration number. | String |
personalDetails.firstName |
The shopper's first name. | String |
personalDetails.lastName |
The shopper's last name. | String |
personalDetails.shopperEmail |
The shoppers' email address. | String |
billingAddress.street |
The street name for the billing address. | String |
billingAddress.houseNumberOrName |
The house number or name for the billing address. | String |
billingAddress.postalCode |
The postal code for the billing address. | String |
billingAddress.city |
The city for the billing address. | String |
billingAddress.country |
The two-character ISO 3166-1 alpha-2 country code for the billing address. | String |
deliveryAddress.street |
The street name for the delivery address. | String |
deliveryAddress.postalCode |
The postal code for the delivery address. | String |
deliveryAddress.city |
The city for the delivery address. | String |
deliveryAddress.country |
The two-character ISO 3166-1 alpha-2 country code for the delivery address. | String |
If you do not have pre-filled data, you can instead get the information from the shopper in the payment form.
Payment form fields configuration
In the payment form, you can configure if groups of fields are visible or can be edited by the shopper.
Use the visibility property to configure groups of fields with the possible values:
- hidden: The fields do not show up in the payment form.
- readOnly: The fields show up in the payment form with the pre-filled values. The shopper cannot change the values. If you set any group of fields with this value, you must provide the corresponding information in the pre-filled object.
- editable: The fields show up in the payment form with the pre-filled values. The shopper can change the values.
| Fields | Default value |
|---|---|
companyDetails |
editable |
personalDetails |
editable |
billingAddress |
editable |
deliveryAddress |
editable |
Capture the payment
Depending on your merchant account configuration, Afterpay payments are captured automatically after authorisation, or manually captured. If you prefer to capture the payment after the goods have been sent, you need to set up a capture delay or use manual capture. To partially capture a payment, you also need to use manual capture.
Afterpay payments have to be captured within 13 days after authorisation.
During authorisation, the shopper is charged for the first installment. If the payment is not captured within 13 days, before the second installment, Afterpay cancels the payment and refunds the first installment to the shopper.
For testing purposes, Afterpay authorisations expire in one day. When you use manual capture, you need to capture test Afterpay payments within one day after authorisation.
Full or partial manual captures
When you use manual capture, in your /payments/{paymentPspReference}/captures request specify:
- amount.value: the full or partial amount that the shopper should pay.
- lineItems: (optional) price and product information for the items that the shopper should pay for.
Any unclaimed amount that is left over after partially capturing a payment is automatically cancelled. When your account is enabled for multiple partial captures, the unclaimed amount after an initial capture is not automatically cancelled.
To set up multiple partial captures, contact our Support Team. Multiple partial captures will create a new invoice for each capture.
Refunds and cancellations
If a payment has not yet been captured, you can cancel it. If a payment has already been captured and you want to return the funds to the shopper, you need to refund the payment.
Full or partial refunds
To fully or partially refund a payment, in your /payments/{paymentPspReference}/refunds request specify:
- amount.value: the full or partial amount to be refunded to the shopper.
- lineItems: (optional) price and product information about the refunded items.
Discounts
To offer discounts, your payment request must include the negative amount to be added to the original price. The following example shows how to specify a discount of 1 AUD on Item #2:
{
"amount":{
"value":800,
"currency":"AUD"
},
...
"lineItems":[
{
"description":"Test Afterpay 1",
"quantity":"1",
"amountIncludingTax":"400",
"id":"Item #1"
},
{
"description":"Test Afterpay 2",
"quantity":"2",
"amountIncludingTax":"300",
"id":"Item #2"
}
{
"description":"Discount",
"quantity":"2",
"amountIncludingTax":"-100",
"id":"Item #2 Discount"
}
]
}
Test and go live
To test Afterpay payments, you need a test shopper account in the Afterpay sandbox environment. If you are testing in multiple countries or regions, create a different test account for each.
To create a test account:
- Go to https://portal.sandbox.afterpay.com/.
- Enter a real email address and select Continue. You'll get confirmations of payments and refunds like any other shopper on this email address.
- From the drop-down menu, select the country/region for which you want to create a test shopper account. Select Australia, New Zealand, US, or Canada.
- Enter a unique mobile number in the correct format and select Continue. Ensure the number is not associated with an existing account to avoid being redirected to a login page.
- When you are prompted to enter your SMS verification code, enter 111111.
- Follow the instructions on your screen to complete your profile, accept the terms and conditions, and select Continue.
To test payments, add a test card to your Afterpay test shopper account.
You can use the card details provided in the Afterpay developer documentation, or use one of the Adyen test cards. Use CVV 000 to simulate authorised payments, or CVV 051 to simulate refused payments.
You can check the status of test payments in your Customer Area > Transactions > Payments.
Before you can accept live Afterpay payments, you need to submit a request for Afterpay in your live Customer Area.