Purchases a fixed Point bundle for your organisation. Enable API Point purchases and save your settings before making a purchase. Only treat the purchase as paid when data.top_up.status is paid.
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
Purchase Points
POST https://api.servertastic.com/v3/points/top-ups
Use this endpoint to purchase a fixed bundle of Points for your organisation.
Before making a purchase:
- enable API Point purchases in your Servertastic account and save your settings;
- make sure your organisation has a valid saved payment method; and
- obtain your organisation API key.
You can specify a currency and saved payment method for each purchase. If currency is omitted, your organisation's saved currency is used. If payment_source_id is omitted, your default payment method is used. If you only have one saved payment method, that payment method will be used.
curl --request POST 'https://api.servertastic.com/v3/points/top-ups' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"points": 100, "currency": "USD", "payment_source_id": "card_example", "reference": "topup-2026-001"}'Request fields
points
pointsRequired.
Choose one of the fixed Point bundles available to your organisation:
100
250
500
1000
2500
5000
7500Purchases remain subject to the limits configured for your organisation.
currency
currencyOptional.
Supported values are USD, GBP and EUR.
If omitted, your organisation's saved currency is used.
payment_source_id
payment_source_idOptional.
Use a valid saved payment method ID belonging to your organisation. Available IDs can be retrieved using List saved payment methods.
If omitted, your default payment method is used. If you only have one saved payment method, that payment method will be used.
reference
referenceRequired.
Provide a unique reference for each Point purchase. The reference can contain up to 100 letters, numbers, dots (.), underscores (_), colons (:) or hyphens (-).
For example:
topup-2026-001Safely retrying a purchase
The reference helps protect against duplicate charges.
If you need to retry a purchase, reuse the same reference, Point amount, currency and payment method.
If currency was omitted from the original request, keep your organisation's saved currency unchanged while retrying.
For an unknown payment result, reuse the existing reference. Do not create another purchase using a new reference.
Currency and payment method
The currency and payment method supplied in the request apply only to that purchase. They do not change the saved defaults for your organisation.
Prices are calculated by the billing provider. Do not send a price or customer ID.
Handling the response
| HTTP status | Meaning |
|---|---|
| 201 | Purchase paid and Points added |
| 200 | Existing paid purchase returned |
| 402 | Payment failed or is awaiting payment |
| 403 | Invalid API key or API Point purchases are disabled |
| 404 | API Point top-ups are not available |
| 409 | Conflicting reference, limit or unresolved payment |
| 422 | Invalid request, payment method or missing currency |
| 429 | Purchase frequency or daily limit reached |
| 502 | Payment methods are temporarily unavailable |
A successful response contains data.top_up and data.points_balance.
Only treat the purchase as paid when:
top_up.status: paidDo not rely on the HTTP response alone to determine that the Point purchase completed. Check the returned top_up.status.
If the payment result is unknown, retry using the same reference rather than creating a new purchase.
402Payment failed or is awaiting payment
403Invalid API key or API Point purchases are disabled
404API Point top-ups are not available
409Conflicting reference, limit or unresolved payment
422Invalid request, payment method or missing currency
429Purchase frequency or daily limit reached
502Payment methods are temporarily unavailable
