Auto-Deduct
Updated 19 hours ago
Auto-Deduct lets you charge a customer's card on demand using a V5 Agreement, without requiring them to enter card details each time (also known as card-on-file payments). The customer authorizes their card once through a secure Billplz page (tokenization), and you charge it whenever a payment is due via API. For the full API reference, see the V5 Agreement API documentation.
How Auto-Deduct works
Auto-Deduct uses the V5 Agreement API. The process has two parts: a one-time setup and repeatable charges.
One-time setup (tokenization)
- You create an Agreement via the API, providing the customer's name, email, and phone number.
- Billplz returns an
authorize_consent_url. Redirect the customer to this URL. - The customer enters their card details (card number, expiry, security code, cardholder name) on a secure Billplz-hosted page and clicks Authorize.
- Once authorized, the card is tokenized. Billplz stores the card securely; you receive an
agreement_idwith statusauthorised.
The customer only does this once.
Charging (Auto-Deduct)
Once an Agreement is authorized, you can charge the customer's card at any time:
- Create a Bill via the existing Billplz API (v3) with the amount you want to charge.
- Call the Auto-Deduct endpoint with the
bill_idand theagreement_id. - Billplz charges the tokenized card. No customer action is needed.
- Billplz sends a callback to the bill's
callback_urlwith the payment result.
You decide when and how much to charge. There is no built-in scheduler; each charge is triggered by your system via API.
Stopping charges (Revoke)
To stop future charges on an Agreement, call the Revoke endpoint with the agreement_id. The Agreement status changes to revoked, the token is invalidated, and any future Auto-Deduct attempts return a 422 error.
Either the merchant or the customer can initiate a revoke. Customers can revoke from the Billplz dashboard under Settings > Credit Cards.
Agreement statuses
Status | Meaning |
|---|---|
| Agreement created, customer has not yet visited the authorization page. |
| Customer is on the authorization page. |
| Customer has authorized. Card is tokenized and ready for Auto-Deduct. |
| Authorization failed (customer rejected, card declined, or error). |
| Agreement revoked. Card can no longer be charged. |
Who Auto-Deduct is for
Auto-Deduct is suited for merchants who charge customers repeatedly and want to remove friction from each payment:
- Instalments: split a purchase into multiple card charges over time
- Membership renewals: charge members monthly or annually without chasing payment
- Repeat invoicing: charge retainer clients or regular service customers on your schedule
- Utilities and fees: collect recurring fees (tuition, rent, contributions) from a saved card
Rates
Auto-Deduct transaction fees vary by membership tier and card origin (local vs foreign). See the Billplz pricing page for current rates.
Basic | Standard | |
|---|---|---|
Auto-Deduct MYR | 2.3% + MYR 1.25 | 2% + MYR 0.75 |
Auto-Deduct Non-MYR | 4.2% + MYR 1.25 | 4% + MYR 0.75 |
Payout | T+2 business days | T+2 business days |
Limitations
- Card only. Auto-Deduct currently supports card tokenization (
billplz_card) only. FPX, Wallet, and other payment methods are not supported. - API only. Auto-Deduct is available through the V5 Agreement API. There is no dashboard interface for creating agreements or triggering charges.
- No built-in scheduling. Your system triggers each charge. Billplz does not schedule or automate the timing of deductions.
- Beta access. Auto-Deduct requires activation by Billplz. Contact [email protected] to request access.
Common issues
Was this article helpful?