> ## Documentation Index
> Fetch the complete documentation index at: https://docs.9pic.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Xendit Setup

> Add Xendit credentials to 9Pic Checkout and prepare an event for test or live payments.

<Warning>
  9Pic Checkout is a **Beta**, **Enterprise plan** feature. Only team admins can add or change a Xendit configuration.
</Warning>

## Overview

Xendit collects payments for 9Pic Checkout across several Southeast Asian currencies. Add one Xendit configuration for your organisation, then assign it to the event that will sell packages.

You need a **secret key** from the Xendit Dashboard. Xendit issues a development secret key while you test and a separate production secret key for real payments.

<Warning>
  9Pic does not automatically detect whether a Xendit secret key is a development or production key. Double-check which key you are pasting in before you publish an event for real buyers.
</Warning>

![Xendit Dashboard Developers page showing Secret keys with permissions and a masked Public key token](https://assets.9pic.ai/docs/dashboard-guide/payment-config/xendit-api-keys.webp)

## Before You Start

| Requirement                         | Why it matters                                                                                                                                                                                   |
| ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Xendit merchant access**          | You need permission to view the API Keys page in the Xendit Dashboard.                                                                                                                           |
| **Correct key for the environment** | Use a development secret key for setup checks and a production secret key for public checkout. 9Pic does not block a development key from being used in production, so confirm the key yourself. |
| **A team admin account**            | Only team admins can open and manage Payment Configuration.                                                                                                                                      |
| **An Enterprise organisation**      | Payment Configuration and 9Pic Checkout are available on the Enterprise plan.                                                                                                                    |
| **Supported currencies**            | Events that use Xendit can only sell packages priced in IDR, PHP, MYR, THB, or VND.                                                                                                              |

<Warning>
  Do not share the secret key in email, chat, task tickets, screenshots, frontend code, or a public repository. If you think it has been exposed, create a new key in Xendit and update the configuration in 9Pic.
</Warning>

## Get Your Xendit Secret Key

<Steps>
  <Step title="Open API Keys in Xendit">
    Sign in to the Xendit Dashboard and open the **API Keys** page.
  </Step>

  <Step title="Copy the secret key for the mode you need">
    Copy the **secret key** for the environment you are working in. Xendit's own convention starts development keys with `xnd_development_` and production keys with `xnd_production_`.
  </Step>

  <Step title="Store the key safely">
    Keep the key in your organisation's approved password manager until you add it to 9Pic. Do not paste it into a buyer-facing website or app.
  </Step>
</Steps>

<Info>
  Need help finding the keys in Xendit? Check the Xendit Dashboard's API Keys page directly, or contact the Xendit team that provisioned your merchant account.
</Info>

## Add Xendit to 9Pic

<Steps>
  <Step title="Open Payment Config">
    In the dashboard sidebar, select **Payment Config**.
  </Step>

  <Step title="Start a new gateway">
    In **Payment Gateway Configurations**, click **Add Gateway**, then select **Xendit**.
  </Step>

  <Step title="Name the configuration">
    Enter an optional **Label** that makes the configuration easy to recognise, such as `Xendit Test` or `Xendit Live Indonesia`.
  </Step>

  <Step title="Enter an optional Account ID">
    **Account ID** is optional for Xendit. Use it only if your team wants a reminder of which Xendit account the key belongs to.
  </Step>

  <Step title="Enter the secret key">
    Paste the key into **Xendit Secret Key**. This required value is stored as a protected credential for your organisation.
  </Step>

  <Step title="Create the gateway">
    Click **Create Gateway**. The new Xendit configuration appears in the organisation's gateway list.
  </Step>
</Steps>

## Assign Xendit to an Event

<Steps>
  <Step title="Open the event Checkout configuration">
    Open the event, then open its **Checkout** configuration.
  </Step>

  <Step title="Assign the Xendit configuration">
    In the **Payment gateway** card, select **Assign** (or **Edit** if a gateway is already assigned), choose the Xendit configuration, and save.
  </Step>

  <Step title="Set package prices in a supported currency">
    Create or update Checkout packages in **IDR**, **PHP**, **MYR**, **THB**, or **VND**. Other currencies cannot be used with Xendit.
  </Step>

  <Step title="Publish and test">
    Publish the packages and run a complete buyer journey with a development-key configuration before you switch the event to a production key.
  </Step>
</Steps>

<Note>
  Xendit does not offer a **Pass on fees** option in 9Pic Checkout. The listed package price is always the amount charged.
</Note>

<Warning>
  Replacing the assigned gateway while Checkout is live pauses Checkout first. Confirm the new configuration and package currency before you publish it again.
</Warning>

## Verify the Setup

| Check                     | What to confirm                                                                                                                           |
| ------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
| **Correct key**           | The pasted secret key matches the environment you intend — development for testing, production for public checkout.                       |
| **Payment page opens**    | A buyer can continue from 9Pic to the Xendit hosted payment page.                                                                         |
| **Payment completes**     | A successful test payment returns to 9Pic and marks the order paid.                                                                       |
| **Currency is supported** | Package prices and the Xendit payment page both show IDR, PHP, MYR, THB, or VND.                                                          |
| **Buyer methods appear**  | Payment methods shown to the buyer match what is enabled on your Xendit account; 9Pic does not restrict or select methods on your behalf. |
| **Cancellation works**    | Cancelling returns the buyer to 9Pic without marking the order paid.                                                                      |

## Troubleshooting

<AccordionGroup>
  <Accordion title="9Pic says the Xendit secret key is not configured.">
    Edit the Xendit configuration in **Payment Config** and confirm that **Xendit Secret Key** has a value. Then assign that configuration on the event's **Payment gateway** card.
  </Accordion>

  <Accordion title="A development key was used for a public event and I want to prevent that.">
    9Pic does not block a development secret key from being used in production for Xendit. Review the configuration's key before publishing packages for a public event, and replace it with a production key when you are ready to accept real payments.
  </Accordion>

  <Accordion title="I cannot select my currency, or another currency is blocked.">
    Events assigned to Xendit can only sell IDR, PHP, MYR, THB, or VND packages. Choose one of those currencies, or assign a gateway that supports the currency you need.
  </Accordion>

  <Accordion title="The buyer does not see the payment method I expected.">
    9Pic does not send a fixed list of payment methods to Xendit. The buyer sees whatever payment methods are enabled on your Xendit account. Enable the method in Xendit, then retry a test purchase.
  </Accordion>

  <Accordion title="I expected a Pass on fees option like PayMongo has.">
    Xendit does not support passing provider fees on to buyers in 9Pic Checkout. The listed package price is always the amount charged.
  </Accordion>
</AccordionGroup>

## Next Steps

<CardGroup cols={2}>
  <Card title="Payment Config" icon="wallet" href="/dashboard-guide/payment-config">
    Manage the payment gateways saved for your organisation.
  </Card>

  <Card title="Checkout Setup" icon="gear" href="/dashboard-guide/checkout/configuration">
    Assign a gateway, publish packages, and enable Checkout for an event.
  </Card>
</CardGroup>
