Versapay Collaboration API

As a supplier your customers collaborate with you through comments about invoices and/or payments.

Operations 3

POST /api/invoices/{invoice_number}/disputes/close Close a Dispute
GET /api/exports/disputes Export Open and Closed Disputes
GET /api/exports/comments Export Customer and Invoice Comments

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-collaboration-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-collaboration-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 1.3.35
  title: Versapay API Reference Collaboration 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 your customers collaborate with you through comments about invoices and/or payments.

    '
servers:
- url: https://secure.versapay.com
  description: Production
- url: https://uat.versapay.com
  description: UAT
tags:
- name: Collaboration
  description: 'As a supplier your customers collaborate with you through comments about invoices and/or payments.

    '
paths:
  /api/invoices/{invoice_number}/disputes/close:
    post:
      summary: Close a Dispute
      description: 'Close the active dispute on the specified invoice.<br><br>

        If the invoice has no active dispute, the request is treated as a no-op and returns a success response with `"0 disputes closed"`.<br><br>

        An optional `closer` attribute can be provided to record who closed the dispute, and an optional `comment` attribute will create a closing comment on the dispute.

        '
      tags:
      - Collaboration
      parameters:
      - name: invoice_number
        in: path
        required: true
        description: The number of the invoice whose dispute should be closed.
        schema:
          type: string
          example: INV1234-01
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                closer:
                  type: string
                  description: Name or email address of the person closing the dispute.
                  example: supplier@example.com
                comment:
                  type: string
                  description: Closing comment text. If provided, a closing comment will be created and attached to the dispute.
                  example: Invoice will be credited. Please pay the rest.
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                properties:
                  identifier:
                    type: string
                    example: INV1234-01
                  message:
                    type: string
                    example: 1 dispute closed
              examples:
                dispute_closed:
                  summary: Dispute successfully closed
                  value:
                    identifier: INV1234-01
                    message: 1 dispute closed
                no_active_dispute:
                  summary: No active dispute on the invoice
                  value:
                    identifier: INV1234-01
                    message: 0 disputes closed
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '412':
          $ref: '#/components/responses/PreconditionFailed'
  /api/exports/disputes:
    get:
      summary: Export Open and Closed Disputes
      description: Open and closed disputes since watermark, limited to 100 disputes at a time per category (open/closed).
      tags:
      - Collaboration
      parameters:
      - name: watermark
        in: query
        description: The date/datetime (yyyy-mm-dd, yyyy-mm-ddThh:mm:ss) value to base a subsequent extract of the next 100 open and the next 100 closed disputes.
        schema:
          type: string
          example: '2017-12-16T20:44:37'
      - name: list
        in: query
        description: See Watermark & Limit for more information on response structure. Note the watermark is a date/datetime, and the response watermark is the dispute.id and is not to be used as the input.
        schema:
          type: boolean
          example: true
      responses:
        '200':
          description: Successful Operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  disputes:
                    type: object
                    additionalProperties:
                      $ref: '#/components/schemas/Dispute'
              examples:
                disputes:
                  value:
                    disputes:
                      '518':
                        closed_at: '2018-01-01T13:06:56-05:00'
                        opened_at: '2017-12-16T20:44:37-05:00'
                        opener: customer@example.com
                        closer: supplier@example.com
                        opening_comment_text: Damaged goods. Please correct the amount.
                        closing_comment_text: Invoice will be credited. Please pay the rest.
                        invoice_number: INV001
                        invoice_balance:
                          usd: 12000
                        dispute_reason_identifier: null
                        dispute_reason_label_en: ''
                        dispute_reason_label_fr: ''
                        opening_comment_users_notified: []
                        closing_comment_user_notified: []
                        creator_business_name: Acme Inc.
                        closer_business_name: Supplier Corp.
                        invoice_amount_paid: '30.00'
                        invoice_identifier: supplier|INV001
                        invoice_external_id: null
        '401':
          $ref: '#/components/responses/UnauthorizedError'
  /api/exports/comments:
    get:
      summary: Export Customer and Invoice Comments
      description: Customer and invoice comments (including disputes) since watermark, limited to 100 comments at a time.
      tags:
      - Collaboration
      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
      responses:
        '200':
          description: Successful Operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  comments:
                    type: object
                    additionalProperties:
                      $ref: '#/components/schemas/Comment'
              examples:
                comments:
                  value:
                    comments:
                      '1568':
                        identifier: '1568'
                        customer_identifier: '13666'
                        customer_name: Acme Inc.
                        comment: This is a comment
                        regarding: Invoice INV-0001
                        target_users: ''
                        dispute: N
                        internal: Y
                        timestamp: '2017-09-20T15:09:05-04:00'
                        user: Bob Smith
                        email: bob.smith@example.com
                        organization: Acme Inc.
        '401':
          $ref: '#/components/responses/UnauthorizedError'
components:
  schemas:
    Dispute:
      type: object
      properties:
        closed_at:
          type: string
          format: date-time
          description: Date and time when dispute was closed.
        opened_at:
          type: string
          format: date-time
          description: Date and time when dispute was opened.
        opener:
          type: string
          description: Name or email address of the user who opened the dispute.
        closer:
          type: string
          description: Name or email address of the user who closed the dispute.
        opening_comment_text:
          type: string
          description: Comment text when the dispute was opened.
        closing_comment_text:
          type: string
          description: Comment text when the dispute was closed.
        invoice_number:
          type: string
          description: Invoice number against which dispute was opened.
        invoice_amount_paid:
          type: string
          description: The total amount of payments, in dollars and cents, made to date via Collaborative AR towards this invoice.
        invoice_balance:
          type: object
          description: Invoice balance, in cents.
          additionalProperties:
            type: integer
        dispute_reason_identifier:
          type: string
          description: Dispute reason code, if set up.
        dispute_reason_label_en:
          type: string
          description: Dispute reason label in English. Applicable when dispute reason codes are set up in the account.
        dispute_reason_label_fr:
          type: string
          description: Dispute reason label in French. Applicable when dispute reason codes are set up in the account.
        opening_comment_users_notified:
          type: array
          items:
            type: string
          description: Names or email addresses of users notified when opening dispute.
        closing_comment_user_notified:
          type: array
          items:
            type: string
          description: 'Name or email addresses of users notified when closing dispute.


            _Note: When the dispute is still open, `closing_comment_user_notified` is an empty string (`""`), not an array._

            '
        creator_business_name:
          type: string
          description: Business name of the organization that `opener` represents.
        closer_business_name:
          type: string
          description: Business name of the organization that `closer` represents.
        invoice_identifier:
          type: string
          description: Internal unique identifier for the invoice record.
        invoice_external_id:
          type: string
          description: External identifier for the invoice record.
    Comment:
      type: object
      properties:
        identifier:
          type: string
          description: Unique identifier for comment
        customer_identifier:
          type: string
          description: Customer number
        customer_name:
          type: string
          description: Customer name
        regarding:
          type: string
          description: Invoice number (if applicable) associated to the comment.
        target_users:
          type: string
          description: List of users that the comment specifically targets, separated by semi-colons.
        dispute:
          type: string
          description: '`Y` if the comment opened is a dispute. `N` otherwise.

            '
        internal:
          type: string
          description: '`Y` if the comment is internal. `N` otherwise.

            '
        timestamp:
          type: string
          format: date-time
          description: '''Date and time when the comment was created, based on ISO 8601 standard. Format: YYYY-MM-DDTHH:MM:SS+HH:MM''

            '
        user:
          type: string
          description: Name of the user who create the comment. First and last name, if available. Otherwise, email address.
        email:
          type: string
          description: Email of the user who created the comment.
        organization:
          type: string
          description: 'Name of the user''s organization – supplier''s name or the customer''s name. <br><br>Note that for comments made by customers, the customer_name and organization will have the same value. When the supplier made the comment, this field will hold the supplier business name.

            '
    Watermark:
      type: integer
      format: int64
      example: 0
  responses:
    PreconditionFailed:
      description: Precondition Failed
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: string
                description: Error message
                example: API token does not have permission for this request. Please contact your account administrator.
    UnauthorizedError:
      description: Unauthorized
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: string
                description: Error message
                example: You need to sign in or create an account before continuing.
x-tagGroups:
- name: Versapay API
  description: Introduction to the Versapay API.
  tags:
  - Overview
  - Versioning & Compatibility
  - Environments
  - Rate Limits
  - Authentication
  - Webhooks
  - Watermark & Limit
- name: Collaborative AR
  description: Operations available for Collaborative AR integration.
  tags:
  - Reference Data
  - Onboarding
  - Ecommerce Integration
  - Orders
  - Order Transactions
  - Testing Order Transactions
  - Gift Cards
  - Card Present EMV
  - Settlement Reporting
  - Wallets
  - Customers
  - Invoices
  - Autopay
  - Invoicing Payments
  - Divisions
  - Notifications
  - Collaboration
  - File Imports