Mayar Payment Integration
Integrate Mayar.id payments to create invoices, generate payment links, track Indonesian payment methods, manage subscriptions, and automate payment workflows.
Like a lobster shell, security has layers — review code before you run it.
License
SKILL.md
Mayar Payment Integration
Integrate Mayar.id payment platform via MCP (Model Context Protocol) for Indonesian payment processing.
Prerequisites
- Mayar.id account - Sign up at https://mayar.id
- API Key - Generate from https://web.mayar.id/api-keys
- mcporter configured - MCP must be set up in Clawdbot
Setup
1. Store API Credentials
mkdir -p ~/.config/mayar
cat > ~/.config/mayar/credentials << EOF
MAYAR_API_TOKEN="your-jwt-token-here"
EOF
chmod 600 ~/.config/mayar/credentials
2. Configure MCP Server
Add to config/mcporter.json:
{
"mcpServers": {
"mayar": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://mcp.mayar.id/sse",
"--header",
"Authorization:YOUR_API_TOKEN_HERE"
]
}
}
}
Replace YOUR_API_TOKEN_HERE with actual token.
3. Test Connection
mcporter list mayar
Should show 15+ available tools.
Core Workflows
Create Invoice with Payment Link
Most common use case: Generate payment link for customer.
mcporter call mayar.create_invoice \
name="Customer Name" \
email="email@example.com" \
mobile="\"628xxx\"" \
description="Order description" \
redirectURL="https://yoursite.com/thanks" \
expiredAt="2026-12-31T23:59:59+07:00" \
items='[{"quantity":1,"rate":500000,"description":"Product A"}]'
Returns:
{
"id": "uuid",
"transactionId": "uuid",
"link": "https://subdomain.myr.id/invoices/slug",
"expiredAt": 1234567890
}
Key fields:
mobile- MUST be string with quotes:"\"628xxx\""expiredAt- ISO 8601 format with timezoneitems- Array of{quantity, rate, description}redirectURL- Where customer goes after payment
WhatsApp Integration Pattern
// 1. Create invoice
const invoice = /* mcporter call mayar.create_invoice */;
// 2. Format message
const message = `
✅ *Order Confirmed!*
*Items:*
• Product Name
Rp ${amount.toLocaleString('id-ID')}
*TOTAL: Rp ${total.toLocaleString('id-ID')}*
💳 *Pembayaran:*
${invoice.data.link}
⏰ Berlaku sampai: ${expiryDate}
Terima kasih! 🙏
`.trim();
// 3. Send via WhatsApp
message({
action: 'send',
channel: 'whatsapp',
target: customerPhone,
message: message
});
Check Payment Status
# Get latest transactions (check if paid)
mcporter call mayar.get_latest_transactions page:1 pageSize:10
# Get unpaid invoices
mcporter call mayar.get_latest_unpaid_transactions page:1 pageSize:10
Filter by status: "created" (unpaid) → "paid" (success).
Other Operations
# Check account balance
mcporter call mayar.get_balance
# Get customer details
mcporter call mayar.get_customer_detail \
customerName="Name" \
customerEmail="email@example.com" \
page:1 pageSize:10
# Filter by time period
mcporter call mayar.get_transactions_by_time_period \
page:1 pageSize:10 \
period:"this_month" \
sortField:"createdAt" \
sortOrder:"DESC"
Common Patterns
Multi-Item Invoice
items='[
{"quantity":2,"rate":500000,"description":"Product A"},
{"quantity":1,"rate":1000000,"description":"Product B"}
]'
// Total: 2M (2×500K + 1×1M)
Subscription/Recurring
Use membership tools:
mcporter call mayar.get_membership_customer_by_specific_product \
productName:"Premium Membership" \
productLink:"your-product-link" \
productId:"product-uuid" \
page:1 pageSize:10 \
memberStatus:"active"
Payment Confirmation Flow
Option A: Webhook (Real-time)
- Register webhook URL with Mayar
- Receive instant payment notifications
- Best for production
Option B: Polling (Simpler)
- Poll
get_latest_transactionsevery 30-60s - Check for new payments
- Best for MVP/testing
Troubleshooting
404 on payment link:
- Link format:
https://your-subdomain.myr.id/invoices/slug - Check dashboard for correct subdomain
- Default may be account name
Invalid mobile number:
- Mobile MUST be string:
"\"628xxx\""(with escaped quotes) - Format:
628xxxxxxxxxx(no + or spaces)
Expired invoice:
- Default expiry is
expiredAttimestamp - Customer can't pay after expiration
- Create new invoice if needed
Reference Documentation
- API Details: See references/api-reference.md
- Integration Examples: See references/integration-examples.md
- MCP Tools Reference: See references/mcp-tools.md
Production Checklist
- Use production API key (not sandbox)
- Setup webhook for payment notifications
- Error handling for failed invoice creation
- Store invoice IDs for tracking
- Handle payment expiration
- Customer database integration
- Receipt/confirmation automation
Environments
Production:
- Dashboard: https://web.mayar.id
- API Base:
https://api.mayar.id/hl/v1/
Sandbox (Testing):
- Dashboard: https://web.mayar.club
- API Base:
https://api.mayar.club/hl/v1/
Files
4 totalComments
Loading comments…
