tread.io AddOnCharges API

The AddOnCharges API from tread.io — 6 operation(s) for addoncharges.

OpenAPI Specification

treadio-addoncharges-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Horizon API V1 AccountExternalTruckIdentifier AddOnCharges API
  version: '1.0'
  contact:
    name: Tread
    url: https://tread.io
    email: developers@tread.io
  description: 'This is the Version 1 implementation.


    When in doubt we default to the practices outlined [here](https://www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api#advanced-queries)'
  license:
    name: Private
    url: https://tread.io
servers:
- description: production
  url: https://api.tread-horizon.com
security:
- bearerAuth: []
tags:
- name: AddOnCharges
paths:
  /v1/add_on_charges/{id}:
    parameters:
    - schema:
        type: string
      name: id
      in: path
      required: true
      description: AddOnCharge ID
    - $ref: '#/components/parameters/Accept-Language'
    get:
      summary: Retrieve a single AddOnCharge
      tags:
      - AddOnCharges
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    $ref: '#/components/schemas/AddOnCharge-Read'
        '401':
          $ref: '#/components/responses/UnauthenticatedError'
        '404':
          $ref: '#/components/responses/Error'
        '406':
          $ref: '#/components/responses/Error'
      operationId: get-v1-add-on-charges-id
      x-stoplight:
        id: ba6h588czevfo
      description: Retrieve a single `AddOnCharge` by ID
      x-internal: true
    patch:
      summary: Update an AddOnCharge
      tags:
      - AddOnCharges
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    $ref: '#/components/schemas/AddOnCharge-Read'
        '401':
          $ref: '#/components/responses/UnauthenticatedError'
        '403':
          $ref: '#/components/responses/Error'
        '404':
          $ref: '#/components/responses/Error'
        '406':
          $ref: '#/components/responses/Error'
        '415':
          $ref: '#/components/responses/Error'
        '422':
          $ref: '#/components/responses/ModelError'
      operationId: patch-v1-add-on-charges-id
      x-stoplight:
        id: 5euad7wqjmg3i
      description: Update an `AddOnCharge`
      x-internal: true
      requestBody:
        content:
          application/json:
            schema:
              type: object
              $ref: '#/components/schemas/AddOnCharge-Update'
    delete:
      summary: Delete an AddOnCharge
      tags:
      - AddOnCharges
      responses:
        '204':
          description: No Content
        '401':
          $ref: '#/components/responses/UnauthenticatedError'
        '403':
          $ref: '#/components/responses/Error'
        '404':
          $ref: '#/components/responses/Error'
        '406':
          $ref: '#/components/responses/Error'
        '422':
          $ref: '#/components/responses/ModelError'
      operationId: delete-v1-add-on-charges-id
      x-stoplight:
        id: 9xrptlgrnufur
      x-internal: true
      description: Delete an `AddOnCharge`
  /v1/companies/{company-id}/invoices/{invoice-id}/add_on_charges:
    parameters:
    - schema:
        type: string
        format: uuid
      name: company-id
      in: path
      required: true
      description: Company ID
    - schema:
        type: string
      name: invoice-id
      in: path
      required: true
      description: Invoice ID
    - $ref: '#/components/parameters/Accept-Language'
    post:
      summary: Create an AddOnCharge for an Invoice (company-scoped)
      operationId: post-v1-companies-company-id-invoices-invoice-id-add-on-charges
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    $ref: '#/components/schemas/AddOnCharge-Read'
        '401':
          $ref: '#/components/responses/UnauthenticatedError'
        '403':
          $ref: '#/components/responses/Error'
        '404':
          $ref: '#/components/responses/Error'
        '406':
          $ref: '#/components/responses/Error'
        '415':
          $ref: '#/components/responses/Error'
        '422':
          $ref: '#/components/responses/ModelError'
      description: 'Create an `AddOnCharge` for an `Invoice` within a specific company scope.


        This endpoint is used to apply an `AddOnCharge` for an `Invoice`.'
      x-internal: true
      requestBody:
        content:
          application/json:
            schema:
              type: object
              $ref: '#/components/schemas/AddOnCharge-Create'
      tags:
      - AddOnCharges
    get:
      summary: Retrieve AddOnCharges for an Invoice (company-scoped)
      tags:
      - AddOnCharges
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/AddOnCharge-Read'
          headers:
            Link:
              schema:
                type: string
              description: Contains prev and next links for pagination
        '401':
          $ref: '#/components/responses/UnauthenticatedError'
        '404':
          $ref: '#/components/responses/Error'
        '406':
          $ref: '#/components/responses/Error'
      operationId: get-v1-companies-company-id-invoices-invoice-id-add-on-charges
      x-internal: true
      description: 'Retrieve `AddOnCharges` for an `Invoice` within a specific company context.


        This endpoint returns the applied `AddOnCharges` for an `Invoice` and validates that the company_id is authorized for the current user.'
      parameters:
      - $ref: '#/components/parameters/page-limit'
      - $ref: '#/components/parameters/page-after'
      - $ref: '#/components/parameters/page-before'
    patch:
      summary: Batch update AddOnCharges for an Invoice for a Company
      responses:
        '200':
          description: OK
          headers:
            Link:
              schema:
                type: string
              description: Contains prev and next links for pagination
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    x-stoplight:
                      id: dw39xnqamd8aw-company
                    items:
                      $ref: '#/components/schemas/AddOnCharge-Read'
        '400':
          $ref: '#/components/responses/Error'
        '401':
          $ref: '#/components/responses/UnauthenticatedError'
        '403':
          $ref: '#/components/responses/Error'
        '404':
          $ref: '#/components/responses/Error'
        '406':
          $ref: '#/components/responses/Error'
        '415':
          $ref: '#/components/responses/Error'
        '422':
          $ref: '#/components/responses/ModelError'
      operationId: patch-v1-companies-company-id-invoices-invoice-id-add-on-charges
      x-stoplight:
        id: s2ctvyxv0q08n-company
      description: "Batch update `AddOnCharges` for an `Invoice` for a `Company`\n\nThis endpoint allows updating, creating, deleting `AddOnCharges` all at once.\n\nIf updating existing records:\n- must provide the `id` for each record to be updated\n- only provide the fields to be updated\ne.g.\n```json\nadd_on_charges: [\n  {\n    \"id\": \"some-uuid\"\n    \"quantity\": 20.25,\n    \"rate\": 15.75\n  }\n]\n```\n\nIf creating new records:\n- must not provide the `id` for each record to be created\n- provide all the fields needed for the record\ne.g.\n```json\nadd_on_charges: [\n  {\n    \"quantity\": 20.25,\n    \"rate\": 12.5,\n    \"add_on_rate_type\": \"RateForEach\"\n  },\n  {\n    \"percentage\": 10,\n    \"add_on_rate_type\": \"RatePercentOfTotal\"\n  }\n]\n```\n\nIf deleting exisitng records:\n- must provide the `id` and the property `_destroy: 1`\n\ne.g. \n```json\nadd_on_charges: [\n  {\n    \"id\": \"some-uuid\"\n    \"_destroy\": 1\n  }\n]\n```"
      x-internal: true
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                add_on_charges:
                  type: array
                  x-stoplight:
                    id: z27syd1630c6o-company
                  items:
                    x-stoplight:
                      id: q5zz10ownp1fp-company
                    anyOf:
                    - $ref: '#/components/schemas/AddOnCharge-Create'
                    - $ref: '#/components/schemas/AddOnCharge-Update-Destroyable'
      tags:
      - AddOnCharges
  /v1/companies/{company-id}/settlements/{settlement-id}/add_on_charges:
    parameters:
    - schema:
        type: string
        format: uuid
      name: company-id
      in: path
      required: true
      description: Company ID
    - schema:
        type: string
      name: settlement-id
      in: path
      required: true
      description: Settlement ID
    - $ref: '#/components/parameters/Accept-Language'
    post:
      summary: Create an AddOnCharge for a Settlement (company-scoped)
      tags:
      - AddOnCharges
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    $ref: '#/components/schemas/AddOnCharge-Read'
        '401':
          $ref: '#/components/responses/UnauthenticatedError'
        '403':
          $ref: '#/components/responses/Error'
        '404':
          $ref: '#/components/responses/Error'
        '406':
          $ref: '#/components/responses/Error'
        '415':
          $ref: '#/components/responses/Error'
        '422':
          $ref: '#/components/responses/ModelError'
      operationId: post-v1-companies-company-id-settlements-settlement-id-add-on-charges
      description: 'Create an `AddOnCharge` for a `Settlement` within a specific company scope.


        This endpoint is used to apply an `AddOnCharge` for a `Settlement`.'
      x-internal: true
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              $ref: '#/components/schemas/AddOnCharge-Create'
    get:
      summary: Retrieve AddOnCharges for a Settlement (company-scoped)
      tags:
      - AddOnCharges
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/AddOnCharge-Read'
          headers:
            Link:
              schema:
                type: string
              description: Contains prev and next links for pagination
        '401':
          $ref: '#/components/responses/UnauthenticatedError'
        '404':
          $ref: '#/components/responses/Error'
        '406':
          $ref: '#/components/responses/Error'
      operationId: get-v1-companies-company-id-settlements-settlement-id-add-on-charges
      x-internal: true
      description: 'Retrieve `AddOnCharges` for a `Settlement` within a specific company context.


        This endpoint returns the applied `AddOnCharges` for a `Settlement` and validates that the company_id is authorized for the current user.'
      parameters:
      - $ref: '#/components/parameters/page-limit'
      - $ref: '#/components/parameters/page-after'
      - $ref: '#/components/parameters/page-before'
    patch:
      summary: Batch update AddOnCharges for a Settlement (Company-scoped)
      tags:
      - AddOnCharges
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/AddOnCharge-Read'
        '400':
          $ref: '#/components/responses/Error'
        '401':
          $ref: '#/components/responses/UnauthenticatedError'
        '403':
          $ref: '#/components/responses/Error'
        '404':
          $ref: '#/components/responses/Error'
        '406':
          $ref: '#/components/responses/Error'
        '415':
          $ref: '#/components/responses/Error'
        '422':
          $ref: '#/components/responses/ModelError'
      operationId: patch-v1-companies-company-id-settlements-settlement-id-add-on-charges
      x-internal: true
      description: "Batch update `AddOnCharges` for a `Settlement` using company-scoped endpoint.\n\nThis endpoint allows parent companies to manage add-on charges for settlements belonging to their child companies.\n\nThis endpoint allows updating, creating, deleting `AddOnCharges` all at once.\n\nIf updating existing records:\n- must provide the `id` for each record to be updated\n- only provide the fields to be updated\ne.g.\n```json\nadd_on_charges: [\n  {\n    \"id\": \"some-uuid\"\n    \"quantity\": 20.25,\n    \"rate\": 15.75\n  }\n]\n```\n\nIf creating new records:\n- must not provide the `id` for each record to be created\n- provide all the fields needed for the record\ne.g.\n```json\nadd_on_charges: [\n  {\n    \"quantity\": 20.25,\n    \"rate\": 12.5,\n    \"add_on_rate_type\": \"RateForEach\"\n  },\n  {\n    \"percentage\": 10,\n    \"add_on_rate_type\": \"RatePercentOfTotal\"\n  }\n]\n```\n\nIf deleting exisitng records:\n- must provide the `id` and the property `_destroy: 1`\n\ne.g. \n```json\nadd_on_charges: [\n  {\n    \"id\": \"some-uuid\"\n    \"_destroy\": 1\n  }\n]\n```"
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                add_on_charges:
                  type: array
                  items:
                    anyOf:
                    - $ref: '#/components/schemas/AddOnCharge-Create'
                    - $ref: '#/components/schemas/AddOnCharge-Update-Destroyable'
  /v1/driver_days/{driver-day-id}/add_on_charges:
    parameters:
    - schema:
        type: string
      name: driver-day-id
      in: path
      required: true
      description: DriverDay ID
    - $ref: '#/components/parameters/Accept-Language'
    post:
      summary: Create an AddOnCharge for a DriverDay
      tags:
      - AddOnCharges
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    $ref: '#/components/schemas/AddOnCharge-Read'
        '401':
          $ref: '#/components/responses/UnauthenticatedError'
        '403':
          $ref: '#/components/responses/Error'
        '404':
          $ref: '#/components/responses/Error'
        '406':
          $ref: '#/components/responses/Error'
        '415':
          $ref: '#/components/responses/Error'
        '422':
          $ref: '#/components/responses/ModelError'
      operationId: post-v1-driver_days-driver-day-id-add-on-charges
      x-stoplight:
        id: wm44acbempsgf
      x-internal: true
      description: 'Create an `AddOnCharge` for a `DriverDay`.


        This endpoint is used to apply an `AddOnCharge` for a `DriverDay`.'
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              $ref: '#/components/schemas/AddOnCharge-Create'
    get:
      summary: Retrieve AddOnCharges for a DriverDay
      tags:
      - AddOnCharges
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    x-stoplight:
                      id: 62s6gniyoshoe
                    items:
                      $ref: '#/components/schemas/AddOnCharge-Read'
          headers:
            Link:
              schema:
                type: string
              description: Contains prev and next links for pagination
        '401':
          $ref: '#/components/responses/UnauthenticatedError'
        '404':
          $ref: '#/components/responses/Error'
        '406':
          $ref: '#/components/responses/Error'
      operationId: get-v1-driver_days-driver-day-id-add-on-charges
      x-stoplight:
        id: 6avwghey9t7mc
      x-internal: true
      description: 'Retrieve `AddOnCharges` for a `DriverDay`.


        This endpoint returns the applied `AddOnCharges` for a `DriverDay`.'
      parameters:
      - $ref: '#/components/parameters/page-limit'
      - $ref: '#/components/parameters/page-after'
      - $ref: '#/components/parameters/page-before'
    patch:
      summary: Batch update AddOnCharges for a DriverDay
      tags:
      - AddOnCharges
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    x-stoplight:
                      id: exyacbi5mph15
                    items:
                      $ref: '#/components/schemas/AddOnCharge-Read'
        '400':
          $ref: '#/components/responses/Error'
        '401':
          $ref: '#/components/responses/UnauthenticatedError'
        '403':
          $ref: '#/components/responses/Error'
        '404':
          $ref: '#/components/responses/Error'
        '406':
          $ref: '#/components/responses/Error'
        '415':
          $ref: '#/components/responses/Error'
        '422':
          $ref: '#/components/responses/ModelError'
      operationId: patch-v1-driver_days-driver-day-id-add-on-charges
      x-stoplight:
        id: xuuovaurs6pkh
      x-internal: true
      description: "Batch update `AddOnCharges` for a `DriverDay`\n\nThis endpoint allows updating, creating, deleting `AddOnCharges` all at once.\n\nIf updating existing records:\n- must provide the `id` for each record to be updated\n- only provide the fields to be updated\ne.g.\n```json\nadd_on_charges: [\n  {\n    \"id\": \"some-uuid\"\n    \"quantity\": 20.25,\n    \"rate\": 15.75\n  }\n]\n```\n\nIf creating new records:\n- must not provide the `id` for each record to be created\n- provide all the fields needed for the record\ne.g.\n```json\nadd_on_charges: [\n  {\n    \"quantity\": 20.25,\n    \"rate\": 12.5,\n    \"add_on_rate_type\": \"RateForEach\"\n  },\n  {\n    \"percentage\": 10,\n    \"add_on_rate_type\": \"RatePercentOfTotal\"\n  }\n]\n```\n\nIf deleting exisitng records:\n- must provide the `id` and the property `_destroy: 1`\n\ne.g. \n```json\nadd_on_charges: [\n  {\n    \"id\": \"some-uuid\"\n    \"_destroy\": 1\n  }\n]\n```"
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                add_on_charges:
                  type: array
                  x-stoplight:
                    id: rm6mgg6xcn0eu
                  items:
                    x-stoplight:
                      id: 4wfwplap5xusm
                    anyOf:
                    - $ref: '#/components/schemas/AddOnCharge-Create'
                    - $ref: '#/components/schemas/AddOnCharge-Update-Destroyable'
  /v1/jobs/{job-id}/add_on_charges:
    parameters:
    - schema:
        type: string
        format: uuid
      name: job-id
      in: path
      required: true
      description: Job ID
    - $ref: '#/components/parameters/Accept-Language'
    post:
      summary: Create an AddOnCharge for a Job
      tags:
      - AddOnCharges
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    $ref: '#/components/schemas/AddOnCharge-Read'
        '401':
          $ref: '#/components/responses/UnauthenticatedError'
        '403':
          $ref: '#/components/responses/Error'
        '404':
          $ref: '#/components/responses/Error'
        '406':
          $ref: '#/components/responses/Error'
        '415':
          $ref: '#/components/responses/Error'
        '422':
          $ref: '#/components/responses/ModelError'
      operationId: post-v1-jobs-job-id-add-on-charges
      x-stoplight:
        id: xr122zynv088s
      x-internal: true
      description: 'Create an `AddOnCharge` for a `Job`.


        This endpoint is used to request an `AddOnCharge` for a `Job` that can be applied on a billing object.'
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              $ref: '#/components/schemas/AddOnCharge-Create'
    get:
      summary: Retrieve AddOnCharges for a Job
      tags:
      - AddOnCharges
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    x-stoplight:
                      id: nb8iy18s9f6c8
                    items:
                      $ref: '#/components/schemas/AddOnCharge-Read'
          headers:
            Link:
              schema:
                type: string
              description: Contains prev and next links for pagination
        '401':
          $ref: '#/components/responses/UnauthenticatedError'
        '404':
          $ref: '#/components/responses/Error'
        '406':
          $ref: '#/components/responses/Error'
      operationId: get-v1-jobs-job-id-add-on-charges
      x-stoplight:
        id: mmddentq2cgui
      x-internal: true
      description: 'Retrieve `AddOnCharges` for a `Job`.


        This endpoint returns the requested `AddOnCharges` for a `Job`.'
      parameters:
      - $ref: '#/components/parameters/page-limit'
      - $ref: '#/components/parameters/page-after'
      - $ref: '#/components/parameters/page-before'
    patch:
      summary: Batch update AddOnCharges for a Job
      tags:
      - AddOnCharges
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    x-stoplight:
                      id: n7e5pr773lnrt
                    items:
                      $ref: '#/components/schemas/AddOnCharge-Read'
        '400':
          $ref: '#/components/responses/Error'
        '401':
          $ref: '#/components/responses/UnauthenticatedError'
        '404':
          $ref: '#/components/responses/Error'
        '406':
          $ref: '#/components/responses/Error'
        '415':
          $ref: '#/components/responses/Error'
        '422':
          $ref: '#/components/responses/ModelError'
      operationId: patch-v1-jobs-job-id-add-on-charges
      x-stoplight:
        id: i50mevcejjfoi
      x-internal: true
      description: "Batch update `AddOnCharges` for an `Job`\n\nThis endpoint allows updating, creating, deleting `AddOnCharges` all at once.\n\nIf updating existing records:\n- must provide the `id` for each record to be updated\n- only provide the fields to be updated\ne.g.\n```json\nadd_on_charges: [\n  {\n    \"id\": \"some-uuid\"\n    \"quantity\": 20.25,\n    \"rate\": 15.75\n  }\n]\n```\n\nIf creating new records:\n- must not provide the `id` for each record to be created\n- provide all the fields needed for the record\ne.g.\n```json\nadd_on_charges: [\n  {\n    \"quantity\": 20.25,\n    \"rate\": 12.5,\n    \"add_on_rate_type\": \"RateForEach\"\n  },\n  {\n    \"percentage\": 10,\n    \"add_on_rate_type\": \"RatePercentOfTotal\"\n  }\n]\n```\n\nIf deleting exisitng records:\n- must provide the `id` and the property `_destroy: 1`\n\ne.g. \n```json\nadd_on_charges: [\n  {\n    \"id\": \"some-uuid\"\n    \"_destroy\": 1\n  }\n]\n```"
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                add_on_charges:
                  type: array
                  x-stoplight:
                    id: 2la6grsivscm7
                  items:
                    x-stoplight:
                      id: b2e1z3awpe093
                    anyOf:
                    - $ref: '#/components/schemas/AddOnCharge-Create'
                    - $ref: '#/components/schemas/AddOnCharge-Update-Destroyable'
  /v1/settlements/{settlement-id}/add_on_charges:
    parameters:
    - schema:
        type: string
      name: settlement-id
      in: path
      required: true
      description: Settlement ID
    - $ref: '#/components/parameters/Accept-Language'
    post:
      summary: Create an AddOnCharge for a Settlement
      tags:
      - AddOnCharges
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    $ref: '#/components/schemas/AddOnCharge-Read'
        '401':
          $ref: '#/components/responses/UnauthenticatedError'
        '403':
          $ref: '#/components/responses/Error'
        '404':
          $ref: '#/components/responses/Error'
        '406':
          $ref: '#/components/responses/Error'
        '415':
          $ref: '#/components/responses/Error'
        '422':
          $ref: '#/components/responses/ModelError'
      operationId: post-v1-settlements-settlement-id-add-on-charges
      x-stoplight:
        id: lcfbg9vsjgekb
      description: 'Create an `AddOnCharge` for a `Settlement`.


        This endpoint is used to apply an `AddOnCharge` for an `Settlement`.'
      x-internal: true
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              $ref: '#/components/schemas/AddOnCharge-Create'
    get:
      summary: Retrieve AddOnCharges for a Settlement
      tags:
      - AddOnCharges
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    x-stoplight:
                      id: syquhr0motskr
                    items:
                      $ref: '#/components/schemas/AddOnCharge-Read'
          headers:
            Link:
              schema:
                type: string
              description: Contains prev and next links for pagination
        '401':
          $ref: '#/components/responses/UnauthenticatedError'
        '404':
          $ref: '#/components/responses/Error'
        '406':
          $ref: '#/components/responses/Error'
      operationId: get-v1-settlements-settlement-id-add-on-charges
      x-stoplight:
        id: oor6jevy3ynek
      x-internal: true
      description: 'Retrieve `AddOnCharges` for a `Settlement`.


        This endpoint returns the applied `AddOnCharges` for a `Settlement`.'
      parameters:
      - $ref: '#/components/parameters/page-limit'
      - $ref: '#/components/parameters/page-after'
      - $ref: '#/components/parameters/page-before'
    patch:
      summary: Batch update AddOnCharges for a Settlement
      tags:
      - AddOnCharges
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    x-stoplight:
                      id: in5y0dfgj4jvp
                    items:
                      $ref: '#/components/schemas/AddOnCharge-Read'
        '400':
          $ref: '#/components/responses/Error'
        '401':
          $ref: '#/components/responses/UnauthenticatedError'
        '403':
          $ref: '#/components/responses/Error'
        '404':
          $ref: '#/components/responses/Error'
        '406':
          $ref: '#/components/responses/Error'
        '415':
          $ref: '#/components/responses/Error'
        '422':
          $ref: '#/components/responses/ModelError'
      operationId: patch-v1-settlements-settlement-id-add-on-charges
      x-stoplight:
        id: 75zqxlladu67l
      x-internal: true
      description: "Batch update `AddOnCharges` for a `Settlement`\n\nThis endpoint allows updating, creating, deleting `AddOnCharges` all at once.\n\nIf updating existing records:\n- must provide the `id` for each record to be updated\n- only provide the fields to be updated\ne.g.\n```json\nadd_on_charges: [\n  {\n    \"id\": \"some-uuid\"\n    \"quantity\": 20.25,\n    \"rate\": 15.75\n  }\n]\n```\n\nIf creating new records:\n- must not provide the `id` for each record to be created\n- provide all the fields needed for the record\ne.g.\n```json\nadd_on_charges: [\n  {\n    \"quantity\": 20.25,\n    \"rate\": 12.5,\n    \"add_on_rate_type\": \"RateForEach\"\n  },\n  {\n    \"percentage\": 10,\n    \"add_on_rate_type\": \"RatePercentOfTotal\"\n  }\n]\n```\n\nIf deleting exisitng records:\n- must provide the `id` and the property `_destroy: 1`\n\ne.g. \n```json\nadd_on_charges: [\n  {\n    \"id\": \"some-uuid\"\n    \"_destroy\": 1\n  }\n]\n```"
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                add_on_charges:
                  type: array
                  x-stoplight:
                    id: mofgsixpv66s5
                  items:
                    x-stoplight:
                      id: k82c0mauuc5as
                    anyOf:
                    - $ref: '#/components/schemas/AddOnCharge-Create'
                    - $ref: '#/components/schemas/AddOnCharge-Update-Destroyable'
components:
  responses:
    ModelError:
      description: ''
      content:
        application/json:
          schema:
            type: object
            $ref: '#/components/schemas/ModelError-Response'
    Error:
      description: Error response
      content:
        application/json:
          schema:
            type: object
            $ref: '#/components/schemas/Error-Response'
    UnauthenticatedError:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            $ref: '#/components/schemas/UnauthenticatedError-Response'
  schemas:
    NullableAddOnRequestableType:
      title: NullableAddOnRequestableType
      x-stoplight:
        id: jlbtlz8rtw77s
      allOf:
      - $ref: '#/components/schemas/AddOnRequestableType'
      nullable: true
      type: string
    Error-Response:
      title: Error-Response
      x-stoplight:
        id: 52cydhphee3qe
      type: object
      required:
      - error
      properties:
        error:
          $ref: '#/components/schemas/Error'
      additionalProperties: false
    AddOnRequestableType:
      title: AddOnRequestableType
      x-stoplight:
      

# --- truncated at 32 KB (45 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/treadio/refs/heads/main/openapi/treadio-addoncharges-api-openapi.yml