Skip to content

Update Invoice

Request

Updates an existing invoice.

The issuer_id parameter is required and must be the Admin ID of the person updating the invoice.

For draft invoices, all fields can be updated. For finalized invoices, only metadata fields (memo, footer, coupons) can be updated.

Security
apiKeyAuth and practiceGroupId
Path
idstringrequired

The invoice ID

Bodyapplication/jsonrequired
issuer_idstringrequired
appointment_idstring
practitioner_idstring
service_datestring
customer_stripe_idstring
set_default_customerboolean
due_datestring
collection_methodstring
Enum:"request_payment""charge_automatically"
payment_sourcestring
insurerstring
authentication_codestring
membership_numberstring
diagnosisstring
memostring
footerstring
confidentialboolean
modestring
Enum:"draft""finalize"
couponsArray of objects
invoice_items_attributesArray of objects
curl -i -X PATCH \
  'https://developer.herohealth.net/_mock/apis/public-api/openapi/v1/invoicing/invoices/{id}' \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: YOUR_API_KEY_HERE' \
  -H 'x-practice-group-id: YOUR_API_KEY_HERE' \
  -d '{
    "issuer_id": "string",
    "appointment_id": "string",
    "practitioner_id": "string",
    "service_date": "string",
    "customer_stripe_id": "string",
    "set_default_customer": true,
    "due_date": "string",
    "collection_method": "request_payment",
    "payment_source": "string",
    "insurer": "string",
    "authentication_code": "string",
    "membership_number": "string",
    "diagnosis": "string",
    "memo": "string",
    "footer": "string",
    "confidential": true,
    "mode": "draft",
    "coupons": [
      {
        "id": "string",
        "name": "string"
      }
    ],
    "invoice_items_attributes": [
      {
        "price": "string",
        "product": "string",
        "description": "string",
        "quantity": 0,
        "unit_amount": 0,
        "unit_amount_in_pounds": 0,
        "create": true,
        "stripe_id": "string"
      }
    ]
  }'

Responses

Invoice updated successfully

Bodyapplication/json
idstring or null
stripe_idstringrequired
statusstring
subtotalnumber
amount_duenumber
customer_idstring or null
patient_record_idstring or null
appointment_idstring or null
created_atstring
updated_atstring
Response
{ "id": "string", "stripe_id": "string", "status": "string", "subtotal": 0, "amount_due": 0, "customer_id": "string", "patient_record_id": "string", "appointment_id": "string", "created_at": "string", "updated_at": "string" }