Versapay Invoices API

As a supplier invoices are your receivables. ## Webhooks When using Webhooks, your application will be notified when key events are triggered for an invoice.

Operations 5

POST /api/imports/invoice Create and Update Invoice
POST /api/imports/invoice/{invoice_number}/attachment Add Invoice Attachment
GET /api/exports/invoice/{number_or_id} Export/View an Invoice
GET /api/exports/invoices/recent Export Invoices Recently Updated
GET /api/exports/open_invoices Export Open Invoices

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/versapay-invoices-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

versapay-invoices-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 1.3.35
  title: Versapay API Reference Invoices API
  contact:
    name: Versapay Support
    url: https://www.versapay.com/support
    email: support@versapay.com
  x-logo:
    url: https://developers.versapay.com/images/logo.png
  termsOfService: https://www.versapay.com/terms-of-use
  license:
    name: Copyright 2022 Versapay. All Rights Reserved.
  description: 'As a supplier invoices are your receivables.


    ## Webhooks


    When using Webhooks, your application will be notified when key events are triggered for an invoice.

    '
servers:
- url: https://secure.versapay.com
  description: Production
- url: https://uat.versapay.com
  description: UAT
tags:
- name: Invoices
  description: 'As a supplier invoices are your receivables.


    ## Webhooks


    When using Webhooks, your application will be notified when key events are triggered for an invoice.

    '
paths:
  /api/imports/invoice:
    post:
      summary: Create and Update Invoice
      description: "Create and update invoices. If the invoice already exists when a request is processed, it will be updated. If attachment is provided, will include the document in the invoice.<br><br>\nThe set of attributes to send in the request body may vary based on the account configuration. Please contact the implementation specialist for more information.<br><br>\n*Note:*\n  * *Customer will be created/updated using the customer_&ast; attributes if necessary at time of invoice import.*\n  * *Any additional non-standard attribute will be stored with invoice record and available for presentment rendering.*\n"
      tags:
      - Invoices
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Invoice'
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                properties:
                  identifier:
                    type: string
                    example: INV002
                  message:
                    type: string
                    example: 1 invoice 1 line items
                  pay_url:
                    type: string
                    example: https://secure.versapay.com/pay/a25f5d86-552a-4868-907e-e3a5932cff36
                  pay_urls:
                    $ref: '#/components/schemas/PaymentUrls'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '412':
          $ref: '#/components/responses/PreconditionFailed'
  /api/imports/invoice/{invoice_number}/attachment:
    post:
      summary: Add Invoice Attachment
      description: 'Add or update a PDF attachment to an existing invoice. The attachment will be included with the invoice and available for customer viewing.<br><br>

        The attachment content must be provided as a base64 encoded string. This endpoint is subject to rate limiting and file size restrictions.<br><br>

        ### Size Limit

        The file cannot exceed 25MB.

        '
      tags:
      - Invoices
      parameters:
      - name: invoice_number
        in: path
        required: true
        description: 'Invoice `number` or `display_number` of the existing invoice, must align with find_by locator.

          '
        schema:
          type: string
          example: INV-NUMBER-1234
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - find_by
              - file_name
              - content
              properties:
                find_by:
                  type: string
                  description: 'Specifies how to match the invoice identifier in the path parameter.

                    '
                  enum:
                  - number
                  - display_number
                  example: number
                invoice_display:
                  type: boolean
                  description: 'When `true`, the attachment will be displayed as the primary invoice document. When `false` or omitted, the attachment will be included as a supplementary document.

                    '
                  default: true
                  example: true
                file_name:
                  type: string
                  description: 'Name of the attachment file. Should include the file extension (e.g., .pdf).

                    '
                  example: INV-NUMBER-1234.pdf
                  maxLength: 255
                content:
                  type: string
                  description: 'Base64 encoded content of the PDF attachment. The decoded content cannot exceed 25MB.

                    '
                  example: JVBERi0xLjQKJdPr6eEKMSAwIG9iago8PAovVHlwZSAvQ2F0YWxvZwovUGFnZXMgMiAwIFIKPj4KZW5kb2JqCjIgMCBvYmoKPDwKL1R5cGUgL1BhZ2VzCi9LaWRzIFszIDAgUl0KL0NvdW50IDEKPD4KZW5kb2JqCjMgMCBvYmoKPDwKL1R5cGUgL1BhZ2UKL1BhcmVudCAyIDAgUgovTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQovUmVzb3VyY2VzIDw8Ci9Gb250IDw8Ci9GMSA0IDAgUgo+Pgo+PgovQ29udGVudHMgNSAwIFIKPj4KZW5kb2JqCjQgMCBvYmoKPDwKL1R5cGUgL0ZvbnQKL1N1YnR5cGUgL1R5cGUxCi9CYXNlRm9udCAvSGVsdmV0aWNhCj4+CmVuZG9iago1IDAgb2JqCjw8Ci9MZW5ndGggNDQKPj4Kc3RyZWFtCkJUCi9GMSA4IFRmCjEwIDcwIFRkCihIZWxsbyBXb3JsZCkgVGoKRVQKZW5kc3RyZWFtCmVuZG9iago=
            examples:
              add_primary_attachment:
                summary: Add attachment as primary invoice display using invoice number as the basis for lookup/matching
                value:
                  find_by: number
                  invoice_display: true
                  file_name: INV-NUMBER-1234.pdf
                  content: JVBERi0xLjQKJdPr6eEKMSAwIG9iago8PAovVHlwZSAvQ2F0YWxvZwovUGFnZXMgMiAwIFIKPj4KZW5kb2JqCjIgMCBvYmoKPDwKL1R5cGUgL1BhZ2VzCi9LaWRzIFszIDAgUl0KL0NvdW50IDEKPD4KZW5kb2JqCjMgMCBvYmoKPDwKL1R5cGUgL1BhZ2UKL1BhcmVudCAyIDAgUgovTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQovUmVzb3VyY2VzIDw8Ci9Gb250IDw8Ci9GMSA0IDAgUgo+Pgo+PgovQ29udGVudHMgNSAwIFIKPj4KZW5kb2JqCjQgMCBvYmoKPDwKL1R5cGUgL0ZvbnQKL1N1YnR5cGUgL1R5cGUxCi9CYXNlRm9udCAvSGVsdmV0aWNhCj4+CmVuZG9iago1IDAgb2JqCjw8Ci9MZW5ndGggNDQKPj4Kc3RyZWFtCkJUCi9GMSA4IFRmCjEwIDcwIFRkCihIZWxsbyBXb3JsZCkgVGoKRVQKZW5kc3RyZWFtCmVuZG9iago=
              add_supplementary_attachment:
                summary: Add attachment as supplementary document using invoice display number as the basis for lookup/matching
                value:
                  find_by: display_number
                  invoice_display: false
                  file_name: supporting_docs.pdf
                  content: JVBERi0xLjQKJdPr6eEKMSAwIG9iago8PAovVHlwZSAvQ2F0YWxvZwovUGFnZXMgMiAwIFIKPj4KZW5kb2JqCjIgMCBvYmoKPDwKL1R5cGUgL1BhZ2VzCi9LaWRzIFszIDAgUl0KL0NvdW50IDEKPD4KZW5kb2JqCjMgMCBvYmoKPDwKL1R5cGUgL1BhZ2UKL1BhcmVudCAyIDAgUgovTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQovUmVzb3VyY2VzIDw8Ci9Gb250IDw8Ci9GMSA0IDAgUgo+Pgo+PgovQ29udGVudHMgNSAwIFIKPj4KZW5kb2JqCjQgMCBvYmoKPDwKL1R5cGUgL0ZvbnQKL1N1YnR5cGUgL1R5cGUxCi9CYXNlRm9udCAvSGVsdmV0aWNhCj4+CmVuZG9iago1IDAgb2JqCjw8Ci9MZW5ndGggNDQKPj4Kc3RyZWFtCkJUCi9GMSA4IFRmCjEwIDcwIFRkCihIZWxsbyBXb3JsZCkgVGoKRVQKZW5kc3RyZWFtCmVuZG9iago=
      responses:
        '200':
          description: Attachment successfully added/updated
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: Confirmation message indicating successful attachment operation
                    example: 1 attachment for invoice INV-NUMBER-1234
                  identifier:
                    type: string
                    description: The file name of the added attachment
                    example: INV-NUMBER-1234.pdf
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '404':
          $ref: '#/components/responses/NotFoundError'
  /api/exports/invoice/{number_or_id}:
    get:
      summary: Export/View an Invoice
      description: 'View an invoice.<br><br>


        The path parameter `number_or_id` is matched to the invoice `number`, `display_number` or `id`, in that order.

        '
      tags:
      - Invoices
      parameters:
      - name: number_or_id
        in: path
        required: true
        description: '`number` or `display_number` or `id` of the invoice record.

          '
        schema:
          type: string
      - name: options
        in: query
        schema:
          type: array
          items:
            type: string
        required: false
        description: 'An array of additional options that determine if extra data should be fetched for the invoice

          '
      - name: options[payments]
        in: query
        schema:
          type: boolean
        required: false
        description: 'When this option is present: `?options[payments]=true` then an extra attribute is appended to the payload `payments`, this `payments` attribute will contain an array of all the PaymentAmounts associated with the exported invoice. When the supplier is enabled for `line_item_short_pay` then within the payments array there will be a nested structure of `line_item_transactional_amounts` containing the information corresponding to each line item that has been short paid.

          '
      responses:
        '200':
          description: Successful Operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvoiceResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '404':
          $ref: '#/components/responses/NotFoundError'
  /api/exports/invoices/recent:
    get:
      summary: Export Invoices Recently Updated
      description: 'Invoice records that have been updated in the past 7 days, since watermark, limited to 100 records at a time.<br><br>A consumer should store the last `id` value of each response and include it as the watermark parameter for subsequent calls.

        '
      tags:
      - Invoices
      parameters:
      - name: watermark
        in: query
        description: The value to base a subsequent extract of the next 100 items.
        schema:
          $ref: '#/components/schemas/Watermark'
      - name: list
        in: query
        description: See Watermark & Limit for more information on response structure.
        schema:
          type: boolean
          example: true
      - name: options[include_deleted_invoices]
        in: query
        schema:
          type: boolean
        required: false
        description: 'When this option is present: `?options[include_deleted_invoices]=true` then an extra attribute (deleted) is appended for each invoice, and invoices payload will contain both deleted and non-deleted invoices. If `?options[include_deleted_invoices]=false` or not set, only non-deleted invoices will be returned and invoice won''t contain deleted attribute.

          '
      responses:
        '200':
          description: Successful Operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  invoices:
                    type: object
                    additionalProperties:
                      $ref: '#/components/schemas/InvoiceResponse'
              examples:
                invoice:
                  value:
                    invoices:
                      '13207501':
                        number: sh763-h3454-dh3432
                        display_number: INV1234
                        customer_identifier: CUS001
                        amount_cents: 40000
                        owing_cents: 30000
                        subtotal_tax1: $0.00
                        subtotal_tax2: $0.00
                        currency: usd
                        date: '2017-11-01'
                        due_date: '2017-12-15'
                        order_date: null
                        purchase_order_number: PO-3847
                        notes_text: Thank you for your business
                        shipping_name: Acme Inc.
                        shipping_address:
                          address_1: 1 Main Street
                          address_2: Suite 600
                          city: New York
                          state: NY
                          zip: '90210'
                          country: US
                          country_name: United States
                          line_1: 1 Main Street, Suite 600
                          line_2: New York, NY 90210
                        line_item_attributes:
                        - number: '001'
                          description: Modems
                          amount_cents: 40000
                          balance_cents: 40000
                          quantity: 40
                          unit_cost_cents: 1000
                          id: 6935660
                          identifier: acme|sh763-h3454-dh3432|001
                          invoice_id: 4344538
                          order_key: null
                          purchase_order_number: null
                          recurring_invoice_id: null
                          extended_attributes:
                            item_number: A3947C9878
                        auto_debit: true
                        division: '770'
                        auto_pay_reference: null
                        ref1: null
                        ref2: null
                        ref3: null
                        adjustments_attributes:
                        - label: Surcharge
                          amount_cents: 2000
                          id: 2212
                          invoice_id: 4344538
                          recurring_invoice_id: null
                        plan_identifier: null
                        plan_start_date: null
                        plan_end_date: null
                        plan_payment_cents: null
                        annualized_amount_cents: null
                        annualized_effective_date: null
                        annualized_expiry_date: null
                        external_id: null
                        status: CURRENT
                        delivery_status: not_sent
                        extended_attributes:
                          lease_type: LS
                          currency_mode: D
                        summary_invoice_parent: 0
                        summary_invoice_number: null
                        service_rep_email: john.doe@supplier.com;jane.doe@supplier.com
        '401':
          $ref: '#/components/responses/UnauthorizedError'
  /api/exports/open_invoices:
    get:
      summary: Export Open Invoices
      description: 'Invoice records with an open balance, limited to 100 records at a time.<br><br>

        A supplier should store the last `watermark` value of each

        response and include it as the watermark parameter for subsequent calls.

        '
      tags:
      - Invoices
      parameters:
      - name: watermark
        in: query
        description: The value to base a subsequent extract of the next 100 items.
        schema:
          $ref: '#/components/schemas/Watermark'
      - name: list
        in: query
        description: See Watermark & Limit for more information on response structure.
        schema:
          type: boolean
          example: true
      - name: options[include_deleted_invoices]
        in: query
        schema:
          type: boolean
        required: false
        description: 'When this option is present: `?options[include_deleted_invoices]=true` then an extra attribute (deleted) is appended for each invoice, and invoices payload will contain both deleted and non-deleted invoices. If `?options[include_deleted_invoices]=false` or not set, only non-deleted invoices will be returned and invoice won''t contain deleted attribute.

          '
      responses:
        '200':
          description: Successful Operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  invoices:
                    type: object
                    additionalProperties:
                      $ref: '#/components/schemas/InvoiceResponse'
              example:
                invoices:
                  '13207501':
                    identifier: example|invoice1SZTYMS
                    number: invoice1SZTYMS
                    display_number: invoice1SZTYMS
                    amount_cents: 249530
                    currency: usd
                    subtotal_cents: 249530
                    subtotal1_tax_cents: null
                    subtotal2_tax_cents: null
                    customer_identifier: CUS001
                    date: '2022-08-29'
                    due_date: '2022-08-29'
                    purchase_order_number: PO-BZMGNZIZ
                    notes_text: null
                    shipping_name: null
                    shipping_address_1: null
                    shipping_address_2: null
                    shipping_city: null
                    shipping_state: null
                    shipping_zip: null
                    auto_debit: 1
                    division: ATL
                    auto_debit_reference: null
                    auto_pay_reference: null
                    owing_cents: 249530
                    ref1: null
                    ref2: null
                    ref3: null
                    ref4: null
                    external_id: null
                    delivery_status: not_sent
                    payment_date: null
                    receivables_url: https://versapay.com/receivables/invoices/13207501
                    discount_expiry_date: null
                    discount_rate: null
                    discount_amount_cents: 0
                  '13207502':
                    identifier: example|invoice2TRVEPE
                    number: invoice2TRVEPE
                    display_number: invoice2TRVEPE
                    amount_cents: -158088
                    currency: usd
                    subtotal_cents: -158088
                    subtotal1_tax_cents: null
                    subtotal2_tax_cents: null
                    customer_identifier: CUS002
                    date: '2022-11-05'
                    due_date: '2022-12-05'
                    purchase_order_number: PO-SWGHBBRN
                    notes_text: null
                    shipping_name: null
                    shipping_address_1: null
                    shipping_address_2: null
                    shipping_city: null
                    shipping_state: null
                    shipping_zip: null
                    auto_debit: 1
                    division: CTL
                    auto_debit_reference: null
                    auto_pay_reference: null
                    owing_cents: -158088
                    ref1: null
                    ref2: null
                    ref3: null
                    ref4: null
                    external_id: null
                    delivery_status: not_sent
                    payment_date: null
                    receivables_url: https://versapay.com/receivables/invoices/13207502
                    discount_expiry_date: null
                    discount_rate: null
                    discount_amount_cents: 0
        '401':
          $ref: '#/components/responses/UnauthorizedError'
components:
  schemas:
    InvoiceResponse:
      type: object
      properties:
        number:
          type: string
          description: Invoice number, unique within a supplier.
        display_number:
          type: string
          description: Invoice number as displayed to customers.
        currency:
          type: string
          description: Currency code, based on ISO-4217, in lowercase. E.g. `cad`, `usd`, `aud`
        amount_cents:
          type: integer
          description: The invoice amount in cents.
        subtotal_tax1:
          type: string
          description: Tax amount, in dollars.
        subtotal_tax2:
          type: string
          description: Additional field to carry tax amount, in dollars. For example, when invoice shows state (provincial) and federal taxes.
        customer_identifier:
          type: string
          description: Unique identifier for customer.
        date:
          type: string
          format: date
          description: Invoice date, YYYY-MM-DD, based on ISO-8601.
        order_date:
          type: string
          format: date
          description: Order date, YYYY-MM-DD.
        due_date:
          type: string
          format: date
          description: Invoice due date, YYYY-MM-DD.
        purchase_order_number:
          type: string
          description: Purchase order number.
        notes_text:
          type: string
          description: Optional text field up to 64K.
        shipping_name:
          type: string
          description: 'Shipping address: recipient name'
        shipping_address:
          type: object
          description: Shipping address
          properties:
            address_1:
              type: string
              description: Shipping address, line 1
            address_2:
              type: string
              description: Shipping address, line 2
            city:
              type: string
              description: 'Shipping address: city'
            state:
              type: string
              description: 'Shipping address: state or province. Based on the second part (after hyphen) of codes in ISO 3166-2 standard. E.g. "ON" for Ontario, "CA" for California'
            country:
              type: string
              description: Shipping country code. E.g. "US" for USA.
            country_name:
              type: string
              description: Shipping country name.
            zip:
              type: string
              description: 'Shipping address: zip or postal code'
            line_1:
              type: string
              description: 'Single line combining shipping `address_1` and `address_2`.

                '
            line_2:
              type: string
              description: 'Single line combining shipping `city`, `state` and `zip`.

                '
        line_item_attributes:
          type: array
          description: Details of each line-item for the invoice.
          items:
            $ref: '#/components/schemas/LineItemResponse'
        auto_debit:
          type: boolean
          description: '`true` (invoice is to be auto-paid if customer has pre-authorized payment) or `false` (invoice is to be paid manually by customer)

            '
        division:
          type: string
          description: Division code, applicable when supplier supports divisions.
        auto_pay_reference:
          type: string
          description: Reference number associated to the invoice, used in AutoPay agreements.
        owing_cents:
          type: integer
          description: Balance remaining on this invoice or credit memo.
        status:
          type: string
          description: 'The status of the invoice. Can be one of `DRAFT`, `CURRENT`, `OVERDUE`, `PARTIAL`, `PAID`, `CREDIT` or `CLOSED`.

            '
          enum:
          - DRAFT
          - CURRENT
          - OVERDUE
          - PARTIAL
          - PAID
          - CREDIT
          - CLOSED
        delivery_status:
          type: string
          description: 'The delivery status of the invoice. Statuses in the API map to those in the UI as follows:<br>


            The email delivery statuses in the API reflect the following statuses from UI:


            |API Status|Status in the UI|

            |:--|:--|

            |`new`|"Not Tracked"|

            |`not_sent`|"Available"|

            |`sent`|"Email Sent"|

            |`delivery_unknown`|"Delivery Unknown"|

            |`not_delivered`|"Not Delivered"|

            |`delivered`|"Email Delivered"|

            |`opened`|"Email Opened"|

            |`clicked`|"Viewed"|

            '
          enum:
          - new
          - not_sent
          - sent
          - delivery_unknown
          - not_delivered
          - opened
          - clicked
        ref1:
          type: string
          description: A reference that is meaningful to the customer, e.g. Policy number, contract number, etc.
        ref2:
          type: string
          description: As above.
        ref3:
          type: string
          description: As above.
        adjustments_attributes:
          type: array
          description: Adjustments such as Fuel Surcharge or Discount on the invoice.
          items:
            type: object
            properties:
              label:
                type: string
                description: Label for adjustment amount.
              amount_cents:
                type: integer
                description: Adjustment amount in cents.
              id:
                type: integer
                description: Internal id of the adjustment.
              invoice_id:
                type: integer
                description: Internal id of the invoice.
              recurring_invoice_id:
                type: integer
                description: Internal id of the recurring invoice. Applicable when supplier is configured to create recurring invoices.
        plan_identifier:
          type: string
          description: Payment plan template identifier. Applicable when supplier is configured for payment plans.
        plan_start_date:
          type: string
          format: date
          description: Payment plan start date. Applicable when supplier is configured for payment plans.
        plan_end_date:
          type: string
          format: date
          description: Payment plan end date. Applicable when supplier is configured for payment plans.
        plan_payment_cents:
          type: integer
          description: Payment plan recurring payment amount in cents. Applicable when supplier is configured for payment plan.
        annualized_amount_cents:
          type: integer
          description: The annual invoice amount in cents. Applicable if the supplier is configured for payment plans.
        annualized_effective_date:
          type: string
          format: date
          description: The date that the annualized_amount takes effect. Applicable if the supplier is configured for payment plans.
        annualized_expiry_date:
          type: string
          format: date
          description: The end date of the period for which the annualized_amount is in effect. Applicable if the supplier is configured for payment plans.
        external_id:
          type: string
          description: Optional external identifier for the invoice to be included in payment exports.
        extended_attributes:
          type: object
          description: Additional non-standard attribute stored with the invoice record for presentment rendering.
          properties:
            key:
              type: string
              description: Key-value pair of the extended attribute on the invoice.
        summary_invoice_parent:
          type: string
          description: Flag that indicates if the invoice is a summary invoice. Default is 0 (invoice is not a summary invoice).
        summary_invoice_number:
          type: string
          description: If the invoice in the row is a child of a summary invoice, that summary invoice's identifier appears here.
        service_rep_email:
          type: string
          description: One or more supplier user email addresses (semi-colon delimited) that will be used for notification routing eg when in dispute each specified rep is notified only.
        pay_url:
          type: string
          description: The URL to the anonymous click-to-pay page.  This value is provided only for open invoices in an owing position.
        pay_urls:
          type: object
          description: Context sensitive URLs to click-to-pay page, keyed by recipient email addresses. These values are only provided for open invoices in an owing position.
          properties:
            key:
              type: string
              description: Key-value pair of the context sensitive click-to-pay URLs.
        deleted:
          type: boolean
          description: Indicates if the invoice has been deleted, this is optional and only present based on request parameter.
      example:
        number: sh763-h3454-dh3432
        display_number: INV1234
        customer_identifier: CUS001
        amount_cents: 40000
        owing_cents: 30000
        subtotal_tax1: $0.00
        subtotal_tax2: $0.00
        currency: usd
        date: '2017-11-01'
        due_date: '2017-12-15'
        order_date: null
        purchase_order_number: PO-3847
        notes_text: Thank you for your business
        shipping_name: Acme Inc.
        shipping_address:
          address_1: 1 Main Street
          address_2: Suite 600
          city: New York
          state: NY
          zip: '90210'
          country: US
          country_name: United States
          line_1: 1 Main Street, Suite 600
          line_2: New York, NY 90210
        line_item_attributes:
        - number: '001'
          description: Modems
          amount_cents: 40000
          balance_cents: 40000
          quantity: 40
          unit_cost_cents: 1000
          id: 6935660
          identifier: acme|sh763-h3454-dh3432|001
          invoice_id: 4344538
          order_key: null
          purchase_order_number: null
          recurring_invoice_id: null
          extended_attributes:
            item_number: A3947C9878
        auto_debit: true
        division: '770'
        auto_pay_reference: null
        ref1: null
        ref2: null
        ref3: null
        adjustments_attributes:
        - label: Surcharge
          amount_cents: 2000
          id: 2212
          invoice_id: 4344538
          recurring_invoice_id: null
        plan_identifier: null
        plan_start_date: null
        plan_end_date: null
        plan_payment_cents: null
        annualized_amount_cents: null
        annualized_effective_date: null
        annualized_expiry_date: null
        external_id: null
        status: CURRENT
        delivery_status: not_sent
        extended_attributes:
          lease_type: LS
          currency_mode: D
        summary_invoice_parent: 0
        summary_invoice_number: null
        service_rep_email: john.doe@supplier.com;jane.doe@supplier.com
        pay_url: https://secure.versapay.com/pay/a25f5d86-552a-4868-907e-e3a5932cff36
        pay_urls:
          CUS001@example.com: https://secure.versapay.com/pay/198e7073-53d0-435a-baff-87ce390581c5G
        payments:
        - payment_reference: 959YTHNMESPV
          invoice_number: 1
          date: '2022-10-26'
          amount: 870
          plan_fee: 0
          payment_amount: 870
          payment_transaction_amount: 870
          payment_transaction_token: 9559NENM23SK
          payment_method: (0013)
          payment_from_bank_account: true
          payment_from_credit_card: false
          payment_institution_name: null
          payment_credit_card_brand: null
          short_pay_indicator: Y
          payment_note: null
          auto_debit_indicator: N
          invoice_balance: 5030
          payment_timestamp: '2022-10-26T12:40:36-04:00'
          invoice_division: CTL
          invoice_division_number: null
          invoice_division_name: Central
          pay_to_bank_account: 100007
          pay_to_bank_account_name: (0007)
          settlement_token: BA7G777DNABC
          customer_identifier: C10
          customer_name: Customer 10 Williamson
          status: PAID
          payment_source: ARC
          payment_code: null
          payment_description: null
          gateway_authorization_code: TM37E6
          purchase_order_number: null
          ref1: null
          ref2: null
          ref3: null
          short_pay_reason_identifier: null
          short_pay_reason: null
          dispute_reason_identifier: null
          dispute_reason: null
          invoice_amount_paid: 870
          invoice_amount: 5900
          invoice_identifier: global|1
          invoice_date: '2022-10-26'
          invoice_external_id: null
          invoice_currency: usd
          invoice_purchase_order_number: new_line_item_short_pay_invoice_1
          invoice_ref1: null
          invoice_ref2: null
          invoice_ref3: null
          cumulative_customer_amount: 870
          checkout_token: 6JQSRWISTPA4
          status_reason: null
          pay

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