Tokenize payment details once, charge variable amounts on demand.
Frequent payments allow you to save (tokenize) customer payment details and then charge them variable amounts whenever needed, without requiring the customer to re-enter their payment information each time.
- One-Time Setup: Customer provides payment details once
- Variable Amounts: Charge different amounts for each transaction
- On-Demand Charging: You control when to charge
- Flexible Limits: Set min/max per transaction or total
- No Recurring Schedule: Unlike subscriptions, you trigger each payment
- Multiple Payment Methods: Support for cards, MB WAY, Multibanco, Direct Debit, Virtual IBAN
| Feature | Single | Frequent | Subscription |
|---|---|---|---|
| Setup | One payment | Tokenize once | Tokenize once |
| Charging | One-time | On-demand | Automatic/Scheduled |
| Amount | Fixed | Variable | Fixed |
| Control | Customer | Merchant | Automatic |
- Top-ups: Variable amounts for account credits
- On-Demand Services: Uber, food delivery, etc.
- Variable Billing: Usage-based charges
- Prepaid Cards: Loading variable amounts
- Pay-as-you-go: Cloud services, API usage
- Taxi/Ride Services: Different fares per ride
- Marketplace Purchases: Different cart totals
POST /frequent
{
"method": "cc",
"currency": "EUR",
"customer": {
"name": "John Doe",
"email": "john@example.com"
},
"max_value": 500.00 // Optional: max per capture
}Customer provides payment details once. Response:
{
"id": "freq-123",
"status": "active",
"method": "cc",
"customer": {...}
}POST /capture/:id
{
"value": 45.00,
"descriptive": "Taxi ride to airport"
}Response:
{
"id": "capture-456",
"status": "success",
"value": 45.00,
"payment_id": "freq-123"
}Capture additional amounts anytime:
POST /capture/:id
{
"value": 32.00,
"descriptive": "Taxi ride downtown"
}| Payment Method | Tokenization | On-Demand Capture |
|---|---|---|
| Credit/Debit Card | ✅ | ✅ |
| MB WAY | ✅ | ✅ |
| Multibanco | ✅ | ❌ (Customer-initiated) |
| Direct Debit | ✅ | ✅ |
| Virtual IBAN | ✅ | ❌ (Customer-initiated) |
Note:
- For Multibanco and Virtual IBAN, the frequent payment creates a fixed reference that customers can use multiple times to send funds at their discretion.
- For Credit Card, MB WAY, and Direct Debit, you can initiate captures on-demand.
Control spending limits to protect both you and your customers:
{
"min_value": 5.00, // Minimum per capture
"max_value": 100.00 // Maximum per capture
}{
"max_value": 1000.00 // Total amount across all captures
}{
"unlimited_payments": true // Allows unlimited payments for all payment methods
}Setup:
{
"method": "cc",
"min_value": 5.00,
"max_value": 200.00
}Each Ride:
{
"value": 24.50,
"descriptive": "Ride from Airport to Hotel"
}Setup:
{
"method": "cc",
"max_value": 5000.00,
"unlimited_payments": false
}Monthly Charges:
{
"value": 127.83,
"descriptive": "Cloud usage - March 2024"
}Setup:
{
"method": "cc",
"min_value": 10.00,
"max_value": 150.00
}Each Order:
{
"value": 34.99,
"descriptive": "Order #789 - Pizza & Drinks"
}Setup:
{
"method": "mbw",
"min_value": 5.00,
"max_value": 50.00
}Each Top-Up:
{
"value": 20.00,
"descriptive": "Mobile credit top-up"
}GET /frequent/{id}PATCH /frequent/{id}
{
"max_value": 200.00
}DELETE /frequent/{id}Effect: No more captures allowed, existing reference/token invalidated.
Use Checkout to tokenize payment details:
POST /checkout
{
"type": ["frequent"],
"payment": {
"methods": ["cc", "mbw", "dd"],
"currency": "EUR"
}
}Handle success callback:
startCheckout(manifest, {
onSuccess: (checkoutInfo) => {
const frequentPaymentId = checkoutInfo.payment.id;
// Save this ID for future captures
saveToDatabase(frequentPaymentId);
}
});- Clear Authorization: Inform customers they're authorizing future charges
- Spending Limits: Set reasonable limits to build trust
- Transaction Descriptions: Use clear, recognizable descriptive text
- Notification Emails: Email customers after each capture
- Easy Deactivation: Let customers deactivate frequent payments easily
- Failed Payment Handling: Retry logic and customer notification
- Audit Trail: Keep detailed logs of all captures
- Tokenization: Card details never stored, only secure tokens
- PCI Compliance: Easypay handles all PCI compliance
- 3DS Authentication: Additional security layer for card payments
- Spending Limits: Protect against excessive charges
- Customer Control: Customers can deactivate anytime
- Frequent Payment API Reference - Complete API documentation
- Checkout - Tokenize via Checkout
- Payment Types Guide - Compare payment types