Payment Gateway
Midtrans
Connect Midtrans once and hand every teammate a governed MCP endpoint with 44 tools ready to call from Claude, ChatGPT, Cursor, or any MCP client, inside the same permissions they already have, with every call checked and logged.
See it in Elaichi
What connecting Midtrans gets you
6 screens from the product, each doing one job for your Midtrans account.
The agent
Ask Midtrans questions, get live transaction answers.
Type a plain language question and pull real transaction and payment data instantly.
- transactions
- refunds
- cards
- payment links
Ask Elaichi to work across your apps.
Show all pending Midtrans transactions from this week.
Which refunds were issued yesterday through Midtrans.
List active Midtrans payment links by status.
Also runs in Claude, ChatGPT or Cursor
MCP clients
One Midtrans endpoint, every MCP client connects.
Claude, ChatGPT and Cursor reach Midtrans through one governed org endpoint, no shared keys.
Copy the endpoint
Tool catalogue
44 Midtrans tools, zero integration code.
Transactions, cards, refunds and payment links, all catalogued and ready to call.
- midtrans_transactions_cancel
- midtrans_transactions_refund
- midtrans_transactions_direct_refund
- midtrans_transactions_expire
Toolboxes
Every team gets its own Midtrans toolbox.
Finance, support and engineering each work from a toolbox scoped to their needs.
- Finance
- Support
- Engineering
- Sales
Shared connections
Share Midtrans access without sharing credentials.
See who connected each account and how many teams and members use it.
- Retail
- Marketplace
- Subscriptions
- Enterprise
Audit log
Every Midtrans action logged, who did what.
An append only record of when, who, what happened, type and resource.
- When
- Who
- What happened
- Resource
Automations & dashboards
From answering questions to doing the work
A person no longer has to ask. A trigger starts the work, inside the same permissions and the same audit log as everything else. Automations and live dashboards ship on the Black plan.
Automations
Midtrans digests run end to end, approved by you.
A schedule fetches transactions, drafts a digest, waits for approval, then posts back to Midtrans.
Midtrans digest
Run 418 · started 2 minutes ago · on behalf of Emma Laurent
-
✓
Schedule
Every weekday at 08:00
0.2s -
✓
Fetch transactions
Midtrans
1.4s -
✓
Group by owner
Transform
0.1s -
✓
Draft the digest
Agent step
Ran with 4 tools, returned a structured summary
6.2s -
Approve the digest
Needs approval
Assigned to Michael Brennan
Approve Deny -
Post the digest
Midtrans
Queued
Collections and dashboards
Midtrans metrics refresh themselves, no report requested.
Four metrics, a 14 day chart of transactions, and a breakdown by team, computed automatically.
Midtrans health
Refreshed 4 minutes ago · every 15 minutes · from the transactions collection
Transactions
1,284 ↓ 12%
Refunds
96 ↓ 8%
Needs attention
3 ↑ 2
Updated this week
412 ↑ 9%
Transactions created
Last 14 days
By workspace
Share of activity
Retail 34%
Marketplace 27%
Subscriptions 21%
Enterprise 18%
AI tools
Midtrans tools for your AI agents
44 tools are ready to call through Elaichi's MCP endpoint the moment you connect Midtrans, governed by the same roles, restrictions, and audit log as everything else in Elaichi.
midtrans_transactions_cancel
Cancel a Midtrans transaction to void it. Use refund instead if the transaction is already settled. Returns: status_code, status_message, transaction_id, masked_card, order_id, payment_type, transaction_time, transaction_status, fraud_status, bank, gross_amount. Required: order_id_or_transaction_id.
midtrans_transactions_refund
Refund a settled Midtrans transaction to reverse money back to the customer. Supported for credit_card, gopay, shopeepay, dana, ovo, QRIS, kredivo, and akulaku. Returns: status_code, status_message, transaction_id, order_id, payment_type, transaction_time, transaction_status, gross_amount, refund_chargeback_id, refund_amount, refund_key, amount, reason. Required: order_id_or_transaction_id.
midtrans_transactions_direct_refund
Send a direct refund request to the bank or payment provider for a settled Midtrans transaction for faster processing than standard refund. Supported for GoPay, QRIS, ShopeePay, Credit Card, Akulaku, and Kredivo. Returns: status_code, status_message, transaction_id, order_id, gross_amount, payment_type, transaction_time, transaction_status, refund_chargeback_id, refund_amount, refund_key.…
midtrans_transactions_expire
Expire a Midtrans transaction by order ID or transaction ID, updating transaction_status to expire when the customer fails to complete payment. The expired order_id can be reused for the same or different payment methods. Returns: status_code, status_message, transaction_id, order_id, payment_type, transaction_time, transaction_status, signature_key, bank, gross_amount, permata_va_number.…
midtrans_transactions_approve
Approve a challenged Midtrans transaction by order ID or transaction ID, accepting a transaction flagged by the Fraud Detection System so it proceeds to settlement instead of being automatically canceled. Returns: status_code, status_message, transaction_id, masked_card, order_id, payment_type, transaction_time, transaction_status, fraud_status, bank, gross_amount, approval_code, signature_key,…
midtrans_transactions_get_status_b_2_b
Get the B2B transaction status for a specific order or transaction in Midtrans. Returns: status_code, status_message, transaction_id, masked_card, order_id, payment_type, transaction_time, transaction_status, fraud_status, approval_code, signature_key, bank, gross_amount, channel_response_code, channel_response_message, card_type, payment_option_type, shopeepay_reference_number, reference_id,…
midtrans_transactions_capture
Capture an authorized Midtrans card transaction to settle the transaction balance. Only applicable when transaction_status is 'authorize' (pre-authorized credit card or GoPay). Returns: status_code, status_message, transaction_id, masked_card, order_id, payment_type, transaction_time, transaction_status, fraud_status, bank, gross_amount. Required: transaction_id.
midtrans_transactions_deny
Deny a challenged card payment transaction in Midtrans. The transaction must have fraud_status challenge. Returns: transaction_id, order_id, gross_amount, payment_type, transaction_time, transaction_status, fraud_status, masked_card, status_code, bank, status_message. Required: order_id_or_transaction_id.
create_a_midtrans_transaction
Create a new Midtrans transaction charge with a specified payment type and transaction details. Returns: status_code, status_message, transaction_id, order_id, gross_amount, payment_type, transaction_time, transaction_status, fraud_status, masked_card, approval_code, bank, custom_field1, custom_field2, custom_field3, metadata, bank_transfer, transaction_details. Required: payment_type,…
list_all_midtrans_transactions
Get the status and details of a Midtrans transaction by order ID or transaction ID. For BI SNAP and DANA payment methods, only transaction ID works. Returns: status_code, status_message, transaction_id, order_id, gross_amount, payment_type, transaction_time, transaction_status, fraud_status, masked_card, approval_code, bank, signature_key, channel_response_code, channel_response_message,…
midtrans_card_get_token
Get a card token in Midtrans by securely sending credit card details to obtain a Token ID for card payment transactions. Returns: status_code, status_message, validation_messages, token_id, hash, id, name, amount, currency, created_at, schedule, status, token, payment_type, metadata, customer_details, gopay. Required: card_number, card_cvv, card_exp_month, card_exp_year. Applicable only for card…
midtrans_card_register
Register a card in Midtrans for future one-click and two-click transactions by submitting card number and expiry. Returns: status_code, saved_token_id, transaction_id, masked_card. Required: card_number, card_exp_month, card_exp_year.
create_a_midtrans_payment_link
Create a Midtrans payment link with desired transaction details. Returns: order_id, payment_url. Required: transaction_details containing order_id (and gross_amount for FIXED_AMOUNT links, omitted when payment_link_type is DYNAMIC_AMOUNT).
midtrans_snap_create_token
Create a Snap payment token in Midtrans by submitting transaction details and optional payment configuration. Returns: token, redirect_url. Required: transaction_details (including order_id and gross_amount).
create_a_midtrans_subscription
Create a Midtrans subscription or recurring transaction. Returns: id, name, amount, currency, created_at, schedule, status, token, payment_type, metadata, customer_details, gopay. Required: name, amount, currency, payment_type, token, schedule. Only IDR currency and credit_card or gopay payment types are supported.
get_single_midtrans_subscription_by_id
Get a single Midtrans subscription by id. Returns: id, name, amount, currency, created_at, schedule, status, token, payment_type, metadata, customer_details, gopay. Required: id.
midtrans_subscriptions_disable
Disable a Midtrans subscription so the customer is not charged in the future. Returns: status_message. Required: subscription_id. Pending retries from previous failed payments will still execute after disabling.
midtrans_subscriptions_enable
Enable a Midtrans subscription so the customer can start paying for the subscription immediately. Returns: status_message. Required: subscription_id.
update_a_midtrans_subscription_by_id
Update a Midtrans subscription's details or reactivate an expired subscription by updating its schedule. Returns: status_message. Required: id, name, amount, currency, token. Only schedule.interval can be updated; interval_unit and max_interval cannot be changed, and the payment method cannot be changed mid-subscription.
midtrans_subscriptions_cancel
Cancel a Midtrans subscription by subscription_id, stopping future charges and any pending retries from previous failed charge attempts. Returns: status_message. Required: subscription_id.
midtrans_access_token_get_access_token
Get a B2B access token from Midtrans using the OAuth 2.0 client_credentials grant. Returns: responseCode, responseMessage, accessToken, tokenType, expiresIn, id, name, amount, currency, created_at, schedule, status, token, payment_type, metadata, customer_details, gopay. Required: grantType.
midtrans_account_linking_get_auth_code
Get an auth code to initiate GoPay account linking in Midtrans, redirecting the user to the GoPay PIN/OTP page. Returns: responseCode, responseMessage, referenceNo. Required: redirectURL, scopes, state, merchantId, lang, seamlessData, seamlessSign.
midtrans_account_linking_bind_account
Bind a GoPay account in Midtrans using an authCode to obtain a customer access token. Returns: responseCode, responseMessage, referenceNo, accessTokenInfo. Required: merchantId, authCode, grantType.
midtrans_account_linking_inquiry_binding
Inquire about a GoPay account binding in Midtrans to fetch account status, balance, payment options, and the current payment option token. Returns: responseCode, responseMessage, referenceNo, additionalInfo.
midtrans_account_linking_unbind_account
Unbind a linked GoPay account from a merchant in Midtrans. Returns: responseCode, responseMessage, referenceNo, id, name, amount, currency, created_at, schedule, status, token, payment_type, metadata, customer_details, gopay. Required: merchantId.
midtrans_direct_debit_direct_debit_payment
Initiate a GoPay Tokenization direct debit payment in Midtrans. Returns: responseCode, responseMessage, referenceNo, partnerReferenceNo, paidTime, webRedirectUrl, appRedirectUrl, additionalInfo, originalReferenceNo, originalPartnerReferenceNo, captureNo, partnerCaptureNo, captureAmount, captureTime. Required: partnerReferenceNo, chargeToken, urlParams, payOptionDetails. The GoPay account must be…
midtrans_direct_debit_auth_payment
Reserve a customer's GoPay balance without deducting it by initiating a GoPay Tokenization Pre-Auth transaction in Midtrans. Returns: responseCode, responseMessage, referenceNo, partnerReferenceNo, paidTime, additionalInfo, originalReferenceNo, originalPartnerReferenceNo, captureNo, partnerCaptureNo, captureAmount, captureTime. Required: partnerReferenceNo, merchantId, title, and additionalInfo.
midtrans_direct_debit_capture_payment
Capture an authorized GoPay Tokenization transaction in Midtrans to deduct the user's previously reserved balance. Returns: responseCode, responseMessage, originalReferenceNo, originalPartnerReferenceNo, captureNo, partnerCaptureNo, captureAmount, captureTime. Required: originalPartnerReferenceNo, partnerCaptureNo, merchantId, title. Either originalReferenceNo or additionalInfo.originalExternalId…
midtrans_direct_debit_refund
Refund a settled Midtrans GoPay or GoPay Tokenization (non pre-auth) transaction over the BI-SNAP Direct Debit API, returning money to the customer. Supports partial refunds via refundAmount; omit it for a full refund. Returns: responseCode, responseMessage, originalReferenceNo, refundNo, partnerRefundNo, refundAmount, refundTime. Required: originalPartnerReferenceNo, partnerRefundNo, and either originalReferenceNo or originalExternalId.
midtrans_direct_debit_get_status
Get the transaction status of a GoPay Tokenization direct debit transaction in Midtrans. Returns: responseCode, responseMessage, partnerReferenceNo, referenceNo, additionalInfo containing payment status, transaction time, expiry time, and fraud status details.
midtrans_virtual_account_create_va
Create a Virtual Account in Midtrans using the SNAP-based BI-SNAP Core API. Returns the generated virtual account number, virtual account name, total amount, and expiry time. Required: partnerServiceId, customerNo, virtualAccountName, totalAmount, and partnerReferenceNo.
midtrans_virtual_account_get_va_status
Get the status of a Virtual Account transaction in Midtrans via the BI-SNAP Core API. Returns: masked_card, approval_code, bank, eci, channel_response_code, channel_response_message, transaction_time, gross_amount, currency, order_id, payment_type, signature_key, status_code, transaction_id, transaction_status, fraud_status, settlement_time, status_message, merchant_id, card_type,…
midtrans_qris_create_qr
Generate a QRIS MPM (Merchant Presented Mode) QR code in Midtrans. Returns the created QRIS transaction including transaction_id, order_id, transaction_status, gross_amount, currency, acquirer, and actions with QR code generation URLs. Required: payment_type, transaction_details.
midtrans_qris_get_qr_status
Get the status of a QRIS MPM (Merchant Presented Mode) transaction in Midtrans via the BI-SNAP protocol. Returns: transaction_status, transaction_id, order_id, gross_amount, status_code, status_message, payment_type, currency.
midtrans_qris_refund_qr
Refund a settled Midtrans QRIS MPM transaction over the BI-SNAP API, returning money to the customer. Supports partial refunds via refundAmount; omit it for a full refund. Returns: responseCode, responseMessage, referenceNo, originalPartnerReferenceNo, originalReferenceNo, partnerRefundNo, refundAmount, refundTime, additionalInfo. Required: merchantId, originalPartnerReferenceNo, partnerRefundNo.
midtrans_qris_cancel_qr
Cancel a pending QRIS MPM (Merchant Presented Mode) transaction in Midtrans via the BI-SNAP API. Returns: status_code, status_message, transaction_id, order_id, merchant_id, gross_amount, currency, payment_type, transaction_time, transaction_status, fraud_status, acquirer, actions, signature_key, transaction_type, settlement_time, issuer, shopeepay_reference_number, reference_id.
midtrans_qris_generate_qr_code
Generate a QR code image for a Midtrans QRIS transaction by transaction_id. Returns a PNG image of the QR code that customers can scan to pay from any QRIS-registered payment provider. Required: transaction_id. The QR code URL expires after 30 days.
midtrans_transaction_history_get_transaction_history
List Midtrans merchant transaction history with optional date-range, type, and status filters. Returns each transaction's dateTime, amount, status, type, remark, and additionalInfo (including referenceNo, partnerReferenceNo, channel, customerEmail, accountNo, and fee). Date range limited to the latest 6 months; max 50 per page.
midtrans_gopay_account_get_pay_account
Get a GoPay account's linked status and payment options in Midtrans. Returns: status_code, payment_type, account_id, account_status, metadata. Required: account_id. Only applicable for GoPay Tokenizations.
midtrans_gopay_account_unbind_pay_account
Unbind a linked GoPay customer account in Midtrans. Returns: status_code, payment_type, account_id, account_status, channel_response_code, channel_response_message. Required: account_id.
midtrans_gopay_account_get_gopay_account_info
Get GoPay account info for Snap tokenization in Midtrans. Returns: status_code, payment_type, account_id, account_status, metadata. Required: user_id.
midtrans_gopay_account_unlink_gopay_account
Unlink a GoPay account from Snap tokenization in Midtrans. Returns: status_code, payment_type, account_id, account_status, channel_response_code, channel_response_message. Required: user_id.
midtrans_gopay_account_create_pay_account
Link a customer's GoPay account for GoPay Tokenization in Midtrans. Returns: status_code, payment_type, account_id, account_status, actions, channel_response_code, channel_response_message, gopay_partner. Required: payment_type, gopay_partner.phone_number, gopay_partner.country_code.
midtrans_bin_get_bin
Get metadata for a specific BIN (Bank Identification Number) in Midtrans, such as card type, brand, issuing bank, and country. Returns: country_name, country_code, brand, bin_type, bin_class, bin, bank_code, bank. Required: bin_number. Rate-limited to 100 requests per minute; excess requests receive a 409 status code.
No tools match your search.
How it works
From Midtrans account to governed MCP endpoint
Connect
Link a Midtrans account through Elaichi's hosted connect flow. Credentials are vaulted, so nobody, including the AI, ever sees them.
Compose
The connection becomes a toolbox instantly. Curate which Midtrans tools are exposed, rename them, or freeze arguments.
Authorize
Point Claude, ChatGPT, Cursor, or any MCP client at the one Elaichi endpoint and sign in with OAuth, governed by roles, restrictions, and audit logs.
Put your agents to work in the tools you already use
Start a 14-day Gold trial. Connect a product, curate a toolbox, and paste a governed MCP endpoint into Claude, ChatGPT, or Cursor in minutes.