billing

Embed
Preview of the card
<a href="https://hermeticor.com/docs/ref-billing"><img src="https://hermeticor.com/docs/_api/public/orgs/5fcd8b3c-a27c-4688-972f-de710125592f/spaces/caf5dc05-15f7-4e0c-bdb8-ab29ede6211e/pages/b27c1b38-45c3-42ce-9958-b70ed1ba00a7/social-card.svg?v=3e7ae33eec8b" alt="billing" width="600" height="315"></a>
GEThttps://hermeticor.com/v1/billing/plans

Parameters

limitintegerquery
Page size; omitted returns the whole list
cursorstringquery
Opaque: the nextCursor of the previous page

Code samples

cURL
curl -X GET "https://hermeticor.com/v1/billing/plans" \
  -H "Authorization: Bearer $HERMETICOR_API_KEY"
TypeScript
Python
Go
PHP
Ruby
Java

Responses

200 Default Response
Example
{
  "items": [
    {
      "id": "string",
      "name": "string",
      "limits": {
        "sends_email": 0,
        "sends_sms": 0,
        "sends_whatsapp": 0,
        "sends_push": 0,
        "sends_postcard": 0,
        "ai_tokens": 0,
        "seats": 0
      }
    }
  ],
  "nextCursor": "string"
}
Schema
itemsItemsItem101[]required
Show child parameters
idstringrequired
namestringrequired
limitsobjectrequired
Show child parameters
sends_emailintegerrequired
sends_smsintegerrequired
sends_whatsappintegerrequired
sends_pushintegerrequired
sends_postcardintegerrequired
ai_tokensintegerrequired
seatsintegerrequired
nextCursorstringrequired
4XX Default Response
Example
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {}
  }
}
Schema
errorobjectrequired
Show child parameters
codestringrequired
messagestringrequired
detailsobject
5XX Default Response

Same as 4XX · GET /v1/billing/plans

GEThttps://hermeticor.com/v1/billing

Code samples

cURL
curl -X GET "https://hermeticor.com/v1/billing" \
  -H "Authorization: Bearer $HERMETICOR_API_KEY"
TypeScript
Python
Go
PHP
Ruby
Java

Responses

200 Default Response
Example
{
  "plan": {
    "id": "string",
    "name": "string",
    "limits": {
      "sends_email": 0,
      "sends_sms": 0,
      "sends_whatsapp": 0,
      "sends_push": 0,
      "sends_postcard": 0,
      "ai_tokens": 0,
      "seats": 0
    }
  },
  "status": "string",
  "period": "string",
  "currentPeriodEnd": "2024-01-01T00:00:00Z",
  "limits": {
    "sends_email": 0,
    "sends_sms": 0,
    "sends_whatsapp": 0,
    "sends_push": 0,
    "sends_postcard": 0,
    "ai_tokens": 0,
    "seats": 0
  },
  "usage": [
    {
      "metric": "sends_email",
      "used": 0,
      "limit": 0,
      "softLimit": 0
    }
  ],
  "managedByProvider": true
}
Schema
planobjectrequired
Show child parameters
idstringrequired
namestringrequired
limitsobjectrequired
Show child parameters
sends_emailintegerrequired
sends_smsintegerrequired
sends_whatsappintegerrequired
sends_pushintegerrequired
sends_postcardintegerrequired
ai_tokensintegerrequired
seatsintegerrequired
statusstringrequired
periodstringrequired
currentPeriodEndstringrequired
limitsobjectrequired
Show child parameters
sends_emailintegerrequired
sends_smsintegerrequired
sends_whatsappintegerrequired
sends_pushintegerrequired
sends_postcardintegerrequired
ai_tokensintegerrequired
seatsintegerrequired
usageUsageItem[]required
Show child parameters
metricstringrequired
sends_email | sends_sms | sends_whatsapp | sends_push | sends_postcard | ai_tokens
usedintegerrequired
limitintegerrequired
softLimitintegerrequired
managedByProviderbooleanrequired
4XX Default Response

Same as 4XX · GET /v1/billing/plans

5XX Default Response

Same as 4XX · GET /v1/billing/plans

GEThttps://hermeticor.com/v1/billing/usage

Per-period usage series (sends by channel, AI tokens), newest first

Parameters

monthsintegerquery
= 12
limitintegerquery
Page size; omitted returns the whole list
cursorstringquery
Opaque: the nextCursor of the previous page

Code samples

cURL
curl -X GET "https://hermeticor.com/v1/billing/usage" \
  -H "Authorization: Bearer $HERMETICOR_API_KEY"
TypeScript
Python
Go
PHP
Ruby
Java

Responses

200 Default Response
Example
{
  "items": [
    {
      "period": "string",
      "sends_email": 0,
      "sends_sms": 0,
      "sends_whatsapp": 0,
      "sends_push": 0,
      "sends_postcard": 0,
      "ai_tokens": 0
    }
  ],
  "nextCursor": "string"
}
Schema
itemsItemsItem102[]required
Show child parameters
periodstringrequired
sends_emailintegerrequired
sends_smsintegerrequired
sends_whatsappintegerrequired
sends_pushintegerrequired
sends_postcardintegerrequired
ai_tokensintegerrequired
nextCursorstringrequired
4XX Default Response

Same as 4XX · GET /v1/billing/plans

5XX Default Response

Same as 4XX · GET /v1/billing/plans

GEThttps://hermeticor.com/v1/billing/usage/{period}

Parameters

periodstringpathrequired

Code samples

cURL
curl -X GET "https://hermeticor.com/v1/billing/usage/{period}" \
  -H "Authorization: Bearer $HERMETICOR_API_KEY"
TypeScript
Python
Go
PHP
Ruby
Java

Responses

200 Default Response
Example
{
  "period": "string",
  "sends_email": 0,
  "sends_sms": 0,
  "sends_whatsapp": 0,
  "sends_push": 0,
  "sends_postcard": 0,
  "ai_tokens": 0
}
Schema
periodstringrequired
sends_emailintegerrequired
sends_smsintegerrequired
sends_whatsappintegerrequired
sends_pushintegerrequired
sends_postcardintegerrequired
ai_tokensintegerrequired
4XX Default Response

Same as 4XX · GET /v1/billing/plans

5XX Default Response

Same as 4XX · GET /v1/billing/plans

GEThttps://hermeticor.com/v1/billing/invoices

Invoices from the billing provider (empty when none is configured)

Parameters

limitintegerquery
Page size; omitted returns the whole list
cursorstringquery
Opaque: the nextCursor of the previous page

Code samples

cURL
curl -X GET "https://hermeticor.com/v1/billing/invoices" \
  -H "Authorization: Bearer $HERMETICOR_API_KEY"
TypeScript
Python
Go
PHP
Ruby
Java

Responses

200 Default Response
Example
{
  "items": [
    {
      "id": "string",
      "number": "string",
      "status": "string",
      "currency": "string",
      "amountDueMinor": 0,
      "amountPaidMinor": 0,
      "createdAt": "2024-01-01T00:00:00Z",
      "hostedUrl": "string",
      "pdfUrl": "string"
    }
  ],
  "nextCursor": "string"
}
Schema
itemsobject[]required
Show child parameters
idstringrequired
numberstringrequired
statusstringrequired
currencystringrequired
amountDueMinorintegerrequired
amountPaidMinorintegerrequired
createdAtstringrequired
hostedUrlstringrequired
pdfUrlstringrequired
nextCursorstringrequired
4XX Default Response

Same as 4XX · GET /v1/billing/plans

5XX Default Response

Same as 4XX · GET /v1/billing/plans

PUThttps://hermeticor.com/v1/billing/plan

Assign a plan directly. Self-hosted only: with a billing provider configured, plans change through checkout/webhooks.

Request body

application/json
planIdstringrequired
limitOverridesobject
{
  "planId": "string",
  "limitOverrides": {}
}

Code samples

cURL
curl -X PUT "https://hermeticor.com/v1/billing/plan" \
  -H "Authorization: Bearer $HERMETICOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"planId":"string","limitOverrides":{}}'
TypeScript
Python
Go
PHP
Ruby
Java

Responses

200 Default Response

Same as 200 · GET /v1/billing

4XX Default Response

Same as 4XX · GET /v1/billing/plans

5XX Default Response

Same as 4XX · GET /v1/billing/plans

POSThttps://hermeticor.com/v1/billing/checkout

Request body

application/json
planIdstringrequired
successUrlstringrequired
cancelUrlstringrequired
{
  "planId": "string",
  "successUrl": "string",
  "cancelUrl": "string"
}

Code samples

cURL
curl -X POST "https://hermeticor.com/v1/billing/checkout" \
  -H "Authorization: Bearer $HERMETICOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"planId":"string","successUrl":"string","cancelUrl":"string"}'
TypeScript
Python
Go
PHP
Ruby
Java

Responses

200 Default Response
Example
{
  "url": "string"
}
Schema
urlstringrequired
4XX Default Response

Same as 4XX · GET /v1/billing/plans

5XX Default Response

Same as 4XX · GET /v1/billing/plans

POSThttps://hermeticor.com/v1/billing/portal

Provider-hosted portal: invoices, payment method, plan changes

Request body

application/json
returnUrlstringrequired
{
  "returnUrl": "string"
}

Code samples

cURL
curl -X POST "https://hermeticor.com/v1/billing/portal" \
  -H "Authorization: Bearer $HERMETICOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"returnUrl":"string"}'
TypeScript
Python
Go
PHP
Ruby
Java

Responses

200 Default Response

Same as 200 · POST /v1/billing/checkout

4XX Default Response

Same as 4XX · GET /v1/billing/plans

5XX Default Response

Same as 4XX · GET /v1/billing/plans

POSThttps://hermeticor.com/webhooks/billing/stripe

Code samples

cURL
curl -X POST "https://hermeticor.com/webhooks/billing/stripe"
TypeScript
Python
Go
PHP
Ruby
Java

Responses

200 Default Response
Example
{
  "received": true
}
Schema
receivedbooleanrequired
true
4XX Default Response

Same as 4XX · GET /v1/billing/plans

5XX Default Response

Same as 4XX · GET /v1/billing/plans

Updated