openapi: 3.1.0 info: title: BILL v3 Authentication Invoices API description: 'REST API providing access to BILL''s Accounts Payable, Accounts Receivable, and Spend & Expense capabilities — bills, invoices, vendors, customers, payments, funding accounts, organizations, webhooks, and authentication workflows. Best-effort OpenAPI reconstruction from BILL''s public developer portal at https://developer.bill.com/docs/home. Authoritative reference and Postman collection live under https://developer.bill.com/reference and https://developer.bill.com/llms.txt. ' version: 3.0.0 contact: name: BILL Developer Portal url: https://developer.bill.com/docs/home license: name: Proprietary servers: - url: https://gateway.prod.bill.com/connect/v3 description: BILL production gateway (Connect v3) - url: https://gateway.stage.bill.com/connect/v3 description: BILL sandbox gateway (Connect v3) - url: https://api.bill.com/v3 description: BILL production API - url: https://api-sandbox.bill.com/v3 description: BILL sandbox API security: - sessionAuth: [] tags: - name: Invoices paths: /invoices: get: tags: - Invoices summary: List invoices operationId: listInvoices responses: '200': description: Invoices. post: tags: - Invoices summary: Create an invoice operationId: createInvoice requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/InvoiceCreate' responses: '201': description: Created invoice. /invoices/{invoiceId}: parameters: - name: invoiceId in: path required: true schema: type: string get: tags: - Invoices summary: Retrieve an invoice operationId: getInvoice responses: '200': description: Invoice. patch: tags: - Invoices summary: Update an invoice operationId: updateInvoice requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/InvoiceCreate' responses: '200': description: Updated invoice. /invoices/{invoiceId}/send: parameters: - name: invoiceId in: path required: true schema: type: string post: tags: - Invoices summary: Send an invoice to the customer operationId: sendInvoice responses: '200': description: Sent. components: schemas: InvoiceCreate: type: object required: - customerId - invoiceNumber - invoiceDate - dueDate - invoiceLineItems properties: customerId: type: string invoiceNumber: type: string invoiceDate: type: string format: date dueDate: type: string format: date glPostingDate: type: string format: date salesTax: type: number format: double invoiceLineItems: type: array items: type: object properties: itemId: type: string quantity: type: number amount: type: number format: double price: type: number format: double description: type: string securitySchemes: sessionAuth: type: apiKey in: header name: sessionId description: 'Session identifier obtained from `POST /login`. Expires after 35 minutes of inactivity. A `devKey` (developer key) is also required on requests and is sent alongside `sessionId` in the appropriate header per BILL''s official reference. '