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

Web Drop-in

Add Online Banking India to your Drop-in integration.

How you add Online Banking India depends on your integration.

Choose the server-side flow that your integration uses:

Sessions flow
Advanced flow

Start integrating with Sessions flow Drop-in

Choose your version
6.5.1

Requirements

Requirement Description
Integration type Make sure that you have an existing Sessions flow Web Drop-in integration.
Checkout API Make sure that you use Checkout API v68 or later.
Setup steps Before you begin, add PayTo in your Customer Area, and set:
- Merchant Name: The name shown to the shopper when creating a PayTo agreement.
- Purpose: The purpose of the agreements created, and relates to the business type, for example mortgage, utility, loan, gambling, retail, salary, personal, government, pension, and tax.

Add additional parameters to your /sessions request

When you create a payment session, add the following parameters:

Parameter Required Description
storePaymentMethod Set to true to store Payment details for recurring payments.
recurringProcessingModel Required for recurring or stored Payments.
shopperStatement Used in the case of One-time payments where the “mandate” object is omitted.
paymentMethod.type -white_check_mark- payto
shopperName.firstName -white_check_mark- The shopper's first name.
shopperName.lastName -white_check_mark- The shopper's last name.
mandate.frequency -white_check_mark- The frequency with which a shopper should be charged.
Possible values: adhoc, daily, weekly, biWeekly, monthly, quarterly, halfYearly, yearly.

adhoc: Suitable for Card On File and Unscheduled Card On File recurring processing models.
daily, weekly, biWeekly, monthly, quarterly, halfYearly, yearly: Suitable for Subscription recurring processing model.
mandate.startsAt Start date of the billing plan, in YYYY-MM-DD format. By default, the transaction date.
mandate.endsAt -white_check_mark- End date of the billing plan, in YYYY-MM-DD format.
mandate.amount -white_check_mark- The billing amount (in minor units) of the recurring transactions. 1 to 1000000000.
mandate.amountRule -white_check_mark- The limitation rule of the billing amount.
Possible values:
max: The transaction amount can not exceed the amount.
exact: The transaction amount should be the same as the amount.
mandate.count The number of transactions that can be performed within the given frequency.
Conditions:
If the frequency is different than adhoc the count has to be provided and should be >= 1
If frequency is adhoc the count can be omitted or will represent the total number of payments that can be done.
mandate.remarks -white_check_mark- The agreement description shown to the shopper up to 140 chars.
lineItems.quantity From 0 to 9999.
lineItems.sku Up to 200 chars. Note that this field is only available from v70 onwards.
lineItems.description Used to display the payment statement description to the shopper.
Up to 280 chars. If multiple items, the item descriptions will be appended with a "," separator.
lineItems.amountIncludingTax From 1 to 100000000.
lineItems.itemCategory Up to 200 chars.

Subscription setup

The request below will create a weekly subscription agreement where the weekly payment can be up to $90.
amount.value: The first immediate payment will be of $30 (once the agreement is accepted by the shopper).
mandate.frequency: Create a weekly subscription agreement.
mandate.amountRule: The payment can be up to a maximum of mandate.amount $90.
mandate.count: Set to only 1 payment per week.
mandate.endsAt: The agreement will end the 31st of December 2025.
mandate.remarks: The description shown to the user in the agreement.

Example request for subscriptions
Expand view
Copy link to code block
Copy code
Copy code
curl https://checkout-test.adyen.com/v71/sessions \
-H "x-API-key: ADYEN_API_KEY" \
-H "Idempotency-Key: YOUR_IDEMPOTENCY_KEY" \
-H "content-type: application/json" \
-d '{
"merchantAccount": "ADYEN_MERCHANT_ACCOUNT",
"amount": {
"value": 1000,
"currency": "AUD"
},
"returnUrl": "adyencheckout://your.package.name",
"reference": "YOUR_PAYMENT_REFERENCE",
"countryCode": "AU",
"paymentMethod": {
"type": "payto"
},
"countryCode":"AU",
"mandate":{
"frequency":"weekly",
"endsAt":"2025-12-31",
"amount":"9000",
"amountRule":"max",
"count":"1",
"remarks":"Agreement description"
},
"shopperName": {
"firstName": "John",
"lastName": "Doe"
},
"shopperReference":"[YOUR UNIQUE CUSTOMER ID]",
"storePaymentMethod": true, // if the payment method needs to be stored for future transactions
"recurringProcessingModel":"subscription", // if storePaymentMethod is true, define the type of the payment (see docs for further informations)
"shopperInteraction":"Ecommerce" // "ContAuth" for any subsequent transactions
}'

The /sessions response contains an action object with the information needed to redirect the shopper.

Example response for subscriptions
Expand view
Copy link to code block
Copy code
Copy code
curl https://checkout-test.adyen.com/v71/sessions \
-H "x-API-key: ADYEN_API_KEY" \
-H "content-type: application/json" \
-d '{
"resultCode": "Pending",
"action": {
"paymentData": "Ab02....M9tFK",
"paymentMethodType": "payto",
"mandate": {
"frequency":"weekly",
"endsAt":"2025-12-31",
"amount":"9000",
"amountRule":"max",
"count":"1",
"remarks":"Agreement description"
},
"name": "John Doe",
"payID": "PayID@domain.com",
"payee": "Dummy Legal Name",
"type": "await"
},
"paymentData": "Ab02....M9tFK"
}'

Because PayTo is an asynchronous payment method, from this point, the shopper will receive a notification from their bank (via sms, email or directly from their banking app) in order to authorize or decline the agreement.

By listening to the AUTHORISATION event webhook you will get the outcome of the payment as well as the id for the recurringDetailReference.

Subsequent payments

Using the id from the AUTHORISATION event, subsequent /sessions requests may be initiated within the confines set out in the original mandate.

Example request for subsequent payments
Expand view
Copy link to code block
Copy code
Copy code
curl https://checkout-test.adyen.com/v71/sessions \
-H "x-API-key: ADYEN_API_KEY" \
-H "content-type: application/json" \
-d '{
"amount": {
"currency": "AUD",
"value": 3000
},
"reference": "[YOUR MERCHANT REFERENCE]",
"paymentMethod": {
"type": "payto",
"recurringDetailReference":"DSMSTN8J98MKDM92"
},
"shopperReference": "[YOUR UNIQUE CUSTOMER ID]",
"shopperInteraction": "ContAuth",
"merchantAccount": "TestMerchant"
}'

This is the response for the subsequent payment:

Example response for subsequent payments
Expand view
Copy link to code block
Copy code
Copy code
curl https://checkout-test.adyen.com/v71/sessions \
-H "x-API-key: ADYEN_API_KEY" \
-H "content-type: application/json" \
-d '{
"resultCode": "Pending",
"action": {
"paymentData": "Ab02....M9tFK",
"paymentMethodType": "payto",
"type": "await"
},
"paymentData": "Ab02....M9tFK"
}'

One-time payments

One-time payments follow the same flow as subscriptions, but the mandate parameter is optional in the /sessions request, because it does not have to provide facility for subsequent payments.

Example request for one-time payments
Expand view
Copy link to code block
Copy code
Copy code
curl https://checkout-test.adyen.com/v71/sessions \
-H "x-API-key: ADYEN_API_KEY" \
-H "content-type: application/json" \
-d '{
"merchantAccount": "[YOUR MERCHANT ACCOUNT]",
"reference": "[YOUR REFERENCE]",
"amount": {
"currency": "AUD",
"value": 3000 // Amount to charge to the shopper once the agreement is accepted
},
"paymentMethod": {
"type": "payto"
},
"countryCode":"AU",
"shopperName": {
"firstName": "John",
"lastName": "Doe"
},
"shopperReference": "" // Optional field in order to modify the description of the agreement sent to the shopper
"returnUrl":"[YOUR RETURN URL]"
}'

This is the response for the one-time payment:

Example response for one-time payments
Expand view
Copy link to code block
Copy code
Copy code
curl https://checkout-test.adyen.com/v71/sessions \
-H "x-API-key: ADYEN_API_KEY" \
-H "content-type: application/json" \
-d '{
"resultCode": "Pending",
"action": {
"paymentData": "Ab02....M9tFK",
"paymentMethodType": "payto",
"mandate": {
"frequency":"adhoc",
"endsAt":"2025-01-31", // The end date will be set at Day+1 of the day when request is sent
"amount":"3000", // The amount will be equal to the amount sent in the payment request
"amountRule":"exact",
"count":"1",
"remarks":"One time payment" // The default value will be set to "One time payment" to modify it, you can provide the shopperStatement field in your paymentRequest
},
"name": "John Doe",
"payID": "PayID@domain.com",
"payee": "Dummy Legal Name", // This field is the merchant legal name registered with Adyen
"type": "await"
},
"paymentData": "Ab02....M9tFK"
}'

Import PayTo (optional)

When you import Adyen Web, you can optionally import individual payment methods to optimize performance by using tree shaking. To do this, include PayTo.

Import
Expand view
Copy link to code block
Copy code
Copy code
import { AdyenCheckout, Dropin, PayTo } from '@adyen/adyen-web';

Add additional configuration for PayTo

You do not need to add any configuration parameters for PayTo.

Test and go live

To test, use the shopperAccountIdentifier with the following emails to simulate testing scenarios:

Type shopperAccountIdentifier Result Description
Agreement [Any valid input] Authorised Successful payment.
expire@adyen-test.com OFFER_CLOSED The Agreement has expired, please request your shopper to pay again.
debtor_account_type_not_supported@adyen-test.com OFFER_CLOSED The agreement has been refused.
Payment [Any valid input] Authorised Successful payment.
insufficient_funds@adyen-test.com Refused Insufficient Funds
debtor_account_closed@adyen-test.com Refused The Shopper account is closed.
financial_infrastructure_unavailable@adyen-test.com Error NPP is unable to process the payment due to back office issues or outage.