Billplz
Billplz offers a REST API that lets you create Collections and Bills in Malaysian Ringgit, generate payment URLs for customers, and receive webhook callbacks and redirects to programmatically collect and track payments.
Admin: update documentationPOST
/v3/collections
Creates a Collection with optional Split Rule configuration.
title ( query , required ) — The Collection title. Displayed on the Bill template.logo ( query ) — Image file to be resized to avatar (40x40) and thumbnail (180x180).split_payment[email] ( query ) — Email address of the Split Rule's recipient (must be a verified account).split_payment[fixed_cut] ( query ) — Positive integer in the smallest currency unit going to your account; required if variable_cut is not present.split_payment[variable_cut] ( query ) — Percentage in positive integer format going to your account; required if fixed_cut is not present.split_payment[split_header] ( query ) — Boolean flag to show the Split Rule recipient's infographic on bill and receipt templates.GET
/v3/collections/{collection_id}
Retrieves a single Collection record.
collection_id ( path , required ) — Collection ID returned in the Collection object.GET
/v3/collections
Retrieves your Collections list.
page ( query , page ) — Up to 15 collections will be returned per page; defaults to 1.status ( query ) — Filter collections by status; valid values are active and inactive.POST
/v3/collections/{collection_id}/activate
Activates a Collection.
collection_id ( path , required ) — Collection ID returned in the Collection object.POST
/v3/collections/{collection_id}/deactivate
Deactivates a Collection.
collection_id ( path , required ) — Collection ID returned in the Collection object.POST
/v3/bills
Creates a Bill inside a Collection.
collection_id ( query , required ) — The Collection ID. A string.email ( query ) — Email address of the bill's recipient. Required if mobile is not present.mobile ( query ) — Recipient's mobile number with country and area code, without spaces or dashes. Required if email is not present.name ( query , required ) — Bill's recipient name. Max 255 characters.amount ( query , required ) — Positive integer in the smallest currency unit (e.g., 100 cents = RM 1.00).callback_url ( query , required ) — Webhook URL to be called after payment completion.description ( query , required ) — Bill's description displayed on the bill template. Max 200 characters.due_at ( query ) — Due date for the bill in YYYY-MM-DD format; defaults to today.redirect_url ( query ) — URL to redirect the customer after payment is completed.deliver ( query ) — Boolean to set email and SMS delivery. Default false.reference_1_label ( query ) — Label #1 to reconcile payments. Max 20 characters.reference_1 ( query ) — Value for reference_1_label. Max 120 characters.reference_2_label ( query ) — Label #2 to reconcile payments. Max 20 characters.reference_2 ( query ) — Value for reference_2_label. Max 120 characters.GET
/v3/bills/{bill_id}
Retrieves a single Bill.
bill_id ( path , required ) — Bill ID returned when a Bill is created.DELETE
/v3/bills/{bill_id}
Deletes (expires) a Bill before its default expiry date.
bill_id ( path , required ) — Bill ID to be deleted.POST
/webhook/
POST /webhook/ with form‑urlencoded body containing id and collection_
9 endpoints auto-detected
Authentication
This API uses Basic authentication (a username and password).
curl -X POST \
"https://www.billplz.com/api/v3/collections" www.billplz.com · HTTPS only