Are you looking for test card numbers?

Would you like to contact support?

No momento, esta página não está disponível em inglês
Payment-method icon

Zip Component

Add Zip to your Web Components integration.

On this page, you can find additional configuration for adding Zip to your Components integration.

Before you begin

This page assumes you've already:

API reference

Select which endpoint you're integrating:

This is the default with Drop-in v5.0.0 or later.
Parameter name Required Description
shopperName Shopper's first name and last name.
shopperEmail The shopper's email address.
dateOfBirth The shopper's date of birth.
telephoneNumber The shopper's phone number.
billingAddress The address where to send the invoice.
deliveryAddress -white_check_mark- The address where the purchased goods should be delivered.
lineItems -white_check_mark- Price and product information about the purchased items.

You can optionally specify an imageURL to have the picture of the item on the Zip product page. The shopper will see this image when they log into their Zip account. The URL must have a maximum of 500 characters.
curl https://checkout-test.adyen.com/v68/sessions \
-H "x-API-key: YOUR_X-API-KEY" \
-H "content-type: application/json" \
-d '{
  "merchantAccount": "YOUR_MERCHANT_ACCOUNT",
  "reference": "YOUR_ORDER_REFERENCE",
  "amount": {
    "currency": "AUD",
    "value": 1000
  },
  "telephoneNumber": "+61121212121",
  "shopperEmail": "shopper@email.com",
  "shopperName": {
    "firstName": "Simon",
    "lastName": "Hopper"
  },
  "billingAddress":{
     "city":"Sydney",
     "country":"AU",
     "houseNumberOrName":"123",
     "postalCode":"2000",
     "stateOrProvince":"NSW",
     "street":"Happy Street"
  },
  "deliveryAddress":{
     "city":"Sydney",
     "country":"AU",
     "houseNumberOrName":"123",
     "postalCode":"2000",
     "stateOrProvince":"NSW",
     "street":"Happy Street"
  },
  "lineItems":[
     {
        "description":"Shoes",
        "quantity":"1",
        "amountIncludingTax":"400",
        "id":"Item #1"
     },
     {
        "description":"Socks",
        "quantity":"2",
        "amountIncludingTax":"300",
        "id":"Item #2"
     }
  ]
  "dateOfBirth": "1996-09-04",
  "returnUrl": "https://your-company.com/checkout?shopperOrder=12xy.."
}'
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("AUD}");
amount.setValue(1000L);
sessionRequest.setAmount(amount);

sessionRequest.setTelephoneNumber("+61121212121");
sessionRequest.setShopperEmail("shopper@email.com");

Name shopperName = new Name();
shopperName.setFirstName("Simon");
shopperName.setLastName("Hopper");
sessionRequest.setShopperName(shopperName);

BillingAddress billingAddress = new BillingAddress();
billingAddress.setCountry("AU");
billingAddress.setCity("Sydney");
billingAddress.setHouseNumberOrName("123");
billingAddress.setStreet("Happy Street");
billingAddress.setPostalCode("2000");
billingAddress.setStateOrProvince("NSW");

sessionRequest.setBillingAddress(billingAddress);

DeliveryAddress deliveryAddress = new DeliveryAddress();
deliveryAddress.setCountry("AU");
deliveryAddress.setCity("Sydney");
deliveryAddress.setHouseNumberOrName("123");
deliveryAddress.setStreet("Happy Street");
deliveryAddress.setPostalCode("2000");
deliveryAddress.setStateOrProvince("NSW");

sessionRequest.setDeliveryAddress(deliveryAddress);

sessionRequest.setDateOfBirth("1996-09-04");
sessionRequest.returnUrl("https://your-company.com/checkout?shopperOrder=12xy..");

LineItem lineItem1 = new LineItem();
lineItem1.setQuantity(1L);
lineItem1.setDescription("Shoes");
lineItem1.setId("Item #1");
lineItem1.setAmountIncludingTax(400L);

LineItem lineItem2 = new LineItem();
lineItem2.setQuantity(2L);
lineItem2.setDescription("Socks");
lineItem2.setId("Item #2");
lineItem2.setAmountIncludingTax(300L);

List<LineItem> lineItems = new ArrayList<LineItem>();
lineItems.add(lineItem1);
lineItems.add(lineItem2);
sessionRequest.setLineItems(lineItems);

CreateCheckoutSessionResponse sessionResponse = checkout.sessions(sessionRequest);
var checkoutSessionRequest = new CreateCheckoutSessionRequest
{
    MerchantAccount = "YOUR_MERCHANT_ACCOUNT",
    Reference = "YOUR_ORDER_REFERENCE",
    Amount = {
    Currency = "AUD",
    Value = 1000
    },
    TelephoneNumber = "+61121212121",
    ShopperEmail = "shopper@email.com",
    ShopperName = {
    FirstName = "Simon",
    LastName = "Hopper"
    },
    },
    DateOfBirth = new DateTime(1996, 09, 04),
    ReturnUrl = "https://your-company.com/checkout?shopperOrder=12xy..",
    BillingAddress = new Model.Checkout.Address
    {
    City = "Sydney",
    Country = "AU",
    HouseNumberOrName = "123,
    PostalCode = "2000",
    Street = "Happy Street"
    },
    DeliveryAddress = new Model.Checkout.Address
    {
    City = "Sydney",
    Country = "AU",
    HouseNumberOrName = "123,
    PostalCode = "2000",
    Street = "Happy Street"
    },
    ReturnUrl = "https://your-company.com/checkout?shopperOrder=12xy..",
    LineItems = new List<LineItem>
    {
     new LineItem(Quantity:1, Description:"Shoes",Id:"Item #1", AmountIncludingTax:400),
     new LineItem(Quantity:2, Description:"Shoes",Id:"Item #2", AmountIncludingTax:300),
    }
};
var client = new Client("YOUR_X-API-KEY", Model.Enum.Environment.Test);
var checkout = new Checkout(client);
var createCheckoutSessionResponse = checkout.Sessions(checkoutSessionRequest);

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="zip-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 zipComponent = checkout.create('zip').mount('#zip-container');

Recurring payments

We support recurring transactions for Zip. To make recurring payments, you need to:

  1. Create a shopper token.
  2. Use the token to make future payments for the shopper.

Create a token

To create a token, include in your /payments request:

  • storePaymentMethod: true
  • shopperReference: Your unique identifier for the shopper.

When the payment has been settled, you receive a webhook notification containing:

  • eventCode: RECURRING_CONTRACT
  • originalReference: The pspReference of the initial payment.
  • pspReference: This is the token that you need to make recurring payments for this shopper.
Make sure that your server is able to receive RECURRING_CONTRACT as part of your standard notifications. You can enable the RECURRING_CONTRACT event code in the webhook settings page.

Make a payment with a token

To make a payment with the token, include in your /payments request:

  • paymentMethod.storedPaymentMethodId: The pspReference from the RECURRING_CONTRACT.
    You can also get this value by using the /listRecurringDetails endpoint.
  • shopperReference: The unique shopper identifier that you specified when creating the token.
  • shopperInteractionContAuth.
  • recurringProcessingModel: Subscription or UnscheduledCardOnFile.

For more information about the shopperInteraction and recurringProcessingModel fields, refer to Recurring transaction types.

curl https://checkout-test.adyen.com/v68/payments \
-H "x-API-key: YOUR_X-API-KEY" \
-H "content-type: application/json" \
-d '{
       "amount":{
          "value":1000,
          "currency":"AUD"
       },
       "paymentMethod":{
          "type":"zip",
          "storedPaymentMethodId":"7219687191761347"
       },
       "reference":"YOUR_ORDER_NUMBER",
       "merchantAccount":"YOUR_MERCHANT_ACCOUNT",
       "shopperReference":"YOUR_UNIQUE_SHOPPER_ID_IOfW3k9G2PvXFu2j",
       "shopperInteraction":"ContAuth",
       "recurringProcessingModel": "Subscription"
}'
# Set your X-API-KEY with the API key from the Customer Area.
adyen = Adyen::Client.new
adyen.api_key = "YOUR_X-API-KEY"
 
response = adyen.checkout.payments({
  :amount => {
    :currency => "AUD",
    :value => 1000
  },
  :reference => "YOUR_ORDER_NUMBER",
  :paymentMethod => {
    :type => "zip",
    :storedPaymentMethodId => "7219687191761347"
  },
  :returnUrl => "https://your-company.com/checkout?shopperOrder=12xy..",
  :shopperReference => "YOUR_UNIQUE_SHOPPER_ID_IOfW3k9G2PvXFu2j",
  :merchantAccount => "YOUR_MERCHANT_ACCOUNT",
  :shopperInteraction => "ContAuth",
  :recurringProcessingModel => "Subscription"
})
// Set YOUR_X-API-KEY with the API key from the Customer Area.
// Change to Environment.LIVE and add the Live URL prefix when you're ready to accept live payments.
Client client = new Client("YOUR_X-API-KEY", Environment.TEST);
Checkout checkout = new Checkout(client);

PaymentsRequest paymentsRequest = new PaymentsRequest();

String merchantAccount = "YOUR_MERCHANT_ACCOUNT";
paymentsRequest.setMerchantAccount(merchantAccount);

Amount amount = new Amount();
amount.setCurrency("AUD");
amount.setValue(15000L);
paymentsRequest.setAmount(amount);

DefaultPaymentMethodDetails paymentMethodDetails = new DefaultPaymentMethodDetails();
paymentMethodDetails.setRecurringDetailReference("7219687191761347");
paymentMethodDetails.setType("zip");
paymentsRequest.setPaymentMethod(paymentMethodDetails);

paymentsRequest.setReference("YOUR_ORDER_NUMBER");
paymentsRequest.setReturnUrl("https://your-company.com/checkout?shopperOrder=12xy..");
paymentsRequest.setShopperInteraction("ContAuth");
paymentsRequest.setRecurringProcessingModel("Subscription");

PaymentsResponse paymentsResponse = checkout.payments(paymentsRequest);
// Set your X-API-KEY with the API key from the Customer Area.
$client = new \Adyen\Client();
$client->setXApiKey("YOUR_X-API-KEY");
$service = new \Adyen\Service\Checkout($client);

$params = array(
  "amount" => array(
    "currency" => "AUD",
    "value" => 1000
  ),
  "reference" => "YOUR_ORDER_NUMBER",
  "paymentMethod" => array(
    "type" => "zip",
    "storedPaymentMethodId" => "7219687191761347"
  ),
  "returnUrl" => "https://your-company.com/checkout?shopperOrder=12xy..",
  "shopperReference" => "YOUR_UNIQUE_SHOPPER_ID_IOfW3k9G2PvXFu2j",
  "recurringProcessingModel" => "Subscription",
  "shopperInteraction" => "ContAuth",
  "merchantAccount" => "YOUR_MERCHANT_ACCOUNT"
);
$result = $service->payments($params);
#Set your X-API-KEY with the API key from the Customer Area.
adyen = Adyen.Adyen()
adyen.client.xapikey = 'YOUR_X-API-KEY'

result = adyen.checkout.payments({
   'amount': {
      'value': 1000,
      'currency': 'AUD'
   },
   'reference': 'YOUR_ORDER_NUMBER',
   'paymentMethod': {
      'type': 'zip',
      'storedPaymentMethodId': '7219687191761347'
   },
   'returnUrl': 'https://your-company.com/checkout?shopperOrder=12xy..',
   'shopperReference': 'YOUR_UNIQUE_SHOPPER_ID_IOfW3k9G2PvXFu2j'
   'merchantAccount': 'YOUR_MERCHANT_ACCOUNT',
   'shopperInteraction':'ContAuth',
   'recurringProcessingModel': 'Subscription'
})
// Set your X-API-KEY with the API key from the Customer Area.
var client = new Client ("YOUR_X-API-KEY", Environment.Test);
var checkout = new Checkout(client);

var amount = new Model.Checkout.Amount("AUD", 1000);
var details = new Model.Checkout.DefaultPaymentMethodDetails{
  Type = "zip",
  StoredPaymentMethodId = "7219687191761347"
};
var paymentsRequest = new Model.Checkout.PaymentRequest
{
  Reference = "YOUR_ORDER_NUMBER",
  Amount = amount,
  ReturnUrl = @"https://your-company.com/checkout?shopperOrder=12xy..",
  MerchantAccount = "YOUR_MERCHANT_ACCOUNT",
  ShopperReference = "YOUR_UNIQUE_SHOPPER_ID_IOfW3k9G2PvXFu2j",
  RecurringProcessingModel = "Subscription",
  ShopperInteraction = "ContAuth",
  PaymentMethod = details
};

var paymentResponse = checkout.Payments(paymentsRequest);
// Set your X-API-KEY with the API key from the Customer Area.
const {Client, Config, CheckoutAPI} = require('@adyen/api-library');
const config = new Config();
// Set your X-API-KEY with the API key from the Customer Area.
config.apiKey = '[API_KEY]';
config.merchantAccount = '[YOUR_MERCHANT_ACCOUNT]';
const client = new Client({ config });
client.setEnvironment("TEST");
const checkout = new CheckoutAPI(client);
checkout.payments({
    amount: { currency: "AUD", value: 1000 },
    paymentMethod: {
        type: 'zip',
        storedPaymentMethodId: "7219687191761347"
    },
    reference: "YOUR_ORDER_NUMBER",
    merchantAccount: config.merchantAccount,
    shopperReference: "YOUR_UNIQUE_SHOPPER_ID_IOfW3k9G2PvXFu2j",
    returnUrl: "https://your-company.com/checkout?shopperOrder=12xy..",
    shopperInteraction: "ContAuth",
    recurringProcessingModel: "Subscription"
}).then(res => res);

Test and go live

Create Zip test accounts using the credentials on Zip's test credentials page. You can then use your test account to make a payment in the test environment.

Check the status of Zip test payments in your Customer Area > Transactions > Payments.

Before you can accept live Zip payments, you need to submit a request for Zip in your live Customer Area.

See also