To accept payments automatically for your orders, ChatMo integrates with Xendit β a payment gateway that supports Virtual Account, QRIS, Credit/Debit Card, e-wallets, and retail outlets. Once connected, the AI agent can generate a real payment link for every order, and order/payment statuses update automatically when your customer pays.
You manage all of this from the Payment menu in the Orders sidebar (Orders β Payment).

Two ways to connect Xendit
ChatMo supports two integration types. Pick the one that matches your situation:
| Type | Best for | How it works |
|---|---|---|
| Create with ChatMo (xenPlatform sub-account) | You don't have a Xendit account yet | ChatMo creates a Xendit sub-account for you. You verify by email + complete Xendit KYC. ChatMo manages the keys and webhooks for you. |
| Connect your own account (self-managed) | You already have a Xendit account | You enter your own Business ID, Secret Key, and Webhook Token. ChatMo uses your account directly. |
Both types are completely separate from Manual Payment (bank transfer), which you can always configure regardless of your Xendit setup.

Option A β Create with ChatMo (xenPlatform)
Choose this if you don't have a Xendit account yet. ChatMo will create and manage a Xendit sub-account on your behalf.
- Open
Orders β Paymentand click Create with ChatMo. - Enter your email and business name, then click Send Verification Code.
- Enter the 6-digit code sent to your email.
- ChatMo creates your Xendit sub-account. You'll receive an invitation email from Xendit to complete KYC verification.
- Once Xendit approves your KYC, your account status becomes Active and you can start accepting automatic payments.

KYC review is done by Xendit and can take some time. You can keep using Manual Payment while you wait. ChatMo automatically sets up the payment & payout webhooks for this account type β there's nothing else to configure.
Option B β Connect your own Xendit account (self-managed)
Choose this if you already have a Xendit account. You stay in full control of your account; ChatMo simply uses your credentials to create invoices and read your balance.
What you'll need
From your Xendit dashboard, collect these four things (the next section shows exactly where each one is):
| Field | What it is |
|---|---|
| Business ID | Your Xendit account / business id |
| Secret API Key | A key starting with xnd_... with the right permissions |
| Webhook Verification Token | The callback token Xendit signs webhooks with |
| IP Allowlist (if enabled) | Add ChatMo's server IPs so our API calls aren't blocked |
How to get your Xendit credentials
This section walks through exactly where to find each value in the Xendit Dashboard (dashboard.xendit.co).
1. Business ID
Your Business ID identifies your Xendit account.
- Log in to your Xendit Dashboard and open Settings (dashboard.xendit.co/settings).
- Select the Your Business menu (dashboard.xendit.co/settings/business-profile#business).
- Copy the Business ID.

2. Generate Secret Key
Create an API key with the correct permissions so ChatMo can create invoices, send payouts, and read your balance/transactions.
- In the Xendit Dashboard, go to Settings β Developers β API Keys.
- Click Generate Secret Key (or Create API Key).
- Set the permissions exactly as below:
| Product | Permission |
|---|---|
| Money-in products | Write |
| Money-out products | Write |
| Balance | Read |
| Transaction | Read |
- Generate the key and copy it immediately β Xendit only shows the full secret key once. It starts with
xnd_.

The secret key is shown only once at creation. Copy it right away. If you lose it, generate a new one (and reconnect it in ChatMo). Never share this key publicly.
3. Webhook Verification Token
This token lets ChatMo verify that incoming webhooks really came from your Xendit account.
- In the Xendit Dashboard, go to Settings β Developers β Webhooks.
- Find the Webhook Verification Token and copy it.

4. IP Allowlist (only if you enabled it)
If you turned on IP Allowlist in Xendit (Settings β Security β IP Allowlist), Xendit will block API calls from any IP that isn't on the list. Add ChatMo's server IPs so our requests aren't blocked:
Code

If you don't use IP Allowlist, you can skip this step. If you do use it and forget these IPs, ChatMo's invoice/payout/balance calls will fail with an authorization error.
Connect steps in ChatMo
Once you have your credentials:
- Open
Orders β Paymentand click Connect your own account. - Fill in your Business ID, Secret API Key, Webhook Verification Token, and optional Admin Fee.
- Click Continue and confirm with your authenticator app (2FA).
ChatMo will then:
- Validate the format of your keys.
- Live-test your Secret Key against Xendit (a real API call). If the key is invalid, the connection is rejected.
- Register ChatMo's webhook URLs on your Xendit account automatically.
- Encrypt and save your credentials, then mark the account Active.

Connecting (and reconfiguring/disconnecting) requires two-factor authentication. Enable 2FA first in Settings β Security if you haven't already.

Connecting will set the invoice & payout webhook URLs on your Xendit account, replacing any existing webhook URLs you had configured for those events. If you use those webhooks for other systems, set ChatMo's URLs manually instead (see below).
Webhook URLs
ChatMo needs Xendit to notify it when invoices are paid and when payouts complete. These are the URLs (also shown in the connect form):
| Event | Webhook URL |
|---|---|
| Payment (invoice paid / expired) | https://api.chatmo.io/v1/xendit/account/payment/webhook |
| Payout (withdrawal succeeded / failed) | https://api.chatmo.io/v1/xendit/account/payout/webhook |

If ChatMo couldn't auto-configure a webhook (you'll see a notice), add it manually in Xendit β Settings β Webhooks for the corresponding event.
Security: how your keys are stored
Your Secret Key and Webhook Token are encrypted at rest β they are never stored in plain text. After saving, ChatMo only shows a masked preview (e.g. xnd_β¦cdef); the full value can never be read back from the dashboard.
The Admin Fee, if set, is added as a separate fee line on each Xendit invoice and charged to your customer on top of the order total.

Reconfigure your connection
Need to rotate your Secret Key, update the Webhook Token, or change the Admin Fee? Use Reconfigure:
- On the Payment page (self-managed account), click Reconfigure.
- Update the fields. Your current keys are shown masked for reference β re-enter the values you want to change.
- Click Continue and confirm with 2FA.

Disconnect your Xendit account
If you want to stop using your connected Xendit account, you can disconnect it at any time.
- On the Payment page (self-managed account), click Disconnect.
- Confirm in the dialog, then verify with 2FA.

What happens when you disconnect:
- Automatic payments stop until you reconnect.
- Your stored Xendit keys are removed from ChatMo (encrypted credentials are deleted).
- Your Xendit account itself is not affected β only the link to ChatMo is removed. The webhook URLs you set on Xendit remain; you can remove them in your Xendit dashboard if you wish.
You can reconnect anytime by going through Connect your own account again. Disconnecting is fully reversible.
After connecting
Once your account is Active:
- The AI agent can create a real Xendit invoice for orders that use Automatic (Xendit) payment.
- When a customer pays, the order's payment status flips to Paid automatically and your customer gets a confirmation message in the chat.
- Your live Xendit balance appears on the
Orders β Balancepage, where you can also request withdrawals to your bank.
What's Next?
- Order Management β manage orders, statuses, and cancellations.
- Invoices β customize your invoice template.
- Overview β the big picture of the Orders system.
