Webex Wholesale Billing Reports API

The Wholesale Billing Reports API from Webex — 2 operation(s) for wholesale billing reports.

OpenAPI Specification

webex-wholesale-billing-reports-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Webex Admin Address Book Wholesale Billing Reports API
  version: 1.0.0
  description: The Webex Admin APIs provide comprehensive programmatic access to administrative functions for managing Webex organizations, users, licenses, and settings. These APIs enable automation of user provisioning, license assignment, compliance management, and audit event retrieval. Administrators can integrate with enterprise identity systems, enforce security policies, monitor usage, and streamline onboarding/offboarding processes. The APIs support granular control over organizational resources, making them ideal for large-scale deployments and custom admin tooling.
tags:
- name: Wholesale Billing Reports
paths:
  /wholesale/billing/reports:
    get:
      responses:
        '200':
          description: OK
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WholesaleBillingReportsListResponse'
              example:
                items:
                - id: Y2lzY29zcGFyazovL3VzL0JJTExJTkdfUkVQT1JULzViOGQ1MThhLThmMDAtNDUxYi1hNDA2LWVhZjQ5YjRhN2ZhOA
                  billingStartDate: '2021-05-21'
                  billingEndDate: '2021-05-30'
                  status: COMPLETED
                  type: PARTNER
                - id: Y2lzY29zcGFyazovL3VzL0JJTExJTkdfUkVQT1JULzViOGQ1MThhLThmMDAtNDUxYi1hNDA2LWVhZjQ5YjRhN2Zh2B
                  billingStartDate: '2021-05-21'
                  billingEndDate: '2021-05-30'
                  status: COMPLETED
                  type: PARTNER
                - id: Y2lzY29zcGFyazovL3VzL0JJTExJTkdfUkVQT1JULzViOGQ1MThhLThmMDAtNDUxYi1hNDA2LWVhZjQ5YjRhN2Zh5D
                  billingStartDate: '2021-05-21'
                  billingEndDate: '2021-05-30'
                  status: COMPLETED
                  type: PARTNER
        '400':
          description: 'Bad Request: The request was invalid or cannot be otherwise served. An accompanying error message will explain further.'
        '401':
          description: 'Unauthorized: Authentication credentials were missing or incorrect.'
        '403':
          description: 'Forbidden: The request is understood, but it has been refused or access is not allowed.'
        '404':
          description: 'Not Found: The URI requested is invalid or the resource requested, such as a user, does not exist. Also returned when the requested format is not supported by the requested method.'
        '405':
          description: 'Method Not Allowed: The request was made to a resource using an HTTP request method that is not supported.'
        '409':
          description: 'Conflict: The request could not be processed because it conflicts with some established rule of the system. For example, a person may not be added to a room more than once.'
        '410':
          description: 'Gone: The requested resource is no longer available.'
        '415':
          description: 'Unsupported Media Type: The request was made to a resource without specifying a media type or used a media type that is not supported.'
        '423':
          description: 'Locked: The requested resource is temporarily unavailable. A Retry-After header may be present that specifies how many seconds you need to wait before attempting the request again.'
        '428':
          description: 'Precondition Required: File(s) cannot be scanned for malware and need to be force downloaded.'
        '429':
          description: 'Too Many Requests: Too many requests have been sent in a given amount of time and the request has been rate limited. A Retry-After header should be present that specifies how many seconds you need to wait before a successful request can be made.'
        '500':
          description: 'Internal Server Error: Something went wrong on the server. If the issue persists, feel free to contact the [Webex Developer Support team](/explore/support).'
        '502':
          description: 'Bad Gateway: The server received an invalid response from an upstream server while processing the request. Try again later.'
        '503':
          description: 'Service Unavailable: Server is overloaded with requests. Try again later.'
        '504':
          description: 'Gateway Timeout: An upstream server failed to respond on time. If your query uses max parameter, please try to reduce it.'
      summary: List Wholesale Billing Reports
      operationId: List Wholesale Billing Reports
      description: Search for associated wholesale billing reconciliation reports.
      tags:
      - Wholesale Billing Reports
      parameters:
      - name: billingStartDate
        in: query
        description: Only include billing reports having this billing `startDate`.
        example: '2020-05-21'
        schema:
          type: string
      - name: billingEndDate
        in: query
        description: Only include billing reports having this billing `endDate`.
        example: '2020-05-30'
        schema:
          type: string
      - name: type
        in: query
        description: Only include reports of this type.
        example: PARTNER
        schema:
          type: string
          enum:
          - PARTNER
          - CUSTOMER
          - USER
      - name: sortBy
        in: query
        description: Sort the reports.
        example: billingStartDate
        schema:
          type: string
          default: billingStartDate
          enum:
          - id
          - billingStartDate
          - billingEndDate
          - status
      - name: status
        in: query
        description: The status of the billing report
        example: COMPLETED
        schema:
          type: string
          enum:
          - IN_PROGRESS
          - COMPLETED
          - FAILED
      - name: max
        in: query
        description: Limit the maximum number of reports returned in the response, up to 100 per page. Refer to the [Pagination](/docs/basics#pagination) section of [Webex REST API Basics](/docs/api/basics).
        example: '10'
        schema:
          type: integer
          default: 100
      - name: subPartnerOrgId
        in: query
        description: The Organization ID of the sub partner on Cisco Webex.
        example: Y2lzY29zcGFyazovL3VzL09SR0FOSVpBVElPTi81MmNmNTc2ZC02MGE4LTQwN2EtYjIyYy00NjdjNTE1OTE5MDg
        schema:
          type: string
    post:
      responses:
        '200':
          description: OK
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReportId'
              example:
                id: Y2lzY29zcGFyazovL3VzL0JJTExJTkdfUkVQT1JULzViOGQ1MThhLThmMDAtNDUxYi1hNDA2LWVhZjQ5YjRhN2ZhOA
                billingStartDate: '2021-05-21'
                billingEndDate: '2021-05-30'
                type: PARTNER
                internal: true
        '400':
          description: 'Bad Request: The request was invalid or cannot be otherwise served. An accompanying error message will explain further.'
        '401':
          description: 'Unauthorized: Authentication credentials were missing or incorrect.'
        '403':
          description: 'Forbidden: The request is understood, but it has been refused or access is not allowed.'
        '404':
          description: 'Not Found: The URI requested is invalid or the resource requested, such as a user, does not exist. Also returned when the requested format is not supported by the requested method.'
        '405':
          description: 'Method Not Allowed: The request was made to a resource using an HTTP request method that is not supported.'
        '409':
          description: 'Conflict: The request could not be processed because it conflicts with some established rule of the system. For example, a person may not be added to a room more than once.'
        '410':
          description: 'Gone: The requested resource is no longer available.'
        '415':
          description: 'Unsupported Media Type: The request was made to a resource without specifying a media type or used a media type that is not supported.'
        '423':
          description: 'Locked: The requested resource is temporarily unavailable. A Retry-After header may be present that specifies how many seconds you need to wait before attempting the request again.'
        '428':
          description: 'Precondition Required: File(s) cannot be scanned for malware and need to be force downloaded.'
        '429':
          description: 'Too Many Requests: Too many requests have been sent in a given amount of time and the request has been rate limited. A Retry-After header should be present that specifies how many seconds you need to wait before a successful request can be made.'
        '500':
          description: 'Internal Server Error: Something went wrong on the server. If the issue persists, feel free to contact the [Webex Developer Support team](/explore/support).'
        '502':
          description: 'Bad Gateway: The server received an invalid response from an upstream server while processing the request. Try again later.'
        '503':
          description: 'Service Unavailable: Server is overloaded with requests. Try again later.'
        '504':
          description: 'Gateway Timeout: An upstream server failed to respond on time. If your query uses max parameter, please try to reduce it.'
      summary: Create a Wholesale Billing Report
      operationId: Create a Wholesale Billing Report
      description: Generate a wholesale billing reconciliation report.
      tags:
      - Wholesale Billing Reports
      parameters: []
      requestBody:
        content:
          application/json:
            example:
              billingStartDate: '2020-05-21'
              billingEndDate: '2020-05-30'
              type: PARTNER
              subPartnerOrgId: Y2lzY29zcGFyazovL3VzL09SR0FOSVpBVElPTi81MmNmNTc2ZC02MGE4LTQwN2EtYjIyYy00NjdjNTE1OTE5MDg
            schema:
              type: object
              required:
              - billingStartDate
              - billingEndDate
              properties:
                billingStartDate:
                  type: string
                  example: '2020-05-21'
                  description: The `startDate` (`YYYY-MM-DD`) for which the partner requests the billing report.
                billingEndDate:
                  type: string
                  example: '2020-05-30'
                  description: The `endDate` (`YYYY-MM-DD`) for which the partner requests the billing report.
                type:
                  type: string
                  example: PARTNER
                  description: 'Create report of the given type, `PARTNER`, `CUSTOMER`, or `USER`. Default: `PARTNER`.'
                subPartnerOrgId:
                  type: string
                  example: Y2lzY29zcGFyazovL3VzL09SR0FOSVpBVElPTi81MmNmNTc2ZC02MGE4LTQwN2EtYjIyYy00NjdjNTE1OTE5MDg
                  description: The Organization ID of the sub partner on Cisco Webex.
                internal:
                  type: boolean
                  example: true
                  description: 'If true or selected, internal orgs will be included in the billing report. Default: false.'
  /wholesale/billing/reports/{id}:
    get:
      responses:
        '200':
          description: OK
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Report'
              example:
                id: Y2lzY29zcGFyazovL3VzL0JJTExJTkdfUkVQT1JULzViOGQ1MThhLThmMDAtNDUxYi1hNDA2LWVhZjQ5YjRhN2ZhOA
                billingStartDate: '2021-05-21'
                billingEndDate: '2021-05-30'
                type: PARTNER
                created: '2021-06-16T12:40:33.109Z'
                createdBy: Y2lzY29zcGFyazovL3VzL1BFT1BMRS8wYWNkMzg3NS00ZTEyLTRkNzctYjk4MS1lMzg5ZmQ4ODQ2YzA
                status: COMPLETED
                tempDownloadURL: https://billing-reports-int-us-east-1.webexcontent.com/a366de9b-3204-4140-8181-25808d360e36/WHOLESALE/340177d1-7f25-41e1-a39f-ad63ec1103a5.csv?Expires=1624978489&Signature=Syp3vrVeMx4P6MeMtm8e1bQaeAdHFe-c7NeHERWh5-qJGLZ1T8Dvl2ee-M8OsFf~z6Yepz94e2Hh1HDVailD0Uryl8SgiM~jl0cBh7L0PmSe~i9oFA0eJ0MulkqGSMVf7ZHhxY55xYMgIBZIERkWm3CqQNDg5BS4EaXapKfOnmFegf36OokCM63m5uOK8-csk08IkZhwo2Z0l1JMtuWYEaLh4dgMHoe~xgH3YmDSSCWInFYaEifUAfgi2YAYS6nP9Zq4BTliBq62XBaehOE1gBrhy4RdwD-3WSs2oD-BdpoRpuGzo3FZzDLVEvd0S2D6gTcHljOHodQKxe-u0BXPWQ__&Key-Pair-Id=APKAJADAKLCI2FW2U32Q
        '400':
          description: 'Bad Request: The request was invalid or cannot be otherwise served. An accompanying error message will explain further.'
        '401':
          description: 'Unauthorized: Authentication credentials were missing or incorrect.'
        '403':
          description: 'Forbidden: The request is understood, but it has been refused or access is not allowed.'
        '404':
          description: 'Not Found: The URI requested is invalid or the resource requested, such as a user, does not exist. Also returned when the requested format is not supported by the requested method.'
        '405':
          description: 'Method Not Allowed: The request was made to a resource using an HTTP request method that is not supported.'
        '409':
          description: 'Conflict: The request could not be processed because it conflicts with some established rule of the system. For example, a person may not be added to a room more than once.'
        '410':
          description: 'Gone: The requested resource is no longer available.'
        '415':
          description: 'Unsupported Media Type: The request was made to a resource without specifying a media type or used a media type that is not supported.'
        '423':
          description: 'Locked: The requested resource is temporarily unavailable. A Retry-After header may be present that specifies how many seconds you need to wait before attempting the request again.'
        '428':
          description: 'Precondition Required: File(s) cannot be scanned for malware and need to be force downloaded.'
        '429':
          description: 'Too Many Requests: Too many requests have been sent in a given amount of time and the request has been rate limited. A Retry-After header should be present that specifies how many seconds you need to wait before a successful request can be made.'
        '500':
          description: 'Internal Server Error: Something went wrong on the server. If the issue persists, feel free to contact the [Webex Developer Support team](/explore/support).'
        '502':
          description: 'Bad Gateway: The server received an invalid response from an upstream server while processing the request. Try again later.'
        '503':
          description: 'Service Unavailable: Server is overloaded with requests. Try again later.'
        '504':
          description: 'Gateway Timeout: An upstream server failed to respond on time. If your query uses max parameter, please try to reduce it.'
      summary: Get a Wholesale Billing Report
      operationId: Get a Wholesale Billing Report
      description: Retrieve a specific wholesale billing reconciliation report.
      tags:
      - Wholesale Billing Reports
      parameters:
      - name: id
        in: path
        description: A unique identifier for the report being requested.
        required: true
        example: Y2lzY29zcGFyazovL3VzL0JJTExJTkdfUkVQT1JULzViOGQ1MThhLThmMDAtNDUxYi1hNDA2LWVhZjQ5YjRhN2ZhOA
        schema:
          type: string
    delete:
      responses:
        '204':
          description: No Content
          headers: {}
          content: {}
        '400':
          description: 'Bad Request: The request was invalid or cannot be otherwise served. An accompanying error message will explain further.'
        '401':
          description: 'Unauthorized: Authentication credentials were missing or incorrect.'
        '403':
          description: 'Forbidden: The request is understood, but it has been refused or access is not allowed.'
        '404':
          description: 'Not Found: The URI requested is invalid or the resource requested, such as a user, does not exist. Also returned when the requested format is not supported by the requested method.'
        '405':
          description: 'Method Not Allowed: The request was made to a resource using an HTTP request method that is not supported.'
        '409':
          description: 'Conflict: The request could not be processed because it conflicts with some established rule of the system. For example, a person may not be added to a room more than once.'
        '410':
          description: 'Gone: The requested resource is no longer available.'
        '415':
          description: 'Unsupported Media Type: The request was made to a resource without specifying a media type or used a media type that is not supported.'
        '423':
          description: 'Locked: The requested resource is temporarily unavailable. A Retry-After header may be present that specifies how many seconds you need to wait before attempting the request again.'
        '428':
          description: 'Precondition Required: File(s) cannot be scanned for malware and need to be force downloaded.'
        '429':
          description: 'Too Many Requests: Too many requests have been sent in a given amount of time and the request has been rate limited. A Retry-After header should be present that specifies how many seconds you need to wait before a successful request can be made.'
        '500':
          description: 'Internal Server Error: Something went wrong on the server. If the issue persists, feel free to contact the [Webex Developer Support team](/explore/support).'
        '502':
          description: 'Bad Gateway: The server received an invalid response from an upstream server while processing the request. Try again later.'
        '503':
          description: 'Service Unavailable: Server is overloaded with requests. Try again later.'
        '504':
          description: 'Gateway Timeout: An upstream server failed to respond on time. If your query uses max parameter, please try to reduce it.'
      summary: Delete a Wholesale Billing Report
      operationId: Delete a Wholesale Billing Report
      description: Delete a monthly reconciliation report by report ID.
      tags:
      - Wholesale Billing Reports
      parameters:
      - name: id
        in: path
        description: A unique report ID that corresponds to a billing report.
        required: true
        example: Y2lzY29zcGFyazovL3VzL0JJTExJTkdfUkVQT1JULzViOGQ1MThhLThmMDAtNDUxYi1hNDA2LWVhZjQ5YjRhN2ZhOA
        schema:
          type: string
components:
  schemas:
    ListReport:
      type: object
      properties:
        id:
          type: string
          example: '''Y2lzY29zcGFyazovL3VzL0JJTExJTkdfUkVQT1JULzViOGQ1MThhLThmMDAtNDUxYi1hNDA2LWVhZjQ5YjRhN2ZhOA'''
          description: A unique report id that corresponds to a billing report.
        billingStartDate:
          type: string
          example: '2021-05-21'
          description: Billing report startDate.
        billingEndDate:
          type: string
          example: '2021-05-30'
          description: Billing report endDate.
        status:
          type: string
          enum:
          - IN_PROGRESS
          - COMPLETED
          - FAILED
          description: "The status of the billing report\n * `IN_PROGRESS` - Report generation is in progress.\n * `COMPLETED` - Report generation is complete.\n * `FAILED` - Report generation failed.\n"
        type:
          type: string
          enum:
          - USER
          - CUSTOMER
          - PARTNER
          description: Billing Report Type.
        category:
          type: string
          example: RECONCILIATION
          default: RECONCILIATION
          enum:
          - RECONCILIATION
          - POINT_IN_TIME
          description: The category of the billing report.
    ReportError:
      type: object
      properties:
        code:
          type: number
          example: 2024
          description: An error code that identifies the reason for the error.
        description:
          type: string
          example: Billing Report not found.
          description: A textual representation of the error code.
    WholesaleBillingReportsListResponse:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/ListReport'
          description: An array of report objects.
      example:
        items:
        - id: Y2lzY29zcGFyazovL3VzL0JJTExJTkdfUkVQT1JULzViOGQ1MThhLThmMDAtNDUxYi1hNDA2LWVhZjQ5YjRhN2ZhOA
          billingStartDate: '2021-05-21'
          billingEndDate: '2021-05-30'
          type: PARTNER
          category: RECONCILIATION
          created: '2021-06-16T12:40:33.109Z'
          createdBy: Y2lzY29zcGFyazovL3VzL1BFT1BMRS8wYWNkMzg3NS00ZTEyLTRkNzctYjk4MS1lMzg5ZmQ4ODQ2YzA
          status: COMPLETED
          tempDownloadURL: https://billing-reports-int-us-east-1.webexcontent.com/sample.csv
    Report:
      type: object
      properties:
        id:
          type: string
          example: '''Y2lzY29zcGFyazovL3VzL0JJTExJTkdfUkVQT1JULzViOGQ1MThhLThmMDAtNDUxYi1hNDA2LWVhZjQ5YjRhN2ZhOA'''
          description: A unique report ID that corresponds to a billing report.
        billingStartDate:
          type: string
          example: '2021-05-21'
          description: Billing report `startDate`.
        billingEndDate:
          type: string
          example: '2021-05-30'
          description: Billing report `endDate`.
        type:
          type: string
          enum:
          - USER
          - CUSTOMER
          - PARTNER
          description: Billing Report Type
        category:
          type: string
          example: RECONCILIATION
          enum:
          - RECONCILIATION
          - POINT_IN_TIME
          description: The category of the billing report.
        created:
          type: string
          example: '2021-06-16T12:40:33.109Z'
          description: The date and time the report was generated.
        createdBy:
          type: string
          example: Y2lzY29zcGFyazovL3VzL1BFT1BMRS8wYWNkMzg3NS00ZTEyLTRkNzctYjk4MS1lMzg5ZmQ4ODQ2YzA
          description: The person ID of the partner administrator who created the report.
        status:
          type: string
          enum:
          - IN_PROGRESS
          - COMPLETED
          - FAILED
          description: "The status of the billing report.\n * `IN_PROGRESS` - Report generation is in progress\n * `COMPLETED` - Report generation is complete\n * `FAILED` - Report generation failed\n"
        tempDownloadURL:
          type: string
          example: https://billing-reports-int-us-east-1.webexcontent.com/a366de9b-3204-4140-8181-25808d360e36/WHOLESALE/340177d1-7f25-41e1-a39f-ad63ec1103a5.csv?Expires=1624978489&Signature=Syp3vrVeMx4P6MeMtm8e1bQaeAdHFe-c7NeHERWh5-qJGLZ1T8Dvl2ee-M8OsFf~z6Yepz94e2Hh1HDVailD0Uryl8SgiM~jl0cBh7L0PmSe~i9oFA0eJ0MulkqGSMVf7ZHhxY55xYMgIBZIERkWm3CqQNDg5BS4EaXapKfOnmFegf36OokCM63m5uOK8-csk08IkZhwo2Z0l1JMtuWYEaLh4dgMHoe~xgH3YmDSSCWInFYaEifUAfgi2YAYS6nP9Zq4BTliBq62XBaehOE1gBrhy4RdwD-3WSs2oD-BdpoRpuGzo3FZzDLVEvd0S2D6gTcHljOHodQKxe-u0BXPWQ__&Key-Pair-Id=APKAJADAKLCI2FW2U32Q
          description: The URL for partners to download the billing report.
        errors:
          type: array
          items:
            $ref: '#/components/schemas/ReportError'
          description: 'List of errors that occurred during report generation.


            **Note:**


            * This list captures errors that occurred during asynchronous or background report generation, after the request has been accepted and a `202 OK` response is returned.'
      example:
        id: Y2lzY29zcGFyazovL3VzL0JJTExJTkdfUkVQT1JULzViOGQ1MThhLThmMDAtNDUxYi1hNDA2LWVhZjQ5YjRhN2ZhOA
        billingStartDate: '2021-05-21'
        billingEndDate: '2021-05-30'
        reportType: PARTNER
        category: RECONCILIATION
        createdBy: Y2lzY29zcGFyazovL3VzL1BFT1BMRS8wYWNkMzg3NS00ZTEyLTRkNzctYjk4MS1lMzg5ZmQ4ODQ2YzA
        status: COMPLETED
        tempDownloadURL: https://billing-reports-int-us-east-1.webexcontent.com/sample.csv
        errors: []
    ReportId:
      type: object
      properties:
        id:
          type: string
          example: '''Y2lzY29zcGFyazovL3VzL0JJTExJTkdfUkVQT1JULzViOGQ1MThhLThmMDAtNDUxYi1hNDA2LWVhZjQ5YjRhN2ZhOA'''
          description: A unique report ID that corresponds to a billing report.
        billingStartDate:
          type: string
          example: '2021-05-21'
          description: Billing report startDate.
        billingEndDate:
          type: string
          example: '2021-05-30'
          description: Billing report endDate.
        type:
          type: string
          enum:
          - USER
          - CUSTOMER
          - PARTNER
          description: Billing Report Type
        category:
          type: string
          example: RECONCILIATION
          enum:
          - RECONCILIATION
          - POINT_IN_TIME
          description: The category of the billing report.
      example:
        id: Y2lzY29zcGFyazovL3VzL0JJTExJTkdfUkVQT1JULzViOGQ1MThhLThmMDAtNDUxYi1hNDA2LWVhZjQ5YjRhN2ZhOA
        billingStartDate: '2021-05-21'
        billingEndDate: '2021-05-30'
        type: PARTNER
        category: RECONCILIATION
  securitySchemes:
    oauth2:
      flows:
        authorizationCode:
          authorizationUrl: /
          scopes: {}
          tokenUrl: /
      type: oauth2
    bearer-key:
      type: http
      description: e.g. Bearer YOUR_AUTHORIZATION_TOKEN
      scheme: bearer
      bearerFormat: JWT
    bearerAuth:
      type: oauth2
      description: OAuth 2.0 Bearer token authentication
      flows:
        authorizationCode:
          authorizationUrl: https://webexapis.com/v1/authorize
          tokenUrl: https://webexapis.com/v1/access_token
          scopes:
            spark:applications_token: Create access tokens for Service Apps