Skip to content
pols.so docs
Esc
↑↓navigate↵open⌘Jpreview

Set up a new payment method for the subscription, on Mollie's checkout

Starts a payment of EUR 0.00 by card at Mollie and returns it with checkout_url, where the new card is entered on mollie.com. Once Mollie confirms it, the subscription is charged on that card from then on (payment_method). Nothing is charged and no credit is added. 404 not_found: the org has no subscription that has not ended. 409 subscription_state: its first payment is not complete. 429 rate_limited, 502 payment_provider_error and 503 unavailable as for startSubscription. Owners’ and admins’ keys only (403 forbidden otherwise).

POST/v1/billing/subscription/payment-method
Authorization
AuthorizationBearer token · headerrequired

Org-scoped API key, pols_....

Responses
201

The payment, open at checkout_url.

idstringrequired
kindSubscriptionPaymentKindrequired

first: the first month, paid on Mollie's checkout, which also sets up the payment method. renewal: a later month, which Mollie charges on the payment method. payment_method: a payment of EUR 0.00 on the checkout that sets up a new payment method.

Allowed:firstrenewalpayment_method
statusobjectrequired

Where the payment stands at Mollie, as for a top-up; a paid month added its credit.

Show properties
object
charged_eurstringrequired

What Mollie charges; "0.00" for payment_method.

credit_eurstringrequired

The usage a paid month includes, at list prices; "0.00" for payment_method.

tax_treatmentTaxTreatment | nullrequired

How VAT applies to the month; null for payment_method.

Show properties
Any of:
TaxTreatment
string
null
null
testbooleanrequired

Made in Mollie's test mode, which moves no money.

checkout_urlstring | nullrequired

Where a first or payment_method payment is paid, on mollie.com, while it is open; null otherwise.

credit_lot_idstring | nullrequired

The subscription credit lot the paid month added (/v1/balance); null otherwise.

invoice_idstring | nullrequired

The paid month's invoice (/v1/invoices/{invoice}); null until it is issued, and for payment_method.

created_atstring<date-time>required
paid_atstring<date-time> | nullrequired
429

Rate 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.

errorobjectrequired
Show properties
codestringrequired

Stable 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).

messagestringrequired
controlDesktopControl

Who has control of a sandbox's desktop. In an error, it is present only with code desktop_controlled.

Show properties
heldbooleanrequired

Someone viewing the desktop has taken control of it.

holderstring

Only 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.

default

Error.

errorobjectrequired
Show properties
codestringrequired

Stable 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).

messagestringrequired
controlDesktopControl

Who has control of a sandbox's desktop. In an error, it is present only with code desktop_controlled.

Show properties
heldbooleanrequired

Someone viewing the desktop has taken control of it.

holderstring

Only 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.

Request
curl -X POST 'https://api.pols.so/v1/billing/subscription/payment-method' \
  -H 'Authorization: Bearer YOUR_TOKEN'
Response
{
  "id": "pay_7h2k9m4q1x8z",
  "kind": "first",
  "status": "open",
  "charged_eur": "20.00",
  "credit_eur": "25.00",
  "tax_treatment": "lu_vat",
  "test": true,
  "checkout_url": "string",
  "credit_lot_id": "string",
  "invoice_id": "string",
  "created_at": "2019-08-24T14:15:22Z",
  "paid_at": "2019-08-24T14:15:22Z"
}