# Update Invoice 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. Endpoint: PATCH /v1/invoicing/invoices/{id} Version: 1.0.0 Security: apiKeyAuth, practiceGroupId ## Path parameters: - `id` (string, required) The invoice ID ## Request fields (application/json): - `issuer_id` (string, required) - `appointment_id` (string) - `practitioner_id` (string) - `service_date` (string) - `customer_stripe_id` (string) - `set_default_customer` (boolean) - `due_date` (string) - `collection_method` (string) Enum: "request_payment", "charge_automatically" - `payment_source` (string) - `insurer` (string) - `authentication_code` (string) - `membership_number` (string) - `diagnosis` (string) - `memo` (string) - `footer` (string) - `confidential` (boolean) - `mode` (string) Enum: "draft", "finalize" - `coupons` (array) - `coupons.id` (string, required) - `coupons.name` (string) - `invoice_items_attributes` (array) - `invoice_items_attributes.price` (string) - `invoice_items_attributes.product` (string) - `invoice_items_attributes.description` (string) - `invoice_items_attributes.quantity` (integer, required) - `invoice_items_attributes.unit_amount` (integer) - `invoice_items_attributes.unit_amount_in_pounds` (number) - `invoice_items_attributes.create` (boolean) - `invoice_items_attributes.stripe_id` (string) ## Response 200 fields (application/json): - `id` (string,null) - `stripe_id` (string, required) - `status` (string) - `subtotal` (number) - `amount_due` (number) - `customer_id` (string,null) - `patient_record_id` (string,null) - `appointment_id` (string,null) - `created_at` (string) - `updated_at` (string) ## Response 400 fields (application/json): - `error` (boolean, required) Example: true - `statusCode` (number, required) Example: 400 - `message` (array, required) - `message.code` (string, required) Example: "invalid_type" - `message.expected` (string, required) Example: "string" - `message.path` (array, required) Example: ["patient_id"] ## Response 422 fields (application/json): - `error` (boolean, required) Example: true - `statusCode` (number, required) Example: 400 - `message` (array, required) - `message.code` (string, required) Example: "invalid_type" - `message.expected` (string, required) Example: "string" - `message.path` (array, required) Example: ["patient_id"] ## Response 401 fields ## Response 404 fields ## Response 500 fields