Add credit to your balance
Top up your credit balance with a card or another payment method, and see how Coritan spends that credit.
Credit is money you pay in ahead of time. Coritan holds it in US dollars, it never expires, and Coritan spends it before it charges a payment method. Add credit to pay for hourly services, to cover renewals, or to pay an invoice without a card.
Before you begin
Section titled Before you begin- Sign in to the dashboard.
- Decide how much to add. One top-up is between $1.00 and $10,000.00. In another currency the limits show in that currency, for example
€0.94and€9,312.00. - Have a way to pay: a saved method, a card, a card in Apple Pay or Google Pay, a bank or local method open to you, a PayPal account or cryptocurrency. Ways to pay lists them.
Add credit
Section titled Add creditIn the sidebar, select Billing. The Add credit card is on the Overview tab. The Add credit button on the dashboard's home page opens the same card.
Under Amount, choose one of the amounts shown, or choose Other and type one. In US dollars they are
$10,$25,$50,$100and$250. In another currency they are round amounts of about the same value, such as€10,€25,€45,€95and€230.Under Currency, check the currency we charge. Choose another one if you want to pay in it. The amounts change with it, and the choice is your account's currency, the same one as in Settings.
Under Pay with, choose how to pay:
- A saved card or PayPal account. Coritan charges it straight away.
- Card to pay with a new card or another method.
- PayPal to pay with a PayPal account. PayPal's buttons appear in the card.
- Crypto to send cryptocurrency. Pay with cryptocurrency walks through it.
- Any other provider, which opens its own checkout page.
An Apple Pay or Google Pay button above Pay with pays in one step instead, as Add credit with Apple Pay or Google Pay describes.
Select the button at the bottom of the card:
Add $25.00(with your amount) for a saved method or a new card. In another currency the button shows the amount you pay in that currency, for exampleAdd €25.00.Continue toand the provider's name for a checkout page. Pay there, and the provider brings you back to Billing.- For PayPal, select PayPal's button and approve the payment in the window that opens. You stay on the page.
For a new method, enter it in the Payment details form that opens in the Add credit card in place of the choices and select Pay now. Choose another way goes back to the choices. If your bank asks you to confirm a saved card, the form is called Confirm with your bank.
Add credit in another currency
Section titled Add credit in another currencyYour credit stays in US dollars. When your account's currency is not US dollars, you type the amount you want to pay in your currency, and the box under Other shows the credit it adds, for example Adds $53.69 USD of credit. The card shows $26.85 USD of credit above the button, and under it You will be charged about €25.00. We work out that amount when you pick it, at the exchange rate we publish for your currency, and charge exactly what the line says unless the rate moves first. If it does, the page asks you to check the new amount.
A saved card pays in the currency you chose only when its account takes that currency. If it does not, the card shows the reason and Pay in US dollars, which changes your account's currency to US dollars. PayPal takes the payment in the same currency.
Add credit with Apple Pay or Google Pay
Section titled Add credit with Apple Pay or Google PayWhen your phone or browser can pay with Apple Pay or Google Pay, the Add credit card shows that wallet's button above Pay with. On a computer, Apple Pay shows a QR code that you scan with an iPhone on iOS 18 or later. It appears for any amount from $1.00 to $10,000.00.
- In the sidebar, select Billing. The Add credit card is on the Overview tab.
- Under Amount, choose an amount, or choose Other and type one. The button greys out for a moment while it takes the new amount.
- Select the Apple Pay or Google Pay button.
- Check the amount on the payment sheet that opens, and approve the payment. The sheet shows what we charge: your amount in your account's currency, converted from US dollars.
The card says Confirming your payment… while we confirm the payment, then a message confirms the top-up. Until then, the amount and the other ways to pay wait. Like any card you pay with in the dashboard, the card then appears on the Payment methods tab, named after its wallet: for example Apple Pay (Visa ending in 4242).
The sheet charges the amount it opened with. If you change the amount while the sheet is open, we charge nothing, and you select the button again to pay the new amount. While another payment is in progress, such as a saved card or PayPal, the button is greyed out and does nothing.
When the payment is still processing
Section titled When the payment is still processingA bank debit, a bank transfer and a voucher do not add credit at once. After you pay, a message says Your payment is on its way. We add the credit when the payment clears, which can take a few days. Your balance stays as it is until then, and Coritan adds the credit once, when the payment clears. The top-up shows on the Transactions tab, and Coritan emails you a receipt when the credit arrives (How long a bank payment takes).
Do not pay again while a payment processes. A method that sends you to another page (iDEAL, Klarna and others) brings you back to Billing, and the page says Your payment is being processed. This page updates when it is done. or Your payment is still being processed. Your balance updates when it clears. Do not pay again. If you cancel on that page, the message says Top-up cancelled. You paid nothing. (When a method sends you away and back).
A top-up with a saved method waits while an earlier top-up is processing. The page says An earlier top-up is still being processed. Wait for your credit to update before you add more. The wait lasts at most 21 days.
Result
Section titled ResultA message confirms the top-up, for example $25.00 added to your balance. The message always shows the credit in US dollars, even when you paid in another currency. Coritan emails you a receipt. The new balance shows on the Overview tab and in the sidebar, and the top-up appears on the Transactions tab (Transactions and payment attempts).
Once the credit you have added comes to $10.00 or more in total, hourly billing and usage billing unlock for your account, by default.
Your bank charges the amount in your account's currency, converted from US dollars (Currencies and countries).
How Coritan spends credit
Section titled How Coritan spends credit- New orders
- When you order a service, Coritan takes as much of the first invoice as your credit covers. If credit covers all of it, the service starts setting up at once.
- Renewals
- Coritan takes each renewal invoice from your credit first, and charges your saved method only for what credit does not cover.
- Hourly services
- Coritan takes each hour's charge from your credit (How hourly billing works).
- Services billed by use
- Coritan takes what each service used in the hour from your credit (How usage billing works).
- Invoices you pay yourself
- Choose Account credit on the pay page (Pay an invoice).
To keep the balance from running out, set up automatic top-up.
Troubleshooting
Section titled TroubleshootingEnter an amount between $1.00 and $10,000.00.- The amount is outside what one top-up can be. Choose another amount.
- Could not add the credit
- The payment did not start. The message under it gives the reason. Try again, or choose another way to pay.
- The Apple Pay or Google Pay button is missing
- The button appears only when your phone or browser holds a card in that wallet, and only for an amount from $1.00 to $10,000.00. Choose another way to pay.
- The Apple Pay or Google Pay button is greyed out
- Another payment is in progress, such as a saved card or PayPal. Wait for it to finish.
- The balance has not grown after I paid
- A bank debit, a bank transfer or a voucher has not cleared yet. The credit is added when it does, which can take days. Do not pay again (When the payment is still processing).
The amount changed to €23.12. Check it and pay again.- The amount in your account's currency changed, for example because the exchange rate moved, and we charged nothing. The button now carries the new amount. Select it again and check the amount on the sheet.
The amount changed while the payment sheet was open. Check it and pay again.- You chose another amount while the Apple Pay or Google Pay sheet was open, so we charged nothing. Check the amount, then select the button again.
Another payment started while the payment sheet was open, so we did not take this one.- You added credit another way while the Apple Pay or Google Pay sheet was open. We charged the wallet nothing. Check your balance before you pay again.
- Could not take the payment
- Apple Pay or Google Pay could not take the payment. The message under it gives the reason, for example
Your card was declined.Try again, or choose another way to pay. - Could not start the payment
- The Apple Pay or Google Pay payment could not be created. The message under it gives the reason. Try again, or choose another way to pay.
We received your payment and are confirming it. You do not need to pay again.- The wallet took the payment, and we are still recording it. The credit reaches your balance once we have, without you doing anything. Until you reload the page, the Add credit card does not offer Apple Pay or Google Pay again. If the credit does not arrive, contact support with the date and amount.
Your card was declined. Try another card.- The card form shows the reason in a sentence, for example this one or
The security code did not match. Check it and try again.Nothing was added. Enter the card again, or pay another way. The payment is processing. The invoice updates once it settles.- The card processor has accepted the payment but not finished it, as with a bank debit. The message says
invoicefor a top-up too. The credit is added once the payment settles. An earlier top-up is still being processed. Wait for your credit to update before you add more.- An earlier top-up has not settled, usually a bank debit (SEPA Direct Debit, ACH Direct Debit or Bacs Direct Debit), which takes days to clear: up to 4 business days for ACH, 6 for SEPA and 4 to 7 for Bacs. Coritan charged nothing for this one. The credit from the first is added once, when the bank confirms the debit, and then you can add more. If the bank refuses the debit, nothing is added and you can top up again.
We have not heard back from the card processor yet. Do not pay again until your invoice updates. If the payment went through, it updates within a few minutes.- The card processor did not answer in time, so we cannot say whether it took the payment. Check your balance before you pay again. The credit is added once we hear the result. If it does not arrive, contact support with the date and amount.
The bank did not approve the payment.- Your bank refused the payment, or the check it asked for was not completed. Nothing was added. Try again or pay another way.
Top-up cancelled. You paid nothing.- You left the provider's checkout page before paying.
Back from checkout. Your balance updates once the payment clears.- The provider has not confirmed the payment yet. Check your balance again later; do not pay twice.
Your bank still needs to confirm this payment.- Your bank has not finished its check. Complete it in the card form, or wait for the bank and check your balance later.
- Could not confirm the top-up
- You paid, but Coritan could not confirm the payment when you came back. Wait a few minutes and check your balance. If the credit does not arrive, contact support with the date and amount.
Related
Section titled RelatedWith the API
Section titled With the APIEvery top-up amount is in US dollars, from 1 to 10000; anything else answers 422. The payment is charged in currency when you send it, and otherwise in your account's currency.
Charge a saved method
Section titled Charge a saved methodPOST /billing/topup/manual charges a saved method (its id from GET /payments/methods) and adds the credit when the charge succeeds:
curl -X POST https://api.coritan.com/api/v1/billing/topup/manual \
-H "Authorization: Bearer $CORITAN_TOKEN" \
-H "Content-Type: application/json" \
-d '{"amount": "25.00", "payment_method_id": 812}'
{
"message": "Top-up successful",
"new_balance": 37.01,
"status": "succeeded",
"base_amount": "25.00",
"fx_rate": "1",
"currency": "USD"
}
When the bank wants the cardholder to confirm, the answer has status requires_action and a client_secret for Stripe.js in a browser. The credit is added when the confirmed payment succeeds, either by confirm-payment below or by the card processor's own notice, so it arrives once even when the page never comes back. A bank debit answers status pending with a message, and the credit is added once, when the debit clears; charge nothing else meanwhile, because a second top-up answers 409 with An earlier top-up is still being processed. Wait for your credit to update before you add more. until the first settles. A declined charge answers 402 with the bank's reason, and a method that is not yours answers 404 with Payment method not found.
Pay by card in a browser
Section titled Pay by card in a browser- Create the payment with
POST /billing/topup/pay-intent. Sendamount, and optionallygateway_name,currencyandsave_method(truekeeps the card for later charges). The answer hasstatusrequires_payment_method, aclient_secretfor Stripe.js,gateway_reference(the payment's id),charge_amountin the charged currency's smallest unit,base_amountandfx_rate. - The cardholder confirms the card in the browser with Stripe.js.
- Call
POST /billing/topup/confirm-paymentwith the query parametersgateway_nameandpayment_intent_id. You can addamountto check it: the call answers400withamount does not match the completed paymentwhen it differs from what was paid by more than two cents. The credit is the amount the payment was made for, added once. A bank debit that is still being processed answersstatuspendingwith amessage, and the credit arrives by itself when the debit clears. The call writes nothing and answers400for a payment made for an invoice,403for a payment another account made, and409for a payment that already settled something else or that does not name its top-up yet. In that last case the credit arrives by itself once the card processor confirms the payment.
curl -X POST "https://api.coritan.com/api/v1/billing/topup/confirm-payment?gateway_name=stripe&payment_intent_id=pi_3Qexample&amount=25" \
-H "Authorization: Bearer $CORITAN_TOKEN"
{
"status": "succeeded",
"gateway_name": "stripe",
"gateway_reference": "pi_3Qexample",
"client_secret": null,
"requires_action_url": null,
"new_balance": 37.01,
"credited_usd": 25.0
}
It answers requires_action while the bank still wants a check, and 402 with Payment not completed when the payment failed. Coritan credits each payment once, so repeating the call is safe.
Show Apple Pay and Google Pay buttons
Section titled Show Apple Pay and Google Pay buttonsThe buttons work as they do for an invoice (Show Apple Pay and Google Pay buttons), with the top-up's own quote and payment:
Ask for the quote with
GET /billing/topup/pay-quote, and again whenever the amount changes. It takesamount, and optionallycurrency,gateway_name,save_method(defaultfalse) andcard_adapters(Pay with a Square card). It answers in the shape of an invoice's quote, withlabelset toAccount creditandrenewalalwaysnull. A quote creates nothing.Shellcurl "https://api.coritan.com/api/v1/billing/topup/pay-quote?amount=25¤cy=EUR" \ -H "Authorization: Bearer $CORITAN_TOKEN"JSON{ "gateway_name": "stripe", "adapter": "stripe", "public": {"adapter": "stripe", "account": "stripe", "publishable_key": "pk_live_...", "payment_method_configuration": "pmc_..."}, "publishable_key": "pk_live_...", "payment_method_configuration": "pmc_...", "currency": "EUR", "charge_amount": 2312, "base_amount": "25", "fx_rate": "0.92480000", "save_method": false, "business_name": "Coritan", "label": "Account credit", "renewal": null }Create the elements and the button from the quote, as for an invoice.
When the payer approves, create the payment with
POST /billing/topup/pay-intent. Send the quote'sbase_amountasamount, itscurrency,gateway_nameandsave_method, and itscharge_amountasexpected_amount:Shellcurl -X POST https://api.coritan.com/api/v1/billing/topup/pay-intent \ -H "Authorization: Bearer $CORITAN_TOKEN" \ -H "Content-Type: application/json" \ -d '{"amount": "25", "currency": "EUR", "gateway_name": "stripe", "save_method": false, "expected_amount": 2312}'Pass the answer's
client_secrettostripe.confirmPayment, then callconfirm-paymentas above.
When the amount in currency changed after the quote, for example because the exchange rate moved, pay-intent answers 412 and creates nothing. detail.code is amount_changed and detail.quote is a new quote: update the button to its charge_amount and let the payer approve again. The quote answers 422 for an amount outside 1 to 10000, 400 for a currency we do not take, and 503 with No Stripe gateway available when no Stripe account takes the currency (No card gateway available when you send card_adapters).
Pay with a Square card
Section titled Pay with a Square cardWe no longer take payments with Square. No Square account is open, so a quote never names one, and square-pay refuses every payment and charges nothing. Draw the Stripe form. The rest of this section describes the route while it remains.
Square is a second card processor, for US dollars only. A page that can draw Square's card form lists it in the quote's card_adapters (stripe, square or stripe,square; the default is stripe). With square listed, GET /billing/topup/pay-quote answers adapter square when the payment rules prefer Square for this payment, and public holds its application_id and location_id. save_method is false while saved Square cards are off, and true when you asked to keep the card and they are on. renewal is always null for Square.
Draw Square's card form with
public.application_idandpublic.location_id, and calltokenize()in the browser when the payer approves. It returns a one-use token.Send the token to
POST /billing/topup/square-paywithsource_id,amount_usd(the US dollars to add, from1to10000), the quote'sgateway_name, and itscharge_amountasexpected_amount. We charge the card in that request and add the credit when Square takes the payment, so there is noconfirm-paymentstep. Addsave_methodtrueto keep the card for later charges such as automatic top-up. We honor it only while saved Square cards are on, and ignore it otherwise.Shellcurl -X POST https://api.coritan.com/api/v1/billing/topup/square-pay \ -H "Authorization: Bearer $CORITAN_TOKEN" \ -H "Content-Type: application/json" \ -d '{"source_id": "cnon:example-token", "amount_usd": "25", "gateway_name": "square-coritan-americas", "expected_amount": 2500}'JSON{ "status": "succeeded", "attempt_id": 7732, "gateway_reference": "OW0aoXS9VTEpMqKlTTYg7OsWY09YY", "charge_amount": 2500, "currency": "USD", "save_method": false, "base_amount": "25" }
status is succeeded when the credit is added, failed when Square declined the card (the answer is still 200, and message is a sentence to show the payer; ask for a new token, because a used one cannot be used again), and pending when Square has not finished or did not answer in time. Do not send the payer to pay again after pending: the credit is added once Square tells us the result, and unknown is true when the card may already be charged.
When you asked to keep the card and Square took the payment, the answer also holds saved_method: true when the card is saved, and false with a message when it could not be saved. The credit is added either way. The answer has no saved_method when you did not ask, or when saved cards are off.
Send the same token twice and we charge once: the second request answers what the first did, with reused set to true. A second request while the first still waits for Square, or while an earlier top-up with the same account still waits, answers 409 with a Retry-After header. amount_usd is rounded to whole cents, and the credit added is those cents. 429 follows 20 tries in 10 minutes for your account or 60 for your address. When Square took the money and our booking then failed, the answer is pending and the credit is added when we finish the booking. When the card processor never answered, we look the payment up again within a few minutes: a payment that exists adds its credit once, and with none after 30 minutes the try is closed. A stale expected_amount answers 412 with a new quote in detail.quote and charges nothing. amount_usd outside 1 to 10000, a currency other than USD (This way of paying takes US dollars only. Choose another way to pay.) and an account that is not Square's answer 400. pay-intent called with a Square account answers 400 with Use square-pay to pay by Square.
Pay with PayPal or a checkout page
Section titled Pay with PayPal or a checkout pagePOST /billing/topup/checkout creates a checkout. Send amount, gateway_name, return_url and cancel_url. Both URLs must be absolute http or https URLs on a real host; placeholder hosts such as example.com answer 400.
curl -X POST https://api.coritan.com/api/v1/billing/topup/checkout \
-H "Authorization: Bearer $CORITAN_TOKEN" \
-H "Content-Type: application/json" \
-d '{"amount": "25.00", "gateway_name": "paypal", "return_url": "https://www.coritan.com/dashboard/billing", "cancel_url": "https://www.coritan.com/dashboard/billing"}'
{
"checkout_url": "https://www.paypal.com/checkoutnow?token=5O190127TN364715T",
"session_id": "5O190127TN364715T",
"token": null,
"gateway": "paypal",
"currency": "USD",
"charge_amount": 2500,
"base_amount": "25.00",
"fx_rate": "1"
}
Send the payer to checkout_url. For most providers, the credit arrives when the provider confirms the payment to Coritan. For PayPal, session_id is the PayPal order: once the payer approves it, call POST /billing/topup/paypal-capture with the query parameters order_id and gateway_name (and optionally amount). It answers like confirm-payment, or 402 with the reason when PayPal refuses the capture.
API operations on this page
| Method | Path | What it does |
|---|---|---|
POST | /api/v1/billing/topup/checkout | Hosted checkout to buy account credit without a saved payment method |
GET | /api/v1/billing/topup/pay-quote | What a card payment to add credit charges, and which card form to draw |
POST | /api/v1/billing/topup/pay-intent | Create a Stripe PaymentIntent to add credit in the page |
POST | /api/v1/billing/topup/square-pay | Add credit with a Square card token |
POST | /api/v1/billing/topup/confirm-payment | Add credit for a card payment the customer finished in the page |
POST | /api/v1/billing/topup/paypal-capture | Capture an approved PayPal order and credit the platform user balance |
POST | /api/v1/billing/topup/manual | Add credit by charging a saved payment method |