Vic.ai Payment Terms API

Payment terms are part of your *ERP* **Masterdata**, and represent payment terms that Vic.ai can automatically assign to invoices. Some vendors may have a default payment term, and some invoices may have a specific payment term. In either case, Vic.ai can automatically assign payment terms to invoices.

Business capability
Accounts Payable Management BC-200.20

Operations 6

GET /v0/paymentTerms Get a list of payment terms #
POST /v0/paymentTerms Create a new payment term #
POST /v0/paymentTerms/synchronize Synchronize Payment Terms #
GET /v0/paymentTerms/{id} Get a payment term #
PUT /v0/paymentTerms/{id} Update a payment term #
DELETE /v0/paymentTerms/{id} Delete a payment term #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/vicai-payment-terms-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

vicai-payment-terms-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: v10.40.4
  contact: {}
  title: Vic.ai Payment Terms API
  description: '## Introduction


    The Vic.ai API provides a seamless connection between your Enterprise Resource

    Planning (ERP) system and the Vic.ai product suite.'
servers:
- url: https://api.no.stage.vic.ai
  description: staging server, NO
- url: https://api.us.vic.ai
  description: production server, US
- url: https://api.no.vic.ai
  description: production server, NO
security:
- BearerAuth: []
tags:
- name: Payment Terms
  description: 'Payment terms are part of your *ERP* **Masterdata**, and represent

    payment terms that Vic.ai can automatically assign to invoices. Some

    vendors may have a default payment term, and some invoices may have a

    specific payment term. In either case, Vic.ai can automatically assign

    payment terms to invoices.'
paths:
  /v0/paymentTerms:
    get:
      description: Get a list of payment terms.
      summary: Get a list of payment terms
      operationId: listPaymentTerms
      tags:
      - Payment Terms
      responses:
        '200':
          $ref: '#/components/responses/PaymentTermListResponse'
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
        4XX:
          $ref: '#/components/responses/ErrorResponse'
    post:
      description: Create a new payment term.
      summary: Create a new payment term
      operationId: createPaymentTerm
      tags:
      - Payment Terms
      requestBody:
        $ref: '#/components/requestBodies/CreatePaymentTermRequest'
      responses:
        '201':
          $ref: '#/components/responses/PaymentTermResponse'
        '403':
          $ref: '#/components/responses/ForbiddenResponse'
        '422':
          $ref: '#/components/responses/UnprocessableEntityResponse'
  /v0/paymentTerms/synchronize:
    post:
      description: 'Tells the ERP to synchronize the Payment Terms resource. If the ERP is

        using the API, the call will be sent via the normal webhook methods. If

        the ERP is not using this API then this will call the native

        integration''s synchronize functionality.'
      summary: Synchronize Payment Terms
      operationId: synchronizePaymentTerms
      tags:
      - Payment Terms
      responses:
        '204':
          $ref: '#/components/responses/SynchronizePaymentTermsResponse'
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
        4XX:
          $ref: '#/components/responses/ErrorResponse'
  /v0/paymentTerms/{id}:
    get:
      description: 'Get a payment term.

        The `id` in the path can be either the Payment Term''s internal ID or its

        external ID when `useSystem=external` is included in the query string.'
      summary: Get a payment term
      operationId: getPaymentTerm
      tags:
      - Payment Terms
      parameters:
      - $ref: '#/components/parameters/PathId'
      - $ref: '#/components/parameters/UseSystemDefaultInternal'
      responses:
        '200':
          $ref: '#/components/responses/PaymentTermResponse'
        '403':
          $ref: '#/components/responses/ForbiddenResponse'
        '404':
          $ref: '#/components/responses/ResourceNotFoundResponse'
    put:
      description: 'Update a payment term.

        The `id` in the path can be either the Payment Term''s internal ID or its

        external ID when `useSystem=external` is included in the request. The

        Payment Term''s external ID can be updated by including `externalId={value}`

        in the request body. If the `externalId` key is present without a value,

        the Payment Term''s `externalId` **WILL** be cleared.'
      summary: Update a payment term
      operationId: updatePaymentTerm
      tags:
      - Payment Terms
      parameters:
      - $ref: '#/components/parameters/PathId'
      - $ref: '#/components/parameters/UseSystemDefaultInternal'
      requestBody:
        $ref: '#/components/requestBodies/UpdatePaymentTermRequest'
      responses:
        '200':
          $ref: '#/components/responses/PaymentTermResponse'
        '403':
          $ref: '#/components/responses/ForbiddenResponse'
        '422':
          $ref: '#/components/responses/UnprocessableEntityResponse'
    delete:
      description: 'Delete a payment term.

        The `id` in the path can be either the Payment Term''s internal ID or its

        external ID when `useSystem=external` is included in the query string.'
      summary: Delete a payment term
      operationId: deletePaymentTerm
      tags:
      - Payment Terms
      parameters:
      - $ref: '#/components/parameters/PathId'
      - $ref: '#/components/parameters/UseSystemDefaultInternal'
      responses:
        '204':
          $ref: '#/components/responses/PaymentTermDeletedResponse'
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
        4XX:
          $ref: '#/components/responses/ErrorResponse'
components:
  schemas:
    PaymentTerm:
      type: object
      required:
      - name
      - daysToPay
      properties:
        id:
          type: string
          description: The payment term's id.
        name:
          type: string
          maxLength: 255
          description: The name of the payment term
        daysToPay:
          type: integer
          minimum: 0
          description: The number of days the invoice should be paid in.
        daysToPayCondition:
          oneOf:
          - $ref: '#/components/schemas/PaymentTermCondition'
          - type: 'null'
          description: These options are used in conjunction with `daysToPay` to calculate the due date.
          default: issue_date
        description:
          oneOf:
          - type: string
            maxLength: 255
            description: A description of the payment term.
          - type: 'null'
        discountDays:
          oneOf:
          - type: integer
            minimum: 0
            description: 'The number of days the invoice should be paid in to get a

              discount.

              '
          - type: 'null'
        discountDaysCondition:
          oneOf:
          - $ref: '#/components/schemas/PaymentTermCondition'
          - type: 'null'
          description: 'These options are used in conjunction with `discountDays` to calculate the discount date.

            '
          default: issue_date
        discountPercentage:
          oneOf:
          - type: string
            format: decimal
            minimum: 0
            description: 'The discount percentage if paid within the number of discount

              days.

              '
          - type: 'null'
        externalId:
          description: The ID of the payment term in the ERP if it has one.
          oneOf:
          - $ref: '#/components/schemas/ExternalId'
          - type: 'null'
    CreatePaymentTerm:
      type: object
      required:
      - name
      - daysToPay
      properties:
        name:
          oneOf:
          - type: string
            maxLength: 255
            description: The name of the payment term
          - type: 'null'
        daysToPay:
          type: integer
          minimum: 0
          description: The number of days the invoice should be paid in.
        daysToPayCondition:
          oneOf:
          - $ref: '#/components/schemas/PaymentTermCondition'
          - type: 'null'
          description: These options are used in conjunction with `daysToPay` to calculate the due date.
          default: issue_date
        description:
          oneOf:
          - type: string
            maxLength: 255
            description: A description of the payment term.
          - type: 'null'
        discountDays:
          oneOf:
          - type: integer
            minimum: 0
            description: 'The number of days the invoice should be paid in to get a

              discount.

              '
          - type: 'null'
        discountDaysCondition:
          oneOf:
          - $ref: '#/components/schemas/PaymentTermCondition'
          - type: 'null'
          description: 'These options are used in conjunction with `discountDays` to calculate the discount date.

            '
          default: issue_date
        discountPercentage:
          oneOf:
          - type: string
            format: decimal
            description: 'The discount percentage if paid within the number of discount

              days.

              '
            minimum: 0
          - type: 'null'
        externalId:
          description: The ID of the payment term in the ERP if it has one.
          oneOf:
          - $ref: '#/components/schemas/ExternalId'
          - type: 'null'
    UpdatePaymentTerm:
      type: object
      required:
      - name
      - daysToPay
      properties:
        name:
          oneOf:
          - type: string
            maxLength: 255
            description: The name of the payment term
          - type: 'null'
        daysToPay:
          type: integer
          minimum: 0
          description: The number of days the invoice should be paid in.
        daysToPayCondition:
          oneOf:
          - $ref: '#/components/schemas/PaymentTermCondition'
          - type: 'null'
          description: These options are used in conjunction with `daysToPay` to calculate the due date.
          default: issue_date
        description:
          oneOf:
          - type: string
            maxLength: 255
            description: A description of the payment term.
          - type: 'null'
        discountDays:
          oneOf:
          - type: integer
            minimum: 0
            description: 'The number of days the invoice should be paid in to get a

              discount.

              '
          - type: 'null'
        discountDaysCondition:
          oneOf:
          - $ref: '#/components/schemas/PaymentTermCondition'
          - type: 'null'
          description: 'These options are used in conjunction with `discountDays` to calculate the discount date.

            '
          default: issue_date
        discountPercentage:
          oneOf:
          - type: string
            format: decimal
            minimum: 0
            description: 'The discount percentage if paid within the number of discount

              days.

              '
          - type: 'null'
        externalId:
          description: The ID of the payment term in the ERP if it has one.
          oneOf:
          - $ref: '#/components/schemas/ExternalId'
          - type: 'null'
    PaymentTermCondition:
      type: string
      enum:
      - issue_date
      - date_on_next_0_month
      - date_on_next_1_month
      - date_on_next_2_months
      - date_on_next_3_months
      - date_on_next_4_months
      - date_on_next_5_months
      - date_on_next_6_months
      - after_end_of_month_of_issue_date
      - from_issue_date_extending_to_end_of_month
      description: '* `issue_date` - The due or discount date is calculated by adding the `daysToPay` or `discountDays` to the invoice issue date.

        * `date_on_next_0_month` - The due or discount date is set to `daysToPay` or `discountDays` on the same the month as the invoice issue date.

        * `date_on_next_1_month` - The due or discount date is set to `daysToPay` or `discountDays` on the following month from invoice issue date.

        * `date_on_next_2_months` - The due or discount date is set to `daysToPay` or `discountDays` on two months after the invoice issue date.

        * `date_on_next_3_months` - The due or discount date is set to `daysToPay` or `discountDays` on three months after the invoice issue date.

        * `date_on_next_4_months` - The due or discount date is set to `daysToPay` or `discountDays` on four months after the invoice issue date.

        * `date_on_next_5_months` - The due or discount date is set to `daysToPay` or `discountDays` on five months after the invoice issue date.

        * `date_on_next_6_months` - The due or discount date is set to `daysToPay` or `discountDays` on six months after the invoice issue date.

        * `after_end_of_month_of_issue_date` - The due or discount date is calculated by adding `daysToPay` or `discountDays` from the end of the month in which the invoice was issued.

        * `from_issue_date_extending_to_end_of_month` - The due or discount date is set to the end of the month after adding `daysToPay` or `discountDays` to the invoice issue date.

        '
    ExternalId:
      description: 'The external id set by the ERP system. It does not have to be a UUID and

        can be any non empty string desired.

        '
      type: string
      example: 21b31bc7-1267-4335-893c-d7fe4706a238
      maxLength: 255
    ErrorString:
      type: string
      maxLength: 255
    Error:
      description: 'generic error message in JSON format.  Note the ''code'' field should

        match the HTTP status code of the wrapping HTTP request.

        '
      type: object
      required:
      - code
      - message
      properties:
        code:
          type: integer
          minimum: 100
          maximum: 599
        message:
          $ref: '#/components/schemas/ErrorString'
  responses:
    PaymentTermDeletedResponse:
      description: Payment term was successfully deleted.
    SynchronizePaymentTermsResponse:
      description: 'A request to synchronize the payment terms was acknowledged and is in

        the process of being ran.

        '
    ResourceNotFoundResponse:
      description: Resource was not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    TooManyRequestsResponse:
      description: HTTP call rate limit exceeded.
      headers:
        Retry-After:
          description: Number of seconds to wait before retrying the request. Waiting this long guarantees the rate-limit window has reset.
          schema:
            type: integer
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    ForbiddenResponse:
      description: The request was forbidden.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    PaymentTermResponse:
      description: A single payment term.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PaymentTerm'
    ErrorResponse:
      description: An unexpected error has occurred. Check the body for more details.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    PaymentTermListResponse:
      description: A list of payment terms.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PaymentTerm'
    UnprocessableEntityResponse:
      description: Errors with the input are present.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  requestBodies:
    CreatePaymentTermRequest:
      description: Create a payment term.
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CreatePaymentTerm'
    UpdatePaymentTermRequest:
      description: Update a payment term.
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UpdatePaymentTerm'
  parameters:
    PathId:
      name: id
      in: path
      required: true
      description: The id of the database entry
      schema:
        type: string
    UseSystemDefaultInternal:
      name: useSystem
      in: query
      description: 'Which system to use for id or updatedAt filters.

        '
      required: false
      schema:
        type: string
        enum:
        - INTERNAL
        - EXTERNAL
        - internal
        - external
        default: INTERNAL
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
x-tagGroups:
- name: Integration
  tags:
  - Authentication
  - Pagination
  - Webhooks
  - Webhook Subscriptions
  - Webhook Events
  - Synchronizing
  - Status
- name: Master Data
  tags:
  - Accounts
  - Dimensions
  - Vendors
  - Vendor Groups
  - Vendor Tags
  - Tags
  - Tax Codes
  - VAT Codes
  - Payment Terms
- name: Organization & Access
  tags:
  - Partners
  - Organizations
  - Companies
  - Users
- name: Invoices & Bills
  tags:
  - Invoices
  - Bills
  - Attachments
  - Invoice Approval Flows
  - Invoice Posting Guide
  - Training Invoices
- name: Purchase Orders
  tags:
  - Purchase Orders
  - Purchase Order Line Items
  - Purchase Order Matching Guide
- name: Payments
  tags:
  - Payment Batches
  - Payment Confirmations
  - Credit Confirmations
- name: Reporting
  tags:
  - CSV Reports
- name: Reference
  tags:
  - Changelog