Remove the team's payment method
delete/v1/teams/{team_id}/billing/payment-method
Requires an API key
The team's owners, admins and billing members, and Ivora administrators; API keys are refused. Without a card (and outside a grace period, waiver or exemption) new CSMS setup and control in the team's projects answer 402 payment_method_required; charging already running, stops and reads continue.
Path parameters
- team_idstringRequiredPattern
^team_[0-9a-f]{32}$
Returns · 200
- idstringRequiredThe team ID (team_...), as in GET /v1/me/teams.
- namestringRequired
- rate_cents_per_kwhstringRequiredThe team's default usage fee in US cents per kWh, a decimal string (default 1.00).
- currencystringDefault
"usd" - invoicingstringDefault
"monthly" - statusenumRequiredAs a project's billing profile shows it (the bench exemption is per project and not shown here).One of
active,grace,past_due,payment_method_required,waived,exempt,discounted,enterprise,suspended - csms_setup_allowedbooleanRequiredWhether new CSMS setup and control are allowed in the team's projects.
- waivedbooleanRequired
- discount_percentintegerThe team's discount in percent (0 to 100, default 0), set by Ivora: its monthly invoice shows usage at the normal rate, discounted. 100 needs no payment method but is still invoiced (at $0); a waived team gets no invoice at all.Default
0· Minimum 0 · Maximum 100 - exemptstring | nullinternal: an Ivora internal team, exempt from the requirement.
- grace_ends_atstring | null
- past_due_sincestring | null
- payment_methodobject | nullThe team's default card.
Child attributes
- brandstring | nullCard brand, such as visa.
- last4string | null
- exp_monthinteger | null
- exp_yearinteger | null
- expiredbooleanRequiredThe card's expiry month has passed; an expired card does not count as a payment method on file.
- billing_modeenumself_serve: the card on file is charged automatically. enterprise (set by Ivora): a monthly invoice with net terms, paid by bank debit, bank transfer or as invoice_terms allow; no card needed.One of
self_serve,enterprise· Default"self_serve" - invoice_termsobject | nullenterprise only.
Child attributes
- net_terms_daysintegerRequiredInvoices are due this many days after they are sent.
- payment_methodsarray of stringRequiredHow an invoice can be paid: us_bank_account (ACH debit), customer_balance (bank transfer: ACH credit or wire), acss_debit (Canadian pre-authorized debit in USD), card. Every invoice is in USD.
- collectionenumRequiredauto_debit: the verified bank account is debited on the due date. invoice_only: pay each invoice by its due date.One of
auto_debit,invoice_only - po_numberstring | null
- billing_emailsarray of stringBilling contacts; Stripe sends the invoice to the first.
- legal_namestring | null
- bank_accountobject | nullThe team's bank account for enterprise invoices (ACH or pre-authorized debit).
Child attributes
- typeenumRequiredus_bank_account: ACH Direct Debit (US). acss_debit: Canadian pre-authorized debit, in US dollars (a USD account at a Canadian bank).One of
us_bank_account,acss_debit - bank_namestring | null
- last4string | null
- statusenumRequiredverified: the mandate is active and an enterprise invoice is debited on its due date. pending_verification: confirm the microdeposits Stripe sent before it can be debited.One of
verified,pending_verification
- bank_transferobject | nullenterprise (usd) only: where to send an ACH credit or wire; null until the first enterprise invoice or Ivora set the mode.
Child attributes
- currencystringDefault
"usd" - typestringDefault
"us_bank_transfer" - financial_addressesarray of BankTransferAddressRequiredThe team's own virtual account at Stripe: an ACH credit or wire to it pays the team's open invoices.
Child attributes
- typestringRequiredaba (ACH credit and domestic wire) or swift (international wire).
- bank_namestring | null
- account_numberstring | null
- routing_numberstring | null
- swift_codestring | null
- account_holder_namestring | null
- setup_pendingbooleanRequired
- payment_modeenumRequiredStripe mode of Ivora's platform account here; only production is live.One of
test,live - updated_atstring | null
- projectsarray of TeamBillingProjectRequiredEvery project of the team, by tenant ID; one invoice per team per month with a line per project.
Child attributes
- tenant_idintegerRequiredThe project's tenant ID.
- namestring | nullThe tenant's name in the charging core; null when the core did not answer.
- rate_cents_per_kwhstringRequiredThe project's effective rate: its override, else the team's.
- rate_sourceenumRequiredOne of
team,project - current_monthobject | nullThe project's usage so far this UTC calendar month and its estimated usage fee, by the monthly invoice's rule; null when the CSMS cannot be read right now.
Child attributes
- periodstringRequiredThe current UTC calendar month, YYYY-MM.
- period_startstringRequiredStart of the month in UTC (inclusive), such as 2026-10-01T00:00:00+00:00.
- period_endstringRequiredStart of the next month in UTC (exclusive).
- billable_fromstringRequiredWhen the team's usage starts to be billed: the later of the usage fee's release and the end of the team's grace period. Sessions that ended before it are never invoiced.
- energy_kwhstringRequiredkWh of the project's completed charging sessions that ended this month (each session's whole energy, as the invoice counts it), a decimal string as the core records kWh, such as "6.941"; "0" without sessions. Sessions still running count when they end.
- transactionsintegerRequiredNumber of those charging sessions (transactions).
- billable_kwhstringRequiredThe part of energy_kwh that ended at or after billable_from: what the invoice bills.
- billable_transactionsintegerRequired
- held_transactionsintegerRequiredBillable sessions with an implausible reading (negative or above 1000 kWh), left out of the estimate; they hold the team's invoice until Ivora corrects them.
- invoicedbooleanRequiredFalse when this usage is not invoiced: see not_invoiced_reason; estimated_minor is then 0.
- not_invoiced_reasonenum | nullRequiredinternal: an Ivora internal team. bench: Ivora's test bench project. waived: the team's fee is waived. grace: the team's grace period runs until billable_from.One of
internal,bench,waived,grace - rate_cents_per_kwhstringRequiredThe project's effective rate the estimate uses.
- usage_minorintegerRequiredThe project's invoice line so far in US cents: billable_kwh x rate_cents_per_kwh, rounded half up.
- discount_percentintegerRequiredThe team's discount the estimate applies.Minimum 0 · Maximum 100
- discount_minorintegerRequiredusage_minor x discount_percent / 100, rounded half up. The invoice rounds the discount once over all of the team's projects, so it can differ by a cent.
- estimated_minorintegerRequiredEstimated usage fee so far this month in US cents: usage_minor - discount_minor. The team's whole month (every project and any carried balance) is GET /v1/tenants/{tenant_id}/billing-profile/usage; the monthly invoice is final.
- currencystringDefault
"usd" - as_ofstringRequiredWhen the usage was read from the CSMS; reads are cached up to 60 seconds.
DELETE /v1/teams/{team_id}/billing/payment-method
curl --fail-with-body -X DELETE "https://api.ivoracharge.com/v1/teams/team_0123456789abcdef0123456789abcdef/billing/payment-method" \
-H "Authorization: Bearer $IVORA_API_KEY"Response · 200
{
"id": "id_0123456789abcdef",
"name": "bay-01",
"rate_cents_per_kwh": "string",
"currency": "usd",
"invoicing": "monthly",
"status": "active",
"csms_setup_allowed": false,
"waived": false,
"discount_percent": 0,
"exempt": "internal",
"grace_ends_at": "2026-09-30T17:00:00Z",
"past_due_since": "string",
"payment_method": {
"brand": "string",
"last4": "string",
"exp_month": 1,
"exp_year": 1,
"expired": false
},
"billing_mode": "self_serve",
"invoice_terms": {
"net_terms_days": 1,
"payment_methods": [
"string"
],
"collection": "auto_debit",
"po_number": "string",
"billing_emails": [
"string"
],
"legal_name": "string"
},
"bank_account": {
"type": "us_bank_account",
"bank_name": "string",
"last4": "string",
"status": "verified"
},
"bank_transfer": {
"currency": "usd",
"type": "us_bank_transfer",
"financial_addresses": [
{
"type": "string",
"bank_name": "string",
"account_number": "string",
"routing_number": "string",
"swift_code": "string",
"account_holder_name": "string"
}
]
},
"setup_pending": false,
"payment_mode": "test",
"updated_at": "2026-09-30T17:00:00Z",
"projects": [
{
"tenant_id": 1042,
"name": "bay-01",
"rate_cents_per_kwh": "string",
"rate_source": "team",
"current_month": {
"period": "string",
"period_start": "string",
"period_end": "string",
"billable_from": "string",
"energy_kwh": "string",
"transactions": 1,
"billable_kwh": "string",
"billable_transactions": 1,
"held_transactions": 1,
"invoiced": false,
"not_invoiced_reason": "internal",
"rate_cents_per_kwh": "string",
"usage_minor": 1250,
"discount_percent": 0,
"discount_minor": 1250,
"estimated_minor": 1250,
"currency": "usd",
"as_of": "string"
}
}
]
}Try it is not available here yetRequests from this page are off until the production API at
https://api.ivoracharge.com is public. Use the code samples from your application server; Ivora grants production access. Keys are created in Developer tools.