openapi: 3.0.3 info: title: WM Customer Activities Invoices & Balance API description: 'Documented, partner/customer-gated REST API published by WM (formerly Waste Management, Inc.) at https://api.wm.com/. Exposes account-level service, billing, and support data - service and pickup information, live status/ETA, routing and hauling materials, pricing, invoices and balance, communication preferences, contacts, cases, tickets, and account activity notes. There is no self-serve signup: WM issues a ClientId and JSON Web Token (JWT) to approved commercial/enterprise customers and integration partners on request to apiaccess@wm.com. Endpoint paths, parameters, and response fields below are transcribed from WM''s published API documentation; fields not disclosed in that documentation are left as an open JSON object rather than invented.' version: '1.0' contact: name: WM API Access email: apiaccess@wm.com url: https://api.wm.com/ license: name: Proprietary - partner/customer use per WM terms servers: - url: https://api.wm.com/v1 description: Production - url: https://apitest.wm.com/v1 description: Test security: - bearerAuth: [] tags: - name: Invoices & Balance description: Invoice history and account balance. paths: /customers/{customerId}/invoices: get: operationId: listInvoices tags: - Invoices & Balance summary: List invoices description: Retrieve invoice history for the account - invoice id, date, amount, payment information, and remaining balance. parameters: - $ref: '#/components/parameters/CustomerId' responses: '200': description: Invoice history. content: application/json: schema: type: object properties: currency: type: string invoices: type: array items: $ref: '#/components/schemas/Invoice' '401': $ref: '#/components/responses/Unauthorized' /customers/{customerId}/invoices/{invoiceId}: get: operationId: getInvoice tags: - Invoices & Balance summary: Get invoice details description: Retrieve details for a single invoice. parameters: - $ref: '#/components/parameters/CustomerId' - name: invoiceId in: path required: true schema: type: string responses: '200': description: Invoice detail. content: application/json: schema: $ref: '#/components/schemas/Invoice' '401': $ref: '#/components/responses/Unauthorized' /customers/{customerId}/balance: get: operationId: getBalance tags: - Invoices & Balance summary: Get account balance description: Retrieve the balance due on the account, broken out by Current, 30/60/90/120-day, and Future aging buckets, plus the total balance, last payment amount, and last payment date. parameters: - $ref: '#/components/parameters/CustomerId' responses: '200': description: Account balance. content: application/json: schema: type: object properties: currency: type: string last_payment_amount: type: number last_payment_date: type: string format: date balances: type: array items: type: object properties: type: type: string enum: - Current - 30Day - 60Day - 90Day - 120Day - Future - Total date: type: string format: date amount: type: number '401': $ref: '#/components/responses/Unauthorized' components: responses: Unauthorized: description: Missing or invalid Authorization/ClientId. content: application/json: schema: type: object properties: message: type: string schemas: Invoice: type: object properties: id: type: string date: type: string format: date amount: type: number payment_info: type: object additionalProperties: true balance_amount: type: number parameters: CustomerId: name: customerId in: path required: true description: Unique customer account identifier. schema: type: integer securitySchemes: bearerAuth: type: http scheme: bearer bearerFormat: JWT description: WM issues a JSON Web Token (JWT) and a ClientId to approved partners/customers. Send the token in the Authorization header and the ClientId in the ClientId header on every request.