RecVue Invoices and Adjustments API

Create or update invoices for manual AR integration, search invoices for adjustments, run standard/manual adjustment processes (including mass submit and bulk imports), manage transaction types (INV, CM, DM), and update payment and billing lines with AR transaction IDs and GL dates.

OpenAPI Specification

recvue-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: RecVue API
  description: >-
    RecVue is an enterprise revenue management platform (RevOS) covering
    order-to-cash, billing, usage-based monetization, pricing, and ASC 606 /
    IFRS 15 revenue recognition. This OpenAPI is derived from RecVue's public
    developer reference at https://developer.recvue.com. The base URLs, the
    OAuth2 client-credentials authentication, and the paths for representative
    operations (for example GET /orders) are confirmed from that public
    reference; the full request/response schemas are honestly modeled from the
    documented resource operations rather than reproduced field-for-field, and
    RecVue tenants (production and sandbox) are provisioned through an
    enterprise sales process. Endpoints marked with `x-endpointsModeled: true`
    reflect documented operations whose exact path or payload was not verified
    verbatim. Treat this as a navigational model, not a generated client
    contract; consult developer.recvue.com/reference for authoritative detail.
  version: '2.0'
  contact:
    name: RecVue
    url: https://www.recvue.com/
servers:
  - url: https://api.recvue.com/api/v2.0
    description: Production
  - url: https://sandbox-api.recvue.com/api/v2.0
    description: Sandbox
security:
  - oauth2ClientCredentials: []
tags:
  - name: Authentication
    description: OAuth2 client-credentials token issuance.
  - name: Orders
    description: Order and order-line lifecycle (order-to-cash).
  - name: Billing
    description: Bill runs and invoice generation.
  - name: Billing Schedules
    description: Dated billing schedule records.
  - name: Pricing
    description: Price lists, tier pricing, and pricing rules.
  - name: Usage
    description: Usage/delivery ingestion for consumption billing.
  - name: Customers
    description: Customer accounts, sites, and contacts.
  - name: Invoices
    description: Invoices and adjustments (AR integration).
  - name: Revenue Recognition
    description: ASC 606 / IFRS 15 revenue-contract configuration.
  - name: Programs
    description: Asynchronous concurrent programs (bill runs, revenue, exports).
paths:
  /api/scim/oauth/token:
    post:
      operationId: issueAccessToken
      tags:
        - Authentication
      summary: Issue OAuth2 access token
      description: >-
        Issues an access token using the client_credentials grant. Authenticate
        with a Basic auth header or by passing client_id/client_secret as form
        parameters. Content-Type is application/x-www-form-urlencoded.
      security: []
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
                - grant_type
              properties:
                grant_type:
                  type: string
                  enum: [client_credentials]
                client_id:
                  type: string
                client_secret:
                  type: string
                scope:
                  type: string
      responses:
        '200':
          description: An access token.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessToken'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /orders:
    get:
      operationId: getOrders
      tags:
        - Orders
      summary: Get orders
      description: >-
        Retrieves a paginated list of orders with comprehensive filtering
        options.
      parameters:
        - name: page
          in: query
          schema:
            type: integer
        - name: limit
          in: query
          schema:
            type: integer
      responses:
        '200':
          description: A paginated list of orders.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderList'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createOrder
      tags:
        - Orders
      summary: Create order
      description: >-
        Creates an order. Supports hundreds of standard and custom fields
        including revenue settings and billing associations.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Order'
      responses:
        '200':
          description: The created order.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Order'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /orders/{orderId}:
    parameters:
      - name: orderId
        in: path
        required: true
        schema:
          type: string
    get:
      operationId: getOrderById
      tags:
        - Orders
      summary: Get order by ID
      x-endpointsModeled: true
      responses:
        '200':
          description: The order.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Order'
        '401':
          $ref: '#/components/responses/Unauthorized'
    put:
      operationId: updateOrder
      tags:
        - Orders
      summary: Update order
      x-endpointsModeled: true
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Order'
      responses:
        '200':
          description: The updated order.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Order'
    delete:
      operationId: deleteOrder
      tags:
        - Orders
      summary: Delete order
      description: Irreversible operation removing an order and its lines.
      x-endpointsModeled: true
      responses:
        '204':
          description: Deleted.
  /orders/{orderId}/activate:
    post:
      operationId: activateOrder
      tags:
        - Orders
      summary: Activate order
      description: Enables billing schedule generation for the order.
      x-endpointsModeled: true
      parameters:
        - name: orderId
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: The activated order.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Order'
  /orders/{orderId}/terminate:
    post:
      operationId: terminateOrder
      tags:
        - Orders
      summary: Terminate order
      description: Full or partial cancellation with credit options.
      x-endpointsModeled: true
      parameters:
        - name: orderId
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: The terminated order.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Order'
  /billruns:
    get:
      operationId: getBillRuns
      tags:
        - Billing
      summary: Get bill runs
      description: Retrieves bill runs with advanced filtering by name, date, and status.
      x-endpointsModeled: true
      responses:
        '200':
          description: A list of bill runs.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/BillRun'
    post:
      operationId: createBillRun
      tags:
        - Billing
      summary: Create bill run
      description: >-
        Generates invoices. Status flows CREATED to PROCESSING to COMPLETED.
      x-endpointsModeled: true
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BillRun'
      responses:
        '200':
          description: The created bill run.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BillRun'
  /billingschedules:
    get:
      operationId: getBillingSchedules
      tags:
        - Billing Schedules
      summary: Get billing schedules
      description: Paginated retrieval of billing schedules with filters.
      x-endpointsModeled: true
      responses:
        '200':
          description: A list of billing schedules.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/BillingSchedule'
    post:
      operationId: createBillingSchedule
      tags:
        - Billing Schedules
      summary: Create billing schedule
      description: Creates manual schedules for one-time or milestone billing.
      x-endpointsModeled: true
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BillingSchedule'
      responses:
        '200':
          description: The created billing schedule.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BillingSchedule'
  /pricelists:
    get:
      operationId: getPriceLists
      tags:
        - Pricing
      summary: Get price lists
      description: Paginated retrieval of price lists with filtering.
      x-endpointsModeled: true
      responses:
        '200':
          description: A list of price lists.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/PriceList'
  /usage/batches:
    post:
      operationId: loadUsageBatch
      tags:
        - Usage
      summary: Load usage records into batch
      description: >-
        Loads usage records as a JSON payload routed to the Usage Hub for
        consumption-based billing.
      x-endpointsModeled: true
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UsageBatch'
      responses:
        '200':
          description: The accepted usage batch.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UsageBatch'
  /deliveries:
    get:
      operationId: getDeliveries
      tags:
        - Usage
      summary: List usages/deliveries
      description: Paginated ORDER_DELIVERIES records.
      x-endpointsModeled: true
      responses:
        '200':
          description: A list of deliveries.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Delivery'
  /customers:
    get:
      operationId: getCustomerAccounts
      tags:
        - Customers
      summary: Get customer accounts
      description: Retrieves customer accounts by ID or origSystemReference.
      x-endpointsModeled: true
      responses:
        '200':
          description: A list of customer accounts.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/CustomerAccount'
    post:
      operationId: createCustomerAccount
      tags:
        - Customers
      summary: Create customer account
      description: Creates a customer account with partner and payment-term validation.
      x-endpointsModeled: true
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomerAccount'
      responses:
        '200':
          description: The created customer account.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerAccount'
  /invoices:
    post:
      operationId: createInvoice
      tags:
        - Invoices
      summary: Create or update invoice
      description: Creates or updates an invoice for manual AR integration.
      x-endpointsModeled: true
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Invoice'
      responses:
        '200':
          description: The created or updated invoice.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Invoice'
  /revenue/contract-amendment-setup:
    get:
      operationId: getRevenueContractAmendmentSetup
      tags:
        - Revenue Recognition
      summary: Get revenue contract amendment setup
      description: >-
        Retrieves ASC 606 performance-obligation (POB) and compliance
        configuration for revenue-contract amendments.
      x-endpointsModeled: true
      responses:
        '200':
          description: The revenue contract amendment setup.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RevenueContractAmendmentSetup'
    post:
      operationId: createRevenueContractAmendmentSetup
      tags:
        - Revenue Recognition
      summary: Create revenue contract amendment setup
      description: Creates ASC 606 POB and compliance controls for a revenue contract.
      x-endpointsModeled: true
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RevenueContractAmendmentSetup'
      responses:
        '200':
          description: The created setup.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RevenueContractAmendmentSetup'
  /programs/execute:
    post:
      operationId: executeConcurrentProgram
      tags:
        - Programs
      summary: Execute concurrent program
      description: >-
        Asynchronously executes a background program - bill runs, revenue
        recognition, tax, and exports.
      x-endpointsModeled: true
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                programId:
                  type: string
                parameters:
                  type: object
                  additionalProperties: true
      responses:
        '202':
          description: Program accepted for asynchronous execution.
          content:
            application/json:
              schema:
                type: object
                properties:
                  requestId:
                    type: string
                  status:
                    type: string
components:
  securitySchemes:
    oauth2ClientCredentials:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://api.recvue.com/api/v2.0/api/scim/oauth/token
          scopes: {}
  responses:
    Unauthorized:
      description: Authentication failed or token is missing/expired.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    AccessToken:
      type: object
      properties:
        access_token:
          type: string
        token_type:
          type: string
          example: Bearer
        expires_in:
          type: integer
        scope:
          type: string
    Order:
      type: object
      description: >-
        An order. RecVue orders carry hundreds of standard and custom fields;
        only a representative subset is modeled here.
      properties:
        orderId:
          type: string
        orderNumber:
          type: string
        externalReference:
          type: string
        orderType:
          type: string
        customerAccountNumber:
          type: string
        status:
          type: string
        startDate:
          type: string
          format: date
        endDate:
          type: string
          format: date
        currency:
          type: string
        lines:
          type: array
          items:
            $ref: '#/components/schemas/OrderLine'
      additionalProperties: true
    OrderLine:
      type: object
      properties:
        lineId:
          type: string
        productId:
          type: string
        quantity:
          type: number
        unitPrice:
          type: number
        priceListId:
          type: string
        revenueFlag:
          type: boolean
      additionalProperties: true
    OrderList:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Order'
        page:
          type: integer
        total:
          type: integer
    BillRun:
      type: object
      properties:
        billRunId:
          type: string
        name:
          type: string
        status:
          type: string
          enum: [CREATED, PROCESSING, COMPLETED]
        billingDate:
          type: string
          format: date
      additionalProperties: true
    BillingSchedule:
      type: object
      properties:
        scheduleId:
          type: string
        orderLineId:
          type: string
        billingDate:
          type: string
          format: date
        quantity:
          type: number
        amount:
          type: number
        contingencyFlag:
          type: boolean
      additionalProperties: true
    PriceList:
      type: object
      properties:
        priceListId:
          type: string
        name:
          type: string
        type:
          type: string
          enum: [STANDARD, CUSTOMER, REVENUE, HIERARCHICAL]
        items:
          type: array
          items:
            type: object
            additionalProperties: true
      additionalProperties: true
    UsageBatch:
      type: object
      properties:
        batchId:
          type: string
        records:
          type: array
          items:
            type: object
            additionalProperties: true
      additionalProperties: true
    Delivery:
      type: object
      properties:
        deliveryId:
          type: string
        orderLineId:
          type: string
        quantity:
          type: number
        deliveryDate:
          type: string
          format: date
        status:
          type: string
      additionalProperties: true
    CustomerAccount:
      type: object
      properties:
        accountNumber:
          type: string
        name:
          type: string
        origSystemReference:
          type: string
        paymentTerms:
          type: string
        sites:
          type: array
          items:
            type: object
            additionalProperties: true
      additionalProperties: true
    Invoice:
      type: object
      properties:
        invoiceNumber:
          type: string
        customerAccountNumber:
          type: string
        transactionType:
          type: string
          enum: [INV, CM, DM]
        amount:
          type: number
        glDate:
          type: string
          format: date
      additionalProperties: true
    RevenueContractAmendmentSetup:
      type: object
      properties:
        setupId:
          type: string
        performanceObligation:
          type: string
        allocationMethod:
          type: string
        complianceStandard:
          type: string
          enum: [ASC606, IFRS15]
      additionalProperties: true
    Error:
      type: object
      properties:
        code:
          type: string
        message:
          type: string