openapi: 3.1.0 info: title: BILL v3 Authentication Bills 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: Bills paths: /bills: get: tags: - Bills summary: List bills operationId: listBills parameters: - $ref: '#/components/parameters/Max' - $ref: '#/components/parameters/Page' - name: filters in: query schema: type: string responses: '200': description: Bills. content: application/json: schema: $ref: '#/components/schemas/BillList' post: tags: - Bills summary: Create a bill operationId: createBill requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/BillCreate' responses: '201': description: Created bill. content: application/json: schema: $ref: '#/components/schemas/Bill' /bills/bulk: post: tags: - Bills summary: Create multiple bills in one request operationId: createBillsBulk requestBody: required: true content: application/json: schema: type: object required: - bills properties: bills: type: array items: $ref: '#/components/schemas/BillCreate' responses: '200': description: Bulk creation result. /bills/{billId}: parameters: - $ref: '#/components/parameters/BillId' get: tags: - Bills summary: Retrieve a bill operationId: getBill responses: '200': description: Bill. content: application/json: schema: $ref: '#/components/schemas/Bill' patch: tags: - Bills summary: Update a bill operationId: updateBill requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/BillCreate' responses: '200': description: Updated bill. /bills/{billId}/archive: parameters: - $ref: '#/components/parameters/BillId' post: tags: - Bills summary: Archive a bill operationId: archiveBill responses: '200': description: Archived. components: schemas: BillLineItem: type: object properties: id: type: string amount: type: number format: double chartOfAccountId: type: string departmentId: type: string locationId: type: string description: type: string lineType: type: string quantity: type: number unitPrice: type: number format: double BillCreate: type: object required: - vendorId - invoiceNumber - invoiceDate - dueDate - billLineItems properties: vendorId: type: string invoiceNumber: type: string invoiceDate: type: string format: date dueDate: type: string format: date description: type: string billLineItems: type: array items: $ref: '#/components/schemas/BillLineItem' Bill: type: object properties: id: type: string invoiceNumber: type: string invoiceDate: type: string format: date dueDate: type: string format: date amount: type: number format: double amountDue: type: number format: double currency: type: string vendorId: type: string description: type: string approvalStatus: type: string paymentStatus: type: string archived: type: boolean billLineItems: type: array items: $ref: '#/components/schemas/BillLineItem' createdTime: type: string format: date-time updatedTime: type: string format: date-time BillList: type: object properties: results: type: array items: $ref: '#/components/schemas/Bill' nextPage: type: string parameters: Max: name: max in: query schema: type: integer default: 100 maximum: 999 BillId: name: billId in: path required: true schema: type: string Page: name: page in: query schema: 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. '