> ## Documentation Index > Fetch the complete documentation index at: https://docs.restaurant365.com/llms.txt > Use this file to discover all available pages before exploring further. # /public/accounting/v1/accounts-payable/invoices > Updates the approval status of AP invoices in bulk ## OpenAPI ````json PATCH /public/accounting/v1/accounts-payable/invoices { "openapi": "3.0.1", "info": { "title": "R365.PublicApi", "contact": { "name": "R365 Services Team", "email": "r365@restaurant365.com" }, "version": "1.0" }, "security": [ { "Bearer": [] } ], "paths": { "/public/accounting/v1/accounts-payable/invoices": { "patch": { "tags": [ "accounting" ], "description": "Updates the approval status of AP invoices in bulk", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/R365.Accounting.Public.Contracts.Invoices.Models.PatchInvoicesRequest" } } } }, "responses": { "200": { "description": "All invoices updated successfully.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/R365.Accounting.Public.Contracts.Invoices.Models.PatchInvoicesResponse" } } } }, "207": { "description": "Multi-Status – Batch operation result containing status for each invoice in the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/R365.Accounting.Public.Contracts.Invoices.Models.PatchInvoicesResponse" } } } }, "400": { "description": "Bad request – one or more validation errors occurred." }, "401": { "description": "Unauthorized – authentication is required and has failed or has not been provided." }, "403": { "description": "Forbidden – the caller does not have permission to perform this operation." }, "422": { "description": "Unprocessable Content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/R365.Accounting.Public.Models.R365Error" } } } } } } } }, "components": { "schemas": { "R365.Accounting.Public.Contracts.Invoices.Models.PatchInvoicesRequest": { "type": "object", "properties": { "invoices": { "type": "array", "items": { "$ref": "#/components/schemas/R365.Accounting.Public.Contracts.Invoices.Models.InvoicePatchItem" }, "description": "The list of invoices to patch.", "nullable": true } }, "description": "Updates the approval status of AP invoices in bulk." }, "R365.Accounting.Public.Contracts.Invoices.Models.PatchInvoicesResponse": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/R365.Accounting.Public.Contracts.Invoices.Models.InvoicePatchResult" }, "description": "Per-item processing outcomes, one entry per invoice in the original request.", "nullable": true } }, "description": "Response from a bulk AP Invoice patch operation." }, "R365.Accounting.Public.Models.R365Error": { "type": "object", "properties": { "errorCode": { "type": "string", "nullable": true }, "innerError": { "$ref": "#/components/schemas/R365.Accounting.Public.Models.R365Error" } } }, "R365.Accounting.Public.Contracts.Invoices.Models.InvoicePatchItem": { "type": "object", "properties": { "id": { "type": "string", "description": "The invoice unique identifier.", "format": "uuid" }, "approvalStatus": { "$ref": "#/components/schemas/R365.Accounting.Public.Models.ApprovalStatus" } }, "description": "A single invoice patch operation within a bulk patch request." }, "R365.Accounting.Public.Contracts.Invoices.Models.InvoicePatchResult": { "type": "object", "properties": { "requestIndex": { "type": "integer", "description": "Zero-based index of this item in the original request's Invoices array.", "format": "int32" }, "id": { "type": "string", "description": "The invoice identifier from the request.", "format": "uuid" }, "status": { "$ref": "#/components/schemas/R365.Accounting.Public.Contracts.Invoices.Models.InvoicePatchStatus", "description": "Current status of the invoice patch result." }, "errorCode": { "type": "string", "description": "Machine-friendly error code. Populated when Status is Failed.", "nullable": true }, "errorMessage": { "type": "string", "description": "Human-readable error description. Populated when Status is Failed.", "nullable": true } }, "description": "Processing outcome for a single invoice in a bulk patch request." }, "R365.Accounting.Public.Models.ApprovalStatus": { "enum": [ "Unapproved", "Approved" ], "type": "string", "description": "Approval status for transactions" }, "R365.Accounting.Public.Contracts.Invoices.Models.InvoicePatchStatus": { "enum": [ "Unknown", "Succeeded", "Failed" ], "type": "string", "description": "Processing outcome for a single invoice patch operation." } }, "securitySchemes": { "Bearer": { "type": "http", "description": "Put **_ONLY_** your JWT Bearer token on textbox below!", "scheme": "Bearer", "bearerFormat": "JWT" } } } } ````