CommetCommet
GitHubDiscordStatus
Create adjustment invoice POSTDownload invoice PDF POSTGet invoice GETList invoices GETSend invoice email POSTUpdate invoice status PATCH
DocumentaciónRecursosConstruir con AIAPI ReferenceWebhooks

Create adjustment invoice

Create a one-off adjustment invoice and return the created invoice. Use a negative amount for a credit.

POST
/invoices

Create a one-off adjustment invoice and return the created invoice. Use a negative amount for a credit.

Authorization

ApiKeyAuth
x-api-key<token>

In: header

Header Parameters

Idempotency-Key?string

Unique key used to safely retry this write for 24 hours without applying it twice.

Length1 <= length <= 200

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/invoices" \  -H "Content-Type: application/json" \  -d '{    "customerId": "string",    "amount": -9007199254740991,    "description": "string"  }'
{  "id": "inv_1a2b3c4d",  "customerId": "cus_1a2b3c4d",  "subscriptionId": null,  "invoiceNumber": "INV-2026-0001",  "status": "outstanding",  "invoiceType": "adjustment",  "currency": "usd",  "subtotal": 500,  "discountAmount": 0,  "taxAmount": 0,  "total": 500,  "periodStart": "2026-09-07T12:00:00.000Z",  "periodEnd": "2026-10-07T12:00:00.000Z",  "issueDate": "2026-09-07T12:00:00.000Z",  "dueDate": "2026-09-07T12:00:00.000Z",  "memo": "Additional support session",  "metadata": {},  "createdAt": "2026-09-07T12:00:00.000Z",  "updatedAt": "2026-09-07T12:00:00.000Z",  "creditApplied": 0,  "planName": null,  "poNumber": null,  "reference": null,  "lineItems": [    {      "lineType": "one_time",      "featureName": null,      "description": "Additional support session",      "quantity": 1,      "unitAmount": 500,      "amount": 500,      "includedAmount": null,      "usedAmount": null,      "overageAmount": null,      "discountType": null,      "discountValue": null,      "discountName": null,      "chargeType": "standard"    }  ],  "object": "invoice",  "livemode": false}
{  "error": {    "type": "validation_error",    "code": "validation_error",    "message": "The request contains an invalid parameter.",    "doc_url": "https://commet.co/docs/api-reference/2026-08-27/errors/validation_error.md"  }}
{  "error": {    "type": "authentication_error",    "code": "unauthorized",    "message": "A valid API key is required.",    "doc_url": "https://commet.co/docs/api-reference/2026-08-27/errors/unauthorized.md"  }}
{  "error": {    "type": "authentication_error",    "code": "forbidden",    "message": "You do not have permission to perform this operation.",    "doc_url": "https://commet.co/docs/api-reference/2026-08-27/errors/forbidden.md"  }}
{  "error": {    "type": "not_found_error",    "code": "not_found",    "message": "The requested resource was not found.",    "doc_url": "https://commet.co/docs/api-reference/2026-08-27/errors/not_found.md"  }}
{  "error": {    "type": "conflict_error",    "code": "idempotency_in_progress",    "message": "A request with this idempotency key is still being processed.",    "doc_url": "https://commet.co/docs/api-reference/2026-08-27/errors/idempotency_in_progress.md"  }}
{  "error": {    "type": "rate_limit_error",    "code": "rate_limited",    "message": "Too many requests. Retry after the interval specified in the Retry-After header.",    "doc_url": "https://commet.co/docs/api-reference/2026-08-27/errors/rate_limited.md"  }}
{  "error": {    "type": "internal_error",    "code": "internal_error",    "message": "An unexpected error occurred while processing the request.",    "doc_url": "https://commet.co/docs/api-reference/2026-08-27/errors/internal_error.md"  }}
{  "error": {    "type": "internal_error",    "code": "idempotency_unavailable",    "message": "Idempotency storage is temporarily unavailable. Retry with the same idempotency key.",    "doc_url": "https://commet.co/docs/api-reference/2026-08-27/errors/idempotency_unavailable.md"  }}

Update feature PATCH

Update a feature's name, description, or unit name. At least one field must be provided.

Download invoice PDF POST

Generate a signed URL to download the invoice as a PDF. The URL expires after 7 days.

customerId*string
Length1 <= length
amount*integer
Range-9007199254740991 <= value <= 9007199254740991
description*string
Length1 <= length
metadata?