Mayar Payment Integration
by @ahsanatha
Integrate Mayar.id payments to create invoices, generate payment links, track Indonesian payment methods, manage subscriptions, and automate payment workflows.
clawhub install mayar-paymentπ About This Skill
name: mayar-payment description: Mayar.id payment integration for generating invoices, payment links, and tracking transactions via MCP. Use when needing to: (1) Create payment invoices/links for customers, (2) Track payment status and transactions, (3) Generate WhatsApp-friendly payment messages, (4) Handle Indonesian payment methods (bank transfer, e-wallet, QRIS), (5) Manage subscriptions/memberships, or (6) Automate payment workflows for e-commerce, services, or digital products.
Mayar Payment Integration
Integrate Mayar.id payment platform via MCP (Model Context Protocol) for Indonesian payment processing.
Prerequisites
1. Mayar.id account - Sign up at https://mayar.id 2. API Key - Generate from https://web.mayar.id/api-keys 3. 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 paymentWhatsApp Integration Pattern
// 1. Create invoice const invoice = /* mcporter call mayar.create_invoice */;.trim();// 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! π
// 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:10Get 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_balanceGet customer details
mcporter call mayar.get_customer_detail \
customerName="Name" \
customerEmail="email@example.com" \
page:1 pageSize:10Filter 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)
Option B: Polling (Simpler)
get_latest_transactions every 30-60sTroubleshooting
404 on payment link:
https://your-subdomain.myr.id/invoices/slugInvalid mobile number:
"\"628xxx\"" (with escaped quotes)628xxxxxxxxxx (no + or spaces)Expired invoice:
expiredAt timestampReference Documentation
Production Checklist
Environments
Production:
https://api.mayar.id/hl/v1/Sandbox (Testing):
https://api.mayar.club/hl/v1/βοΈ Configuration
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.
π Tips & Best Practices
404 on payment link:
https://your-subdomain.myr.id/invoices/slugInvalid mobile number:
"\"628xxx\"" (with escaped quotes)628xxxxxxxxxx (no + or spaces)Expired invoice:
expiredAt timestamp