# Create Invoice Creates a new invoice for a patient. The issuer_id parameter is required and must be the Admin ID of the person issuing the invoice. Either patient_id or appointment_id must be provided. If appointment_id is provided, the patient will be derived from the appointment. Use the List Products endpoint to retrieve available invoice items. Endpoint: POST /v1/invoicing/invoices Version: 1.0.0 Security: apiKeyAuth, practiceGroupId ## Request fields (application/json): - `issuer_id` (string, required) - `patient_id` (string) - `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 201 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 500 fields