On this page, you can find additional configuration for adding Atome to your Components integration.
Before you begin
Before starting your integration:
- Make sure you've built a Components integration.
- Contact our Support Team to add Atome in your test Customer Area.
When making an Atome payment, you also need to:
- Collect shopper details, and specify these in your payment request. Atome uses these for risk checks.
- Provide information about the purchased items.
- Make sure you use a supported combination of country and currency.
Country | countryCode |
amount.currency |
---|---|---|
Malaysia | MY | MYR |
Singapore | SG | SGD |
API reference
Select which endpoint you're integrating:
This is the default with Components v5.0.0 or later.
Parameter | Required | Description |
---|---|---|
shopperName | ![]() |
The shopper's full name. |
shopperEmail | ![]() |
The shopper's email address. |
telephoneNumber | ![]() |
The shopper's phone number. |
billingAddress | ![]() |
The postal address to be included on the invoice. |
lineItems | ![]() |
Price and product information about the purchased items. |
deliveryAddress | The postal address where the goods will be shipped. Optional if billingAddress and deliveryAddress are the same. |
curl https://checkout-test.adyen.com/v69/sessions \
-H "x-API-key: YOUR_X-API-KEY" \
-H "content-type: application/json" \
-d '{
"amount":{
"value":1000,
"currency":"SGD"
},
"shopperName":{
"firstName":"Simon",
"lastName":"Hopper"
},
"shopperEmail":"s.hopper@example.com",
"shopperReference":"",
"reference":"YOUR_ORDER_REFERENCE",
"merchantAccount":"YOUR_MERCHANT_ACCOUNT",
"returnUrl":"https://your-company.com/checkout?shopperOrder=12xy..",
"countryCode":"SG",
"telephoneNumber":"6512345678",
"billingAddress":{
"city":"Singapore",
"country":"SG",
"houseNumberOrName":"109",
"postalCode":"179097",
"stateOrProvince":"Singapore",
"street":"North Bridge Road"
},
"deliveryAddress":{
"city":"Singapore",
"country":"SG",
"houseNumberOrName":"109",
"postalCode":"179097",
"stateOrProvince":"Singapore",
"street":"North Bridge Road"
},
"lineItems":[
{
"description":"Shoes",
"quantity":"1",
"amountIncludingTax":"400",
"amountExcludingTax": "331",
"taxAmount": "69",
"id":"Item #1"
},
{
"description":"Socks",
"quantity":"2",
"amountIncludingTax":"300",
"amountExcludingTax": "248",
"taxAmount": "52",
"id":"Item #2"
}
]
}'
Client client = new Client("Your X-API-KEY", Environment.TEST);
Checkout checkout = new Checkout(client);
CreateCheckoutSessionRequest sessionRequest = new CreateCheckoutSessionRequest();
sessionRequest.setMerchantAccount("YOUR_MERCHANT_ACCOUNT");
sessionRequest.setReference("YOUR_ORDER_REFERENCE");
Amount amount = new Amount();
amount.setCurrency("SGD");
amount.setValue(1000L);
sessionRequest.setAmount(amount);
sessionRequest.setCountryCode("SG");
sessionRequest.setTelephoneNumber("6512345678");
sessionRequest.setShopperEmail("s.hopper@example.com");
Name shopperName = new Name();
shopperName.setFirstName("Simon");
shopperName.setLastName("Hopper");
sessionRequest.setShopperName(shopperName);
sessionRequest.setShopperReference("");
Address billingAddress = new Address();
billingAddress.setCity("Singapore");
billingAddress.setCountry("SG");
billingAddress.setHouseNumberOrName("109");
billingAddress.setPostalCode("179097");
billingAddress.setStateOrProvince("Singapore");
billingAddress.setStreet("North Bridge Road");
sessionRequest.setBillingAddress(billingAddress);
Address deliveryAddress = new Address();
deliveryAddress.setCity("Singapore");
deliveryAddress.setCountry("SG");
deliveryAddress.setHouseNumberOrName("109");
deliveryAddress.setPostalCode("179097");
deliveryAddress.setStateOrProvince("Singapore");
deliveryAddress.setStreet("North Bridge Road");
sessionRequest.setDeliveryAddress(deliveryAddress);
sessionRequest.returnUrl("https://your-company.com/checkout?shopperOrder=12xy..");
LineItem lineItem1 = new LineItem();
lineItem1.setQuantity(1L);
lineItem1.setAmountExcludingTax(331L);
lineItem1.setDescription("Shoes");
lineItem1.setId("Item #1");
lineItem1.setTaxAmount(69L);
lineItem1.setAmountIncludingTax(400L);
LineItem lineItem2 = new LineItem();
lineItem2.setQuantity(2L);
lineItem2.setAmountExcludingTax(248L);
lineItem2.setDescription("Socks");
lineItem2.setId("Item #2");
lineItem2.setTaxAmount(52L);
lineItem2.setAmountIncludingTax(300L);
List<LineItem> lineItems = new ArrayList<LineItem>();
lineItems.add(lineItem1);
lineItems.add(lineItem2);
sessionRequest.setLineItems(lineItems);
CreateCheckoutSessionResponse sessionResponse = checkout.sessions(sessionRequest);
var paymentsRequest = new Adyen.Model.Checkout.PaymentRequest
{
MerchantAccount = "YOUR_MERCHANT_ACCOUNT",
Reference = "YOUR_ORDER_REFERENCE",
Amount = {
Currency = "SGD",
Value = 1000
},
CountryCode = "SG",
TelephoneNumber = "6512345678",
ShopperEmail = "s.hopper@example.com",
ShopperName = {
FirstName = "Simon",
LastName = "Hopper"
},
ShopperReference = "",
BillingAddress = {
City = "Singapore",
Country = "SG",
HouseNumberOrName = "109",
StateOrProvince = "Singapore",
PostalCode = "179097",
Street = "North Bridge Road"
},
DeliveryAddress = {
City = "Singapore",
Country = "SG",
HouseNumberOrName = "109",
StateOrProvince = "Singapore",
PostalCode = "179097",
Street = "North Bridge Road"
},
ReturnUrl = "https://your-company.com/checkout?shopperOrder=12xy..",
LineItems = new System.Collections.Generic.List<LineItem> {
new LineItem {
Quantity = 1,
AmountExcludingTax = 331,
Description = "Shoes",
Id = "Item #1",
TaxAmount = 69,
AmountIncludingTax = 400
},
new LineItem {
Quantity = 2,
AmountExcludingTax = 248,
Description = "Socks",
Id = "Item #2",
TaxAmount = 52,
AmountIncludingTax = 300
}
}
};
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="atome-container"></div>
Step 2: Create an instance of the Component
Use the create
method of your AdyenCheckout
instance, in this case checkout
, to create the Component:
const atomeComponent = checkout.create('atome').mount('#atome-container');
Test and go live
To test Atome payments, you need a test shopper account in the Atome sandbox environment. To request a test account, reach out to your Adyen contact. If you are testing in multiple countries, use a different test account for each country.
To test the QR code flow, download one of the following test apps:
For Malaysia (MY)
For Singapore (SG)
You can check the status of test payments in your Customer Area > Transactions > Payments.
To accept live Atome payments, you must contact our Support Team to add Atome in your live Customer Area.