Introducing the Chargebee CLI

DANA via Adyen

This feature is a Private Beta release. Contact Chargebee Support to enable DANA via Adyen for your live and test sites.

DANA is a digital wallet in Indonesia. Chargebee supports DANA as a payment method through the Adyen payment gateway, for one-time payments and subscriptions.

When customers select DANA at checkout, they're redirected to DANA to log in and approve the payment. Payment status is confirmed through Adyen webhooks.

Supported countries and currencies

DANA via Adyen supports the following country and currency. Refer to the Adyen DANA documentation for the latest details.

CountryCurrency
IndonesiaIDR (Indonesian Rupiah)

The minimum amount for a DANA payment is 300 IDR. IDR is a zero-decimal currency in Adyen but not in Chargebee, so when you pass IDR amounts through the Chargebee API, follow the currency guidance for Adyen.

Payment features

The following features are available for DANA via Adyen:

FeatureDescriptionSupportedDefault stateConfiguration or behavior
Integration sync modeDefines how payment requests are processed and statuses are communicated between Chargebee and Adyen.Yes (asynchronous)AsynchronousAdyen processes DANA payments asynchronously. Chargebee receives the final payment status through Adyen webhooks. Webhook configuration is mandatory and is used to receive AUTHORISATION updates for payments and REFUND / CANCEL_OR_REFUND updates for refunds.
Capture settingsPayment processing involves two stages: authorization and capture. Capture settings determine when funds are collected after authorization.YesAuto captureAuto capture is the default and only supported capture setting for DANA via Adyen. No additional configuration is required.
Verification modesDefines how payment methods are verified before processing.YesEnabledThe customer approves the payment on DANA using their phone number and PIN or one-time password (OTP). No separate verification configuration is required in Chargebee.
Regulatory requirementsRules set by the payment scheme or local regulation.NoNot applicableNo DANA-specific regulatory configuration is required in Chargebee.
Statement descriptorDisplays the business name on the customer's bank or wallet statement, helping them recognize charges and reducing disputes.YesDisabledConfigure this under Settings > Configure Chargebee > Transaction Descriptor.
Chargeback managementHandles chargeback events and applies configured actions on invoices and subscriptions.NoNot applicableChargebee doesn't manage disputes for DANA via Adyen. Issue refunds when needed.
Fraud managementUses gateway fraud signals to identify and flag high-risk transactions.NoNot applicableNo DANA-specific fraud configuration is available in Chargebee.
Transaction initiation typeIdentifies whether a transaction is customer-initiated (CIT) or merchant-initiated (MIT).YesSupportedThe first DANA payment is customer-initiated through the DANA redirect. Renewal payments are Merchant Initiated Transactions (MIT) collected through the saved Adyen token.
Error intelligenceProvides standardized categorization of payment failures.YesEnabledAvailable through Adyen payment and refusal responses. No configuration is required.
Gateway transaction detailsProvides access to raw gateway responses for transactions.YesEnabledAvailable on the transaction page under Error details. No configuration is required.
Adding payment methods in the Chargebee dashboardAllows a payment method to be added in Chargebee when details are collected outside checkout.NoNot applicableCustomers must complete the DANA checkout flow. DANA can't be added from the Chargebee dashboard.

Prerequisites

Before you set up DANA via Adyen in Chargebee, make sure that:

  • The Adyen payment gateway is configured in your Chargebee site, including webhook notifications.
  • DANA is added as a payment method for your merchant account in the Adyen Customer Area. Learn more
  • IDR (Indonesian Rupiah) is enabled as a currency in your Chargebee site.

Integration options

You can integrate DANA via Adyen using the following methods:

Integration methodDescription
Chargebee Hosted PagesAccept DANA payments using Chargebee's hosted checkout pages with minimal integration effort.
Chargebee.jsEmbed DANA as a payment method in your custom checkout using Chargebee.js.
API (Payment Intent)Process DANA payments using Chargebee APIs for a fully custom checkout and payment flow.

Supported token formats

This section is relevant if you're building a custom checkout or migrating payment methods from another provider to Adyen.

Token typeDescriptionSupportedToken fieldToken format
Chargebee Payment IntentRecommended token format when building a custom checkout using Chargebee.js.Yespayment_intent[id]payment_intent_id
Chargebee tokenLegacy token format supported for selected payment methods and gateways with Chargebee.js. Not recommended for new implementations.Notoken_idNot applicable
Gateway permanent tokenPermanent reference provided by Adyen and used for renewal DANA payments.Yespayment_method[reference_id]shopper_reference_id/recurring_detail_reference_id
Gateway temporary tokenShort-lived token format that can be converted to a permanent token.NoNot applicableNot applicable

Configure in Chargebee

Follow these steps to enable DANA via Adyen in your Chargebee site:

  1. Log in to the Chargebee app.
  2. Go to Settings > Configure Chargebee > Payment Gateways.
  3. Select the relevant Adyen instance from the list.
  4. On the Configure Adyen page, turn on DANA under the supported payment methods.
  5. Click Apply to save your changes.

Configure Smart Routing

When you turn on DANA for an Adyen instance, Smart Routing for DANA payments in IDR is set to that instance automatically. If another gateway already handles DANA payments in IDR, update the rule manually:

  1. Log in to the Chargebee app.
  2. Go to Settings > Configure Chargebee > Payment Gateways.
  3. Click Manage Rules under Smart Routing.
  4. Go to the DANA section and click Add a Gateway for IDR. If a payment gateway is already assigned, click Edit.
  5. From the Choose a payment gateway dropdown, select the Adyen instance with DANA turned on.
  6. Click Save.

Configure webhook notifications

Chargebee relies on Adyen webhooks to receive the status of DANA payments and refunds. Configure the Standard webhook as described in Configure webhook notifications for Adyen. Chargebee uses the following events for DANA:

  • AUTHORISATION: The payment was authorized or refused.
  • RECURRING_CONTRACT: Adyen saved the DANA wallet for renewal payments. If this event isn't enabled on your Adyen account, contact Adyen support to enable it.
  • REFUND and CANCEL_OR_REFUND: Adyen accepted the refund. Chargebee marks the refund as successful.
  • REFUND_FAILED: A refund that Adyen accepted failed later. Chargebee changes the refund status to failed.

Checkout flow

Your customer completes the following steps at checkout when paying with DANA via Adyen:

  1. The customer proceeds to the payment step of the checkout, selects DANA, and clicks Pay & Subscribe.
  2. The customer is redirected to DANA and enters their DANA-registered phone number.
  3. The customer enters their DANA PIN or the one-time password (OTP) sent to their phone to approve the payment. The DANA page is valid for about 5 minutes.
  4. The customer is redirected back to Chargebee, and the order confirmation page appears once the payment is processed.

The checkout screenshots are from Adyen's test environment.

Recurring payments

After the first payment, Adyen saves the customer's DANA wallet as a token. Chargebee uses the token to collect renewal payments as Merchant Initiated Transactions (MIT), without the customer approving each payment.

For renewal invoices, dunning follows the settings under Settings > Configure Chargebee > Dunning for Online Payments. Because Adyen processes payments asynchronously, dunning starts only after the transaction reaches a failed status. See Dunning.

Test in sandbox

Use your Adyen test merchant account with DANA added, and a Chargebee test site with the Adyen test instance configured.

  • Use IDR amounts of at least 300 IDR.
  • The Adyen test environment redirects to a test DANA page. Enter a phone number, and then enter the PIN or OTP using the on-screen keypad.
  • Make sure webhooks are configured to receive AUTHORISATION updates for payments and REFUND / CANCEL_OR_REFUND updates for refunds.

Refer to Adyen's DANA documentation for more test scenarios.

Test in production

Before you go live:

  • Make sure DANA is added for your live Adyen merchant account.
  • Verify that webhook configuration is complete for the live merchant account.
  • Run an end-to-end test with a real DANA account, including a renewal payment.

Reconcile transactions

For financial reconciliation between Chargebee and Adyen, use the Chargebee transaction field id_at_gateway, which maps to the Adyen pspReference.

  1. Retrieve the id_at_gateway value from the Chargebee transaction details.
  2. Locate the corresponding pspReference in your Adyen reports for DANA transactions.
  3. Match the transactions using this reference.

Error codes and troubleshooting

Adyen returns refusal reasons for failed DANA payments, and Chargebee shows them on the transaction page under Error details. For gateway error handling in Chargebee, see Payment errors.

Frequently Asked Questions (FAQs)

Can I refund a DANA payment?

Yes. You can issue full and partial refunds. Refunds are asynchronous: the refund stays in progress until Adyen confirms it through a webhook.

Why was an IDR amount rejected?

DANA payments must be at least 300 IDR. Also check that the amount follows the currency guidance for Adyen, because IDR is a zero-decimal currency in Adyen but not in Chargebee.

Limitations and important points

  • DANA via Adyen is available only for IDR (Indonesian Rupiah) transactions.
  • The minimum amount for a DANA payment is 300 IDR.
  • The first payment requires the customer to approve it on DANA. Renewal payments are processed as merchant-initiated transactions without customer action.
  • The DANA page that the customer is redirected to is valid for about 5 minutes.