Start a top-up of the org's prepaid credit, paid on Mollie's checkout
Starts a payment for amount_eur of credit (at list prices, which
include 17% Luxembourg VAT; EUR 5 to EUR 1,000 in whole cents) at
Mollie, the payment provider, and returns it with checkout_url,
the page on mollie.com where it is paid. What it charges
(charged_eur) follows tax_treatment, from the org’s billing
details as they are now: lu_vat charges the amount, VAT
included; reverse_charge and outside_eu charge it less the
VAT (amount_eur / 1.17, rounded to the cent). Once Mollie
confirms the payment, the org gets prepaid credit of amount_eur,
which never expires (/v1/balance), once, and the top-up gets
its invoice (invoice_id). A failed, canceled or expired payment
grants nothing. Owners’ and admins’ keys only (403 forbidden
otherwise).
The org must have saved its billing details (/v1/billing) first
(409 billing_details_required). 409 topup_not_available, with
a message saying why: the org cannot top up as it would be taxed,
for now a consumer outside the EU (a business there needs its tax
ID in its billing details), or a consumer in another EU country
once the year’s such sales reached the EU threshold. An amount out
of bounds is 400 bad_request; more than 10 top-ups started in an
hour is 429 rate_limited. 502 payment_provider_error: Mollie
could not be reached or refused the payment; nothing is charged.
503 unavailable: the deployment takes no payments. While test
is true, payments go through Mollie’s test mode and no money
moves, and their invoices are drafts.
/v1/billing/topupsAuthorizationBearer token · headerrequiredOrg-scoped API key, pols_....
application/jsonamount_eurstringrequiredEuros, VAT included, from 5 to 1000 in whole cents.
The top-up, open for payment at checkout_url.
idstringrequiredamount_eurstringrequiredThe credit it adds, at list prices, VAT included; decimal string with 2 places.
charged_eurstringrequiredWhat Mollie charges; amount_eur unless the org buys without VAT (tax_treatment).
tax_treatmentTaxTreatment | nullrequiredHow VAT applies to it, fixed when it started; null for a top-up from before invoices.
Show propertiesHide properties
stringnullstatusTopUpStatusrequiredWhere the top-up's payment stands at Mollie. open: waiting to be
paid at checkout_url. pending: started, waiting for the bank
or card issuer. authorized: authorized, not yet captured.
paid: paid; the credit was added. canceled, expired,
failed: not paid, and nothing was added. The last four are final.
openpendingauthorizedpaidcanceledexpiredfailedtestbooleanrequiredPaid in Mollie's test mode, which moves no money.
checkout_urlstring | nullrequiredWhere the top-up is paid, on mollie.com, while it is open; null otherwise.
credit_lot_idstring | nullrequiredThe prepaid credit lot the paid top-up added (/v1/balance); null until it is paid.
invoice_idstring | nullrequiredThe paid top-up's invoice (/v1/invoices/{invoice}); null until it is issued, and for a top-up from before invoices.
created_atstring<date-time>requiredpaid_atstring<date-time> | nullrequiredRate limited (rate_limited): too many requests or failed
authentications from this address, too many requests or
lifecycle calls for this org, or too many of its exec, file,
computer and CDP calls in progress at once. Retry after
Retry-After seconds.
errorobjectrequiredShow propertiesHide properties
codestringrequiredStable machine-readable code: bad_request (400),
unauthorized (401), insufficient_credit (402, no
credit left to start a sandbox), forbidden (403),
quota_exceeded (403), trial_limit (403, beyond what a
trial org may run), not_found (404), conflict (409),
billing_details_required (409, save the billing details
before topping up), topup_not_available (409, the org
cannot top up as it would be taxed; the message says why),
desktop_controlled (409, a person viewing the desktop has
taken control of it, see control), rate_limited (429,
see Retry-After), trial_capacity
(429, all trial capacity in use; retry after
Retry-After), host_capacity (429, the host is short of
memory right now, so nothing new starts there; retry after
Retry-After), internal (500),
runtime_error (502, the sandbox host failed),
payment_provider_error (502, Mollie could not be
reached or refused a payment),
unavailable (503, the feature is not configured on this
deployment), waking (503, the sandbox is still waking
from standby or booting; retry), timeout (504, or 408 when a request
body stalls).
messagestringrequiredcontrolDesktopControlWho has control of a sandbox's desktop. In an error, it is present
only with code desktop_controlled.
Show propertiesHide properties
heldbooleanrequiredSomeone viewing the desktop has taken control of it.
holderstringOnly when held; their name as the desktop's viewers see it, their user's name or else their API key's.
sincestring<date-time>Only when held; when they took control.
expires_atstring<date-time>Only when held; when control lapses unless they use the desktop before.
Error.
errorobjectrequiredShow propertiesHide properties
codestringrequiredStable machine-readable code: bad_request (400),
unauthorized (401), insufficient_credit (402, no
credit left to start a sandbox), forbidden (403),
quota_exceeded (403), trial_limit (403, beyond what a
trial org may run), not_found (404), conflict (409),
billing_details_required (409, save the billing details
before topping up), topup_not_available (409, the org
cannot top up as it would be taxed; the message says why),
desktop_controlled (409, a person viewing the desktop has
taken control of it, see control), rate_limited (429,
see Retry-After), trial_capacity
(429, all trial capacity in use; retry after
Retry-After), host_capacity (429, the host is short of
memory right now, so nothing new starts there; retry after
Retry-After), internal (500),
runtime_error (502, the sandbox host failed),
payment_provider_error (502, Mollie could not be
reached or refused a payment),
unavailable (503, the feature is not configured on this
deployment), waking (503, the sandbox is still waking
from standby or booting; retry), timeout (504, or 408 when a request
body stalls).
messagestringrequiredcontrolDesktopControlWho has control of a sandbox's desktop. In an error, it is present
only with code desktop_controlled.
Show propertiesHide properties
heldbooleanrequiredSomeone viewing the desktop has taken control of it.
holderstringOnly when held; their name as the desktop's viewers see it, their user's name or else their API key's.
sincestring<date-time>Only when held; when they took control.
expires_atstring<date-time>Only when held; when control lapses unless they use the desktop before.