ChargeAfter Lenders API

The Lenders API from ChargeAfter — 7 operation(s) for lenders.

Operations 7

PUT /api/disputes/lenders Create a dispute
POST /api/disputes/lenders/{id}/resolve Resolve a dispute
POST /api/disputes/lenders/{id}/reopen Reopen a resolved dispute
PUT /api/disputes/lenders/{id}/reverse Reverse the chargeback transaction
POST /api/disputes/lenders/{id}/update Add notes and/or upload supporting documents for a dispute
PUT /api/disputes/lenders/{id}/assign Assign the dispute to Merchant or Lender
GET /api/disputes/lenders/{id} Get dispute details

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/chargeafter-lenders-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 email required.

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

OpenAPI Specification

chargeafter-lenders-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Disputes Management Lenders API
  description: Welcome to ChargeAfter API reference!<br/>This API is implemented in a RESTful state of mind, it has straight-forward, resource-oriented endpoints, and produces standard HTTP response codes to communicate back the result of operations.<br/>To get started please contact ChargeAfter support to get your API keys, and get an access to your testing and live environments.
  termsOfService: https://chargeafter.com/privacy-policy
  contact:
    name: Customer Support
    email: support@chargeafter.com
  version: lenders
servers:
- url: https://api-sandbox.ca-dev.co
  description: Local Environment
- url: https://api.chargeafter.com
  description: Production Environment
security:
- apiKey: []
tags:
- name: Lenders
paths:
  /api/disputes/lenders:
    put:
      tags:
      - Lenders
      summary: Create a dispute
      description: 'Returns: New/Existing ChargeAfter Dispute `id`<br />

        After successful dispute creation, the dispute is automatically assigned to the Merchant.<br />

        This call is idempotent. If there is an existing dispute with the same `lenderDisputeId` sent in a request, its ChargeAfter dispute `id` will be returned.<br />

        This call is a <a href="https://swagger.io/docs/specification/describing-request-body/multipart-requests/">multipart</a> request, which combines the new dispute payload with its supporting documents in a single request to let the SLA start immediately.<br />

        With curl, a file can be passed using the `-F` option.<br />

        Supported files extensions: .jpg, .jpeg, .png, .svg, .pdf, .doc, .docx, .txt, .csv, .xls, .xlsx<br />

        Max files per upload operation: 10<br />

        Max document size: 10mb'
      parameters: []
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                dispute:
                  required:
                  - details
                  - lenderCorrelationId
                  - lenderDisputeId
                  - reason
                  - sla
                  type: object
                  properties:
                    lenderNotes:
                      type:
                      - array
                      - 'null'
                      items:
                        $ref: '#/components/schemas/ChargeAfter.Disputes.WebApi.Contracts.NoteContent'
                      description: To add notes on the dispute, enter free `text`. You can also use the `sku` parameter if you want to associate your notes with a particular item.
                    lenderDisputeId:
                      maxLength: 128
                      minLength: 1
                      type: string
                      description: 'An ID used in the Lender system to identify the dispute. Must be unique within a single Lender.<br />

                        (used for idempotency check)'
                    lenderCorrelationId:
                      maxLength: 128
                      minLength: 1
                      type: string
                      description: An ID used in the Lender system (same ID that is used to identify a disputed order or a charge).
                    reason:
                      $ref: '#/components/schemas/ChargeAfter.Disputes.WebApi.Contracts.DisputeReason'
                    subReason:
                      $ref: '#/components/schemas/ChargeAfter.Disputes.WebApi.Contracts.DisputeSubReason'
                    lenderCreatedAt:
                      type:
                      - string
                      - 'null'
                      description: Dispute creation timestamp in the Lender system in ISO 8601
                      format: date-time
                    lenderCaseId:
                      type:
                      - string
                      - 'null'
                      description: Lender case identifier that can be used for both parties communication
                    sla:
                      $ref: '#/components/schemas/ChargeAfter.Disputes.WebApi.Contracts.SLA'
                    details:
                      $ref: '#/components/schemas/ChargeAfter.Disputes.WebApi.Contracts.DisputeDetails'
                    lenderMetadata:
                      type:
                      - object
                      - 'null'
                      additionalProperties:
                        type: string
                      description: Lender metadata can be used extend the dispute with additional information
                  additionalProperties: false
                  description: "`NewDispute` -\n See  model."
                documents:
                  type: array
                  items:
                    type: string
                    format: binary
            encoding:
              documents:
                style: form
              dispute:
                contentType: application/json
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: string
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: string
        '400':
          description: Bad Request:<br/><ul><li><i>1005</i> - Field value is invalid</li></ul>
          content:
            application/json:
              schema:
                properties:
                  requestId:
                    type: string
                    description: Associated request id
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          description: Error code
                        description:
                          type: string
                          description: Error description
                example:
                  requestId: Unique RequestId
                  errors:
                  - code: '1005'
                    description: Field value is invalid
        '401':
          description: Unauthorized
        '404':
          description: Not Found:<br/><ul><li><i>1002</i> - Resource not found</li></ul>
          content:
            application/json:
              schema:
                properties:
                  requestId:
                    type: string
                    description: Associated request id
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          description: Error code
                        description:
                          type: string
                          description: Error description
                example:
                  requestId: Unique RequestId
                  errors:
                  - code: '1002'
                    description: Resource not found
        '500':
          description: General Server Error
          content:
            application/json:
              schema:
                example:
                  requestId: Unique RequestId
                  errors:
                  - code: '1'
                    description: Internal unknown error occurred
  /api/disputes/lenders/{id}/resolve:
    post:
      tags:
      - Lenders
      summary: Resolve a dispute
      description: 'Returns the corresponding `ChargeAfterTransactionId` when the chargeback is provided, otherwise it is null.<br />

        When a dispute is resolved, it becomes read-only.<br />

        The `resolve` call can only be performed to change the `status` of a dispute to:<br />

        * `ResolvedMerchantFavor`<br />

        * `ResolvedCancelled`<br />

        * `ResolvedCustomerFavorFull`<br />

        * `ResolvedCustomerFavorPartial`<br /><br />

        The `status` of `PendingMerchant` or `PendingLender` is invalid.'
      parameters:
      - name: status
        in: query
        required: true
        schema:
          $ref: '#/components/schemas/ChargeAfter.Disputes.WebApi.Contracts.DisputeStatus'
      - name: id
        in: path
        description: 'Can be either the `LenderDisputeId` or the ChargeAfter dispute `id`.

          If you use the `LenderDisputeId`, you must also send the `useLenderDisputeId` parameter with the value of `true`.'
        required: true
        schema:
          minLength: 1
          type: string
          description: 'Can be either the `LenderDisputeId` or the ChargeAfter dispute `id`.

            If you use the `LenderDisputeId`, you must also send the `useLenderDisputeId` parameter with the value of `true`.'
      - name: useLenderDisputeId
        in: query
        schema:
          type: boolean
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChargeAfter.Disputes.WebApi.Contracts.ChargebackBase'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: string
        '400':
          description: Bad Request:<br/><ul><li><i>1005</i> - Field value is invalid</li></ul>
          content:
            application/json:
              schema:
                properties:
                  requestId:
                    type: string
                    description: Associated request id
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          description: Error code
                        description:
                          type: string
                          description: Error description
                example:
                  requestId: Unique RequestId
                  errors:
                  - code: '1005'
                    description: Field value is invalid
        '401':
          description: Unauthorized
        '404':
          description: Not Found:<br/><ul><li><i>1002</i> - Resource not found</li></ul>
          content:
            application/json:
              schema:
                properties:
                  requestId:
                    type: string
                    description: Associated request id
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          description: Error code
                        description:
                          type: string
                          description: Error description
                example:
                  requestId: Unique RequestId
                  errors:
                  - code: '1002'
                    description: Resource not found
        '500':
          description: General Server Error
          content:
            application/json:
              schema:
                example:
                  requestId: Unique RequestId
                  errors:
                  - code: '1'
                    description: Internal unknown error occurred
  /api/disputes/lenders/{id}/reopen:
    post:
      tags:
      - Lenders
      summary: Reopen a resolved dispute
      description: 'If the reopen status is `PendingLender`, a lender should `update` the dispute by providing additional documents and/or notes and then `assign` the dispute to the Merchant.<br />

        This call can only be performed successfully on a dispute that initially has the status of `ResolvedMerchantFavor`, `ResolvedCancelled`, `ResolvedCustomerFavorFull`, `ResolvedCustomerFavorPartial`.'
      parameters:
      - name: id
        in: path
        description: 'Can be either the `LenderDisputeId` or the ChargeAfter dispute `id`.

          If you use the `LenderDisputeId`, you must also send the `useLenderDisputeId` parameter with the value of `true`.'
        required: true
        schema:
          minLength: 1
          type: string
          description: 'Can be either the `LenderDisputeId` or the ChargeAfter dispute `id`.

            If you use the `LenderDisputeId`, you must also send the `useLenderDisputeId` parameter with the value of `true`.'
      - name: useLenderDisputeId
        in: query
        schema:
          type: boolean
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChargeAfter.Disputes.WebApi.Contracts.ReopenDispute'
        required: true
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request:<br/><ul><li><i>1005</i> - Field value is invalid</li></ul>
          content:
            application/json:
              schema:
                properties:
                  requestId:
                    type: string
                    description: Associated request id
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          description: Error code
                        description:
                          type: string
                          description: Error description
                example:
                  requestId: Unique RequestId
                  errors:
                  - code: '1005'
                    description: Field value is invalid
        '401':
          description: Unauthorized
        '404':
          description: Not Found:<br/><ul><li><i>1002</i> - Resource not found</li></ul>
          content:
            application/json:
              schema:
                properties:
                  requestId:
                    type: string
                    description: Associated request id
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          description: Error code
                        description:
                          type: string
                          description: Error description
                example:
                  requestId: Unique RequestId
                  errors:
                  - code: '1002'
                    description: Resource not found
        '500':
          description: General Server Error
          content:
            application/json:
              schema:
                example:
                  requestId: Unique RequestId
                  errors:
                  - code: '1'
                    description: Internal unknown error occurred
  /api/disputes/lenders/{id}/reverse:
    put:
      tags:
      - Lenders
      summary: Reverse the chargeback transaction
      description: "If a dispute was resolved with a chargeback to the customer, this call cancels the chargeback.<br />\nReturns the corresponding `ChargeAfterTransactionId`.<br />  \nAfter successfully sending this request, the Lender also needs to either `reopen` or re-`resolve` the dispute with the returned `ChargebackReversal` in a separate call."
      parameters:
      - name: id
        in: path
        description: 'Can be either the `LenderDisputeId` or the ChargeAfter dispute `id`.

          If you use the `LenderDisputeId`, you must also send the `useLenderDisputeId` parameter with the value of `true`.'
        required: true
        schema:
          minLength: 1
          type: string
          description: 'Can be either the `LenderDisputeId` or the ChargeAfter dispute `id`.

            If you use the `LenderDisputeId`, you must also send the `useLenderDisputeId` parameter with the value of `true`.'
      - name: useLenderDisputeId
        in: query
        schema:
          type: boolean
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChargeAfter.Disputes.WebApi.Contracts.Reversal'
        required: true
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: string
        '400':
          description: Bad Request:<br/><ul><li><i>1005</i> - Field value is invalid</li></ul>
          content:
            application/json:
              schema:
                properties:
                  requestId:
                    type: string
                    description: Associated request id
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          description: Error code
                        description:
                          type: string
                          description: Error description
                example:
                  requestId: Unique RequestId
                  errors:
                  - code: '1005'
                    description: Field value is invalid
        '401':
          description: Unauthorized
        '404':
          description: Not Found:<br/><ul><li><i>1002</i> - Resource not found</li></ul>
          content:
            application/json:
              schema:
                properties:
                  requestId:
                    type: string
                    description: Associated request id
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          description: Error code
                        description:
                          type: string
                          description: Error description
                example:
                  requestId: Unique RequestId
                  errors:
                  - code: '1002'
                    description: Resource not found
        '500':
          description: General Server Error
          content:
            application/json:
              schema:
                example:
                  requestId: Unique RequestId
                  errors:
                  - code: '1'
                    description: Internal unknown error occurred
  /api/disputes/lenders/{id}/update:
    post:
      tags:
      - Lenders
      summary: Add notes and/or upload supporting documents for a dispute
      description: 'This call is a <a href="https://swagger.io/docs/specification/describing-request-body/multipart-requests/">multipart</a> request, which combines the new dispute payload with its supporting documents in a single request to let the SLA start immediately.<br />

        With curl, a file can be passed using the `-F` option.<br />

        Supported files extensions: .jpg, .jpeg, .png, .svg, .pdf, .doc, .docx, .txt, .csv, .xls, .xlsx<br />

        Max files per upload operation: 10<br />

        Max document size: 10mb'
      parameters:
      - name: assign
        in: query
        schema:
          $ref: '#/components/schemas/ChargeAfter.Disputes.WebApi.Contracts.Party'
      - name: id
        in: path
        description: 'Can be either the `LenderDisputeId` or the ChargeAfter dispute `id`.

          If you use the `LenderDisputeId`, you must also send the `useLenderDisputeId` parameter with the value of `true`.'
        required: true
        schema:
          minLength: 1
          type: string
          description: 'Can be either the `LenderDisputeId` or the ChargeAfter dispute `id`.

            If you use the `LenderDisputeId`, you must also send the `useLenderDisputeId` parameter with the value of `true`.'
      - name: useLenderDisputeId
        in: query
        schema:
          type: boolean
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                update:
                  required:
                  - notes
                  type: object
                  properties:
                    notes:
                      minItems: 1
                      type: array
                      items:
                        $ref: '#/components/schemas/ChargeAfter.Disputes.WebApi.Contracts.NoteContent'
                  additionalProperties: false
                  description: "`DisputeUpdate` -\n See  model."
                documents:
                  type: array
                  items:
                    type: string
                    format: binary
            encoding:
              documents:
                style: form
              update:
                contentType: application/json
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request:<br/><ul><li><i>1005</i> - Field value is invalid</li></ul>
          content:
            application/json:
              schema:
                properties:
                  requestId:
                    type: string
                    description: Associated request id
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          description: Error code
                        description:
                          type: string
                          description: Error description
                example:
                  requestId: Unique RequestId
                  errors:
                  - code: '1005'
                    description: Field value is invalid
        '401':
          description: Unauthorized
        '404':
          description: Not Found:<br/><ul><li><i>1002</i> - Resource not found</li></ul>
          content:
            application/json:
              schema:
                properties:
                  requestId:
                    type: string
                    description: Associated request id
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          description: Error code
                        description:
                          type: string
                          description: Error description
                example:
                  requestId: Unique RequestId
                  errors:
                  - code: '1002'
                    description: Resource not found
        '500':
          description: General Server Error
          content:
            application/json:
              schema:
                example:
                  requestId: Unique RequestId
                  errors:
                  - code: '1'
                    description: Internal unknown error occurred
  /api/disputes/lenders/{id}/assign:
    put:
      tags:
      - Lenders
      summary: Assign the dispute to Merchant or Lender
      description: After successfully sending this call, the dispute's status becomes `PendingMerchant` or `PendingLender` accordingly.
      parameters:
      - name: party
        in: query
        required: true
        schema:
          $ref: '#/components/schemas/ChargeAfter.Disputes.WebApi.Contracts.Party'
      - name: id
        in: path
        description: 'Can be either the `LenderDisputeId` or the ChargeAfter dispute `id`.

          If you use the `LenderDisputeId`, you must also send the `useLenderDisputeId` parameter with the value of `true`.'
        required: true
        schema:
          minLength: 1
          type: string
          description: 'Can be either the `LenderDisputeId` or the ChargeAfter dispute `id`.

            If you use the `LenderDisputeId`, you must also send the `useLenderDisputeId` parameter with the value of `true`.'
      - name: useLenderDisputeId
        in: query
        schema:
          type: boolean
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request:<br/><ul><li><i>1005</i> - Field value is invalid</li></ul>
          content:
            application/json:
              schema:
                properties:
                  requestId:
                    type: string
                    description: Associated request id
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          description: Error code
                        description:
                          type: string
                          description: Error description
                example:
                  requestId: Unique RequestId
                  errors:
                  - code: '1005'
                    description: Field value is invalid
        '401':
          description: Unauthorized
        '404':
          description: Not Found:<br/><ul><li><i>1002</i> - Resource not found</li></ul>
          content:
            application/json:
              schema:
                properties:
                  requestId:
                    type: string
                    description: Associated request id
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          description: Error code
                        description:
                          type: string
                          description: Error description
                example:
                  requestId: Unique RequestId
                  errors:
                  - code: '1002'
                    description: Resource not found
        '500':
          description: General Server Error
          content:
            application/json:
              schema:
                example:
                  requestId: Unique RequestId
                  errors:
                  - code: '1'
                    description: Internal unknown error occurred
  /api/disputes/lenders/{id}:
    get:
      tags:
      - Lenders
      summary: Get dispute details
      description: Get dispute details for a given ChargeAfter dispute `id` or `LenderDisputeId`.
      parameters:
      - name: id
        in: path
        description: 'Can be either the `LenderDisputeId` or the ChargeAfter dispute `id`.

          If you use the `LenderDisputeId`, you must also send the `useLenderDisputeId` parameter with the value of `true`.'
        required: true
        schema:
          minLength: 1
          type: string
          description: 'Can be either the `LenderDisputeId` or the ChargeAfter dispute `id`.

            If you use the `LenderDisputeId`, you must also send the `useLenderDisputeId` parameter with the value of `true`.'
      - name: useLenderDisputeId
        in: query
        schema:
          type: boolean
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChargeAfter.Disputes.WebApi.Contracts.Dispute'
        '400':
          description: Bad Request Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  requestId:
                    type: string
                    example: Unique RequestId
                  message:
                    type: string
                    example: Message Describing The Error
        '401':
          description: Unauthorized
        '404':
          description: Not Found:<br/><ul><li><i>1002</i> - Resource not found</li></ul>
          content:
            application/json:
              schema:
                properties:
                  requestId:
                    type: string
                    description: Associated request id
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          description: Error code
                        description:
                          type: string
                          description: Error description
                example:
                  requestId: Unique RequestId
                  errors:
                  - code: '1002'
                    description: Resource not found
        '500':
          description: General Server Error
          content:
            application/json:
              schema:
                example:
                  requestId: Unique RequestId
                  errors:
                  - code: '1'
                    description: Internal unknown error occurred
components:
  schemas:
    ChargeAfter.Disputes.WebApi.Contracts.DisputeSubReason:
      enum:
      - Duplicate
      - AlternativePayment
      type: string
      description: '* `Duplicate` - duplicate charge or loan

        * `AlternativePayment` - the payment was provided in external system'
    ChargeAfter.Disputes.WebApi.Contracts.Document:
      required:
      - header
      - name
      - url
      type: object
      properties:
        name:
          maxLength: 128
          minLength: 1
          type: string
          description: Unique within a dispute
        mimeType:
          maxLength: 32
          type:
          - string
          - 'null'
        url:
          maxLength: 512
          minLength: 1
          type: string
        header:
          $ref: '#/components/schemas/ChargeAfter.Disputes.WebApi.Contracts.DataHeader'
      additionalProperties: false
    ChargeAfter.Disputes.WebApi.Contracts.DisputedItem:
      required:
      - amount
      - name
      type: object
      properties:
        sku:
          type:
          - string
          - 'null'
        name:
          maxLength: 256
          minLength: 1
          type: string
        amount:
          type: number
          description: Amount without taxes. The total amount = Amount + TaxAmount
          format: double
          exclusiveMinimum: 0
        taxAmount:
          type:
          - number
          - 'null'
          format: double
      additionalProperties: false
    ChargeAfter.Disputes.WebApi.Contracts.Reversal:
      required:
      - lenderTransactionId
      - totalAmount
      type: object
      properties:
        totalAmount:
          type: number
          format: double
          exclusiveMinimum: 0
        lenderTransactionId:
          maxLength: 128
          minLength: 1
          type: string
          description: Lender transaction Id associated with this transaction
      additionalProperties: false
    ChargeAfter.Disputes.WebApi.Contracts.DisputeStatus:
      enum:
      - PendingMerchant
      - PendingLender
      - ResolvedMerchantFavor
      - ResolvedCancelled
      - ResolvedCustomerFavorFull
      - ResolvedCustomerFavorPartial
      type: string
      description: '* `PendingMerchant` - pending merchant response

        * `PendingLender` - pending lender response or decision. The lender should `assign` or `resolve` the dispute to change the status.

        * `ResolvedMerchantFavor` -  in favor of merchant

        * `ResolvedCancelled` -  in favor of merchant

        * `ResolvedCustomerFavorFull` -  in favor of consumer

        * `ResolvedCustomerFavorPartial` -  in favor of consumer'
    ChargeAfter.Disputes.WebApi.Contracts.Party:
      enum:
      - Lender
      - Merchant
      type: string
    ChargeAfter.Disputes.WebApi.Contracts.Chargeback:
      required:
      - lenderTransactionId
      - reason
      - totalAmount
      type: object
      properties:
        transactionId:
          type:
          - string
          - 'null'
          description: ChargeAfter transact

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