Skip to content
Coritan Docs

Manage payment methods

Save a card, bank account or PayPal account, choose which one is your default, and remove methods you no longer use.

View as Markdown

A saved payment method lets Coritan charge renewals and automatic top-ups without you. A card, a bank account and a PayPal account can be saved (Ways to pay lists the rest). You can still pay each invoice yourself without one. Manage your methods on the Payment methods tab of Billing, which also holds the auto-pay setting and automatic top-up.

  • Sign in to the dashboard.
  • Have the card, bank account or PayPal account to hand. The ways to save a method depend on your billing country (Currencies and countries) and on your account's currency.
  1. In the sidebar, select Billing, then the Payment methods tab.
  2. Select Add payment method. The page Add a payment method opens, at /dashboard/billing/methods/new.
  3. Under Kind of payment method, choose one.
  4. Under How we use it, leave Use this for renewals and top-ups ticked to make the method your default. Clear it to save the method without making it the default.
  5. Finish for the kind you chose:
    • For a card or a bank account, select Enter payment details. A Payment details section opens in place of the kinds, under How we use it. Choose or enter the method and select Save payment method. Choose another way goes back to the kinds. The form lists only the methods that renewals can use and that are open for your country and currency. Your bank may ask you to confirm. The form does not offer Apple Pay or Google Pay: pay an invoice with one and the card is kept (Pay with Apple Pay or Google Pay). When we take cards through Square, the same button opens Square's card form, and Save card keeps the card once saving is on for your account.
    • For PayPal, select the PayPal button, sign in to PayPal in the window that opens and approve future payments. You stay on the page.
    • For any other provider, select the button that starts with Continue to, complete the provider's page, and it brings you back to the Payment methods tab.

When the method is saved, a message says so, for example Visa ending in 4242 saved., and you return to the Payment methods tab, or to the page you came from. While you save, Cancel is held and a link asks Leave while saving? first.

Coritan does not charge you when you save a method. Your bank may show a small authorization that drops off.

A bank account is not saved the moment you select Save payment method. Your bank has to confirm it, which can take days. The tab then shows a notice instead of a message that the method is saved:

Adding your payment method
Your bank is confirming the account. The notice says Your bank is confirming this payment method. We save it as soon as the bank confirms, which can take a few days. Nothing is charged and nothing is saved yet. The tab reads your methods again a few times, and the account appears when the bank confirms it. Select Dismiss to hide the notice. If you leave the tab, the account is still saved when the bank confirms.
One more step to add your payment method
Your bank needs to check the account first, for example with two small deposits. The notice says Your bank needs one more step before we can save this payment method. The Add a payment method page shows this in place of the form. Select Verify your account, which opens your bank's page in a new tab, and finish the check there. Then select Back to Payment methods, or Continue when you came from another page.

A saved bank account shows as its type and the end of its number, for example SEPA Direct Debit ending in 3000. Once it is saved, Coritan can charge it for renewals and automatic top-ups. Each charge takes days to clear (How long a bank payment takes).

Your default method is the one marked Default. Coritan charges it for renewals and automatic top-ups. To change it, select Make default on another method.

  1. Select Remove… on the method.
  2. Read the dialog and select Remove payment method.

Coritan stops charging the method. If it was your default, make another method the default before your next renewal; otherwise Coritan charges the method you saved most recently.

Pay with a saved method in another currency

Section titled Pay with a saved method in another currency

When your account's currency is not US dollars, a saved card pays an invoice or adds credit in that currency, as long as the card's account takes it. When it does not, Pay and Add stop with This card cannot pay in EUR. Choose another card or pay with a new card. and you stay on the page. Choose another card, pay with a new card, or select Pay in US dollars to pay in US dollars. Renewals and automatic top-ups are not affected: they use the method we already charge for them.

Saving a card names your account's currency too. When no account can save a card in that currency, the page says why and offers Use US dollars.

The card at the top of the tab says whether auto-pay is on. Select Turn off auto-pay or Turn on auto-pay to change it. Auto-pay is on for new accounts.

Important

Turning auto-pay off does not stop automatic charges at the moment. Coritan still takes each renewal invoice from your credit first and then charges your saved methods. To pay every renewal yourself, remove your saved methods and keep your balance at zero.

A message confirms each change, for example Visa ending in 4242 saved., Visa ending in 4242 is now your default. or Payment method removed. Each saved method shows its name, its expiry date (such as Expires 08/2029) or email address, and the date you added it. A bank account shows its type and the end of its number.

Adding a method does two more things:

  • Any renewal invoice still waiting for payment moves to the new method for its next try.
  • Retries that stopped because your bank refused a card start again with the new method (Failed payments and suspended services).

A card you pay with in the dashboard also appears in your saved methods. It becomes the default when you have no default yet. A card you pay with through Apple Pay or Google Pay is named after its wallet, for example Apple Pay (Visa ending in 4242).

No way to pay is available right now
Nothing is set up to save a payment method for your country. Contact support.
Could not start adding a payment method
The provider did not start the setup. The message under it gives the reason. Try again, or choose another kind of method.
We could not add the payment method. Try again or choose another one.
Your bank refused the check. Nothing was saved. Try another method.
You cancelled adding the payment method.
You left the provider's page before finishing. Nothing was saved.
Adding your payment method stays on the tab
Your bank has not confirmed the account yet. Wait for it: the account appears on the tab when the bank confirms, which can take days. If it has not appeared after a few days, contact support.
One more step to add your payment method
Select Verify your account and finish your bank's check. Nothing is saved until you do.
Back from the payment provider. If the method was approved it appears below shortly.
The dashboard could not tell whether the provider approved the method. Reload the tab after a minute.
Could not confirm the payment method
The provider approved the method but Coritan could not save it. Add it again.
We cannot save a card in your currency
No account we use can save a card in your account's currency. The message under it gives the reason. Select Use US dollars to save the card in US dollars.
Two methods show Default
Each payment provider keeps its own default, so a card and a PayPal account can both be marked Default. Coritan then cannot choose between them for renewals and automatic top-ups. Remove the one you do not want charged and add it again with Use this for renewals and top-ups cleared.
Could not change auto-pay
The setting did not save. Try again.

GET /payments/methods lists your saved methods, the default first and then the newest:

Shell
curl https://api.coritan.com/api/v1/payments/methods \
  -H "Authorization: Bearer $CORITAN_TOKEN"
JSON
[
  {
    "id": 812,
    "gateway_name": "stripe",
    "gateway_config_id": 3,
    "currency": "USD",
    "method_type": "card",
    "display_label": "Visa ending in 4242",
    "brand": "visa",
    "last4": "4242",
    "expires_month": 8,
    "expires_year": 2029,
    "email": null,
    "is_default": true,
    "is_active": true,
    "created_at": "2026-09-01T10:20:00"
  }
]

id is what you send as payment_method_id when you pay an invoice or add credit. gateway_name is the provider account that holds the method, and currency is the currency automatic charges to it are made in. method_type is card, paypal or another kind, such as bank_debit or wallet. A saved bank account has method_type bank_debit. A card from Apple Pay or Google Pay is a card, and its display_label names the wallet, as in Apple Pay (Visa ending in 4242).

Saving a method takes two calls, with a browser step between them for the cardholder:

  1. Start with POST /payments/methods/setup. Send return_url and cancel_url, where the provider sends the payer back. gateway_name picks the provider account; leave it out and Coritan picks one for currency (default USD) and your billing country. country_code overrides the billing country for that choice.
  2. Finish the payer's step. For a card, the answer's client_secret is for Stripe.js confirmSetup in a browser. For PayPal, session_id is the setup token the payer approves. For other providers, send the payer to redirect_url.
  3. Call POST /payments/methods/confirm with gateway_name, session_id (the SetupIntent id for a card, or the approved PayPal token) and set_as_default. Send currency to choose the currency automatic charges use; it defaults to USD. A SetupIntent that was not started for your account answers 400 with This card setup was not started from your account and saves nothing.
Shell
curl -X POST https://api.coritan.com/api/v1/payments/methods/setup \
  -H "Authorization: Bearer $CORITAN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"gateway_name": "stripe", "return_url": "https://www.coritan.com/dashboard/billing/methods", "cancel_url": "https://www.coritan.com/dashboard/billing/methods"}'
JSON
{
  "redirect_url": null,
  "client_secret": "seti_1Qexample_secret_example",
  "session_id": "seti_1Qexample",
  "requires_redirect": false,
  "gateway_name": "stripe",
  "currency": "USD"
}

The confirm call answers with the saved method, in the same shape as the list, and status succeeded. A bank account that the bank has not confirmed yet answers status processing with a message for the customer, and nothing is saved until the bank confirms. A bank account that needs a check answers status requires_action with a message and, for a check at the bank's own page, a next_action_url. Once the bank confirms, the method appears in GET /payments/methods. Both calls answer 400 with the reason when the provider cannot save a method, for example No gateway account available for EUR.

We no longer take payments with Square. No Square account is open, so a Square card cannot be saved and the two calls refuse a Square gateway_name. The rest of this section describes the calls while the routes remain.

Square can also keep a card, through the same two calls. It is off until we switch it on for the Square account. While it is off, Square accounts are never offered for saving: POST /payments/methods/setup and POST /payments/methods/confirm with a Square gateway_name answer 400 with Saved cards are not switched on for this card account. and create nothing.

When it is on:

  1. Call POST /payments/methods/setup with gateway_name for the Square account and the return_url and cancel_url you send for any provider. Square does not use them. The answer has session_id square, adapter square, requires_redirect false, no client_secret and no redirect_url, and public_config holds the application_id and location_id for Square's card form. Without gateway_name we pick the account among the card_adapters you send in the body (stripe and square, default stripe), so a page that cannot draw Square's form never gets a Square account.
  2. Draw Square's card form, call tokenize() and send the token to POST /payments/methods/confirm with gateway_name, session_id square, set_as_default, and callback_data {"source_id": "<token>", "verification_token": "...", "cardholder_name": "...", "billing": {...}}. Only source_id is required. A payment_id in callback_data is ignored: a card is saved from a token, or from a payment taken in the same request, and never from an id you name. The answer is the saved method. A card you already save on the account answers the method it already is.

Square updates a saved card's expiry when the bank issues a new one, and we apply it to the saved method. A saved Square card is charged for renewals and automatic top-ups without asking the cardholder to confirm. A renewal the bank declines for a reason that a new card fixes (an expired card, for example) stops retrying that card, and the retries start again when you save a new card or Square updates the card. DELETE /payments/methods/{method_id} also disables the card at Square.

Change the default or remove a method

Section titled Change the default or remove a method

PUT /payments/methods/{method_id}/default makes a method the default and answers {"message": "Default payment method updated"}. It clears is_default only on your other methods from the same provider, as the dashboard does.

DELETE /payments/methods/{method_id} removes a method from Coritan and from the provider, and answers {"message": "Payment method removed"}. Both answer 404 with Payment method not found for a method that is not yours.

See which providers can take a payment

Section titled See which providers can take a payment

GET /payments/payment-config lists the provider accounts that can take a payment in a currency, as the dashboard's payment dialogs use it. It takes currency (default: your account's currency), country (default: your billing country) and card_adapters (the card forms your page can draw, stripe, square or stripe,square; default stripe, so a Square account is left out unless you name it), and answers with currency, country and accounts. Each account has its name, adapter (stripe, square, paypal or another provider), display_name, the method_types it offers, whether it can save a method (supports_tokenization), charge a saved one (supports_merchant_charge) or run a checkout page (supports_customer_checkout), and what a browser needs in public_config, such as a Stripe account's publishable_key and payment_method_configuration. The account for your country comes first, marked preferred_for_country.

GET /payments/gateways with currency lists the accounts that can save a method in that currency, in the same shape. Without currency it lists every provider with what it supports.

Send auto_pay_enabled to PATCH /payments/preference. GET /payments/preference returns it with your currency and country (Currencies and countries). The setting has the limit described above.

Shell
curl -X PATCH https://api.coritan.com/api/v1/payments/preference \
  -H "Authorization: Bearer $CORITAN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"auto_pay_enabled": false}'

API operations on this page

MethodPathWhat it does
GET/api/v1/payments/methodsList payment methods
POST/api/v1/payments/methods/setupStart saving a card without a payment
POST/api/v1/payments/methods/confirmFinish saving a payment method and answer how the setup stands
PUT/api/v1/payments/methods/{method_id}/defaultSet default payment method
DELETE/api/v1/payments/methods/{method_id}Remove payment method
GET/api/v1/payments/payment-configEligible gateway accounts + non-secret public config for embedded UIs
GET/api/v1/payments/gatewaysList live gateway accounts, optionally filtered by pay currency
GET/api/v1/payments/preferenceYour currency and billing country, and how each was set
PATCH/api/v1/payments/preferenceSave your currency, your billing country or your auto-pay setting