Refund Customers from WhatsApp with Midtrans

By Alva Chew 6 min read Updated November 11, 2026

Yes. AeroChat works directly with Midtrans. When a customer asks for a refund, AeroChat finds the settled Midtrans transaction, checks the request against your policy and, within the limit you set, refunds the full or partial amount through Midtrans. Anything else goes to your team.

Prefer payments built in? Airwallex is built into AeroChat, so payment links work without an API setup. See how it works. No Airwallex account yet? Open one through AeroChat.

This recipe handles the refunds your policy already allows, in the chat where the customer asked, for payments made by card, GoPay, QRIS and the other methods Midtrans can refund. Part of connecting Midtrans to WhatsApp and AI chat.

What happens today

A customer cancels a booking inside the free cancellation window, or one item in their order is out of stock. They ask for their money back. Someone opens the Midtrans Dashboard, finds the transaction, checks the policy and the payment method, issues the refund and goes back to the chat. Simple refunds wait behind the hard ones, and the customer asks again.

The flow that works

  1. The customer asks for a refund and says why.
  2. AeroChat finds the Midtrans transaction for their order by its order ID.
  3. It checks that the transaction is settled and that the payment method can be refunded through Midtrans.
  4. It checks the reason and the amount against your refund policy and your limit.
  5. If the refund is allowed, it confirms the amount with the customer and creates the refund in Midtrans, with the reason.
  6. It confirms in the chat. If the request is outside your rules, over your limit or paid by a method Midtrans cannot refund, it hands over to your team.

What it looks like on WhatsApp

Customer: Hi, the batik scarf in my order INV-2290 is out of stock. Can I get that part refunded? (example)

AeroChat: Sorry about that. The scarf was IDR 180,000. I can refund that amount to the GoPay account you paid with, and the rest of your order ships as planned. Shall I go ahead?

Customer: Yes please.

AeroChat: Done. IDR 180,000 is refunded to your GoPay account.

In Midtrans: a partial refund of IDR 180,000 with the reason “item out of stock” is created on the settled GoPay transaction for order INV-2290.

The recipe

Copy this into AeroChat

When a customer asks for a refund, follow these steps.

  1. Ask for their order number if we do not have it, and the reason for the refund.
  2. Find the Midtrans transaction with that order ID and check that it is settled. If it is still pending, cancel it instead of refunding and tell them.
  3. Check the request against our refund policy in the knowledge base. Refunds are allowed for items we cannot supply and for bookings canceled more than 24 hours ahead (example).
  4. If the refund is allowed and the amount is IDR 1,000,000 or less (example), tell them the amount and where it goes back to, and ask them to confirm.
  5. After they confirm, create a refund in Midtrans on that transaction for that amount, with the reason. Refund part of the payment when only part of the order is affected.
  6. Confirm the refunded amount in the chat.
  7. If the payment was by bank transfer, if Midtrans does not allow the refund, if the request is outside the policy or over the limit, or if it is a dispute, do not refund. Collect the details and hand over to a team member.

Never promise a refund before checking the policy. Never refund more than the customer paid. Reply in the customer’s language.

Change the policy and the limit to your own before you paste it.

What to connect

  • Midtrans. In your Midtrans Dashboard, open Settings, then Access Keys, and copy the Server Key from the Payment tab, starting with Sandbox. Paste it in when AeroChat asks. Switch to the Production key once you have tested.
  • Refunds switched on. If refunds are not enabled on your Midtrans account, ask Midtrans support to activate them.
  • Your refund policy. Upload it to the AeroChat knowledge base. AeroChat refunds only what the policy and your limit allow.

Midtrans sets which payment methods can be refunded, partly or in full, and for how long. Its refund documentation lists card, GoPay, ShopeePay, DANA, OVO, QRIS, Kredivo and Akulaku, with partial refunds on most of them. Bank transfers are not on that list, so those go to your team.

After you paste the recipe, AeroChat builds the workflow as a draft and shows a checklist: connect Midtrans, add your knowledge base if the recipe uses one, then switch it on. If it built the connection from Midtrans’s public documentation, the checklist asks you to check it once against the current docs.

Using a different system? If it has a public API, it connects to AeroChat the same way: describe what you want, paste in its key, and it runs.

Can’t find your tool? Message us in the chat on this page and we’ll tell you how it connects.

What you still decide

  • Which reasons qualify for a refund in chat.
  • The largest amount AeroChat can refund without your team.
  • Who handles bank transfer refunds, disputes and anything outside the policy.

The result to expect

Refunds your policy already allows happen in the same chat, in minutes, matched to the right Midtrans transaction. Your team only handles the exceptions.

Measure it with your own numbers: refunds processed by hand, and time from request to refund, for a month before and after.

Next: answer payment questions from Midtrans.

Works on every chat channel

This workflow runs the same way on WhatsApp, Instagram, Facebook Messenger, TikTok, Telegram, the chat on your website and email, with the same Midtrans connection behind it. See what each channel does on the Midtrans integration page.

Run your first refund from chat

Paste the recipe, add your Midtrans Sandbox Server Key, make a test payment and ask your own number for a refund.

Start your 7-day free trial. No credit card needed.

Sign up for an annual plan on Growth or above and we’ll set up your workflows and connect Midtrans for you, free. See plans.

On Shopify? Install AeroChat from the Shopify App Store.