members.dev
Docs
Invoices

Finalize Invoice

Finalizes an Invoice

POST
/v1/invoices/{invoice_id}/finalize

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Path Parameters

invoice_id*string

Header Parameters

Members-Context?string

Members organization id (org_…) when the client has multiple organizations.

Default""

Response Body

application/json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

curl -X POST "https://api.members.dev/v1/invoices/string/finalize"
{
  "id": "string",
  "invoice_number": "INV-550",
  "member_id": "string",
  "status": "draft",
  "collection_status": "none",
  "active_payment_id": "string",
  "due_at": null,
  "amount_original": 0,
  "amount_due": 0,
  "currency": "string",
  "lines": [
    {
      "id": "string",
      "description": "string",
      "quantity": 0,
      "unit_amount": 0,
      "amount": 0
    }
  ],
  "credit_note_allocations": [
    {
      "id": "string",
      "credit_note_id": "string",
      "credit_note_number": "CN-12",
      "amount": 0,
      "currency": "str",
      "created_at": null
    }
  ],
  "payment_allocations": [
    {
      "id": "string",
      "payment_id": "string",
      "status": "pending",
      "amount": 0,
      "currency": "str",
      "notes": "string",
      "payment_method_id": "string",
      "failure_code": "string",
      "failure_message": "string",
      "created_at": null
    }
  ],
  "subscription": {
    "subscription_id": "string",
    "period_starts_at": {},
    "period_ends_at": {}
  },
  "state_transitions": {
    "opened_at": {},
    "past_due_at": {},
    "paid_at": {},
    "voided_at": {},
    "deleted_at": {}
  },
  "next_update": {
    "updates_at": null,
    "update_type": "past_due"
  },
  "created_at": null,
  "updated_at": null
}
{
  "type": "https://api.members.dev/errors/invalid_credentials",
  "title": "Invalid credentials",
  "status": 401,
  "detail": "Invalid API Key or token.",
  "code": "invalid_credentials"
}
{
  "type": "https://api.members.dev/errors/not_linked_to_tenant",
  "title": "Not linked to tenant",
  "status": 403,
  "detail": "Not linked to this tenant",
  "code": "not_linked_to_tenant"
}
{
  "type": "https://api.members.dev/errors/member_not_found",
  "title": "Member not found",
  "status": 404,
  "detail": "No member exists with the given id in this organization.",
  "code": "member_not_found"
}
{
  "type": "https://api.members.dev/errors/members_context_required",
  "title": "Members context required",
  "status": 422,
  "detail": "This client has multiple organizations. Send the Members-Context header with the organization id (org_…) for this request.",
  "code": "members_context_required"
}
{
  "type": "https://api.members.dev/errors/rate_limit_exceeded",
  "title": "Rate limit exceeded",
  "status": 429,
  "detail": "Rate limit exceeded",
  "code": "rate_limit_exceeded"
}