ChargeAfter Lenders API

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

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.Dispute:
      required:
      - createdAt
      - id
      - origin
      - status
      - statusUpdatedAt
      - updatedAt
      type: object
      properties:
        id:
          minLength: 1
          type: string
        createdAt:
          type: string
          description: In ISO 8601
          format: date-time
        updatedAt:
          type: string
          description: In ISO 8601
          format: date-time
        status:
          $ref: '#/components/schemas/ChargeAfter.Disputes.WebApi.Contracts.DisputeStatus'
        origin:
          $ref: '#/components/schemas/ChargeAfter.Disputes.WebApi.Contracts.Party'
        statusUpdatedAt:
          type: string
          description: Last status update timestamp in ISO 8601, defaults to `createdAt`
          format: date-time
        supportingDocuments:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/ChargeAfter.Disputes.WebApi.Contracts.Document'
        notes:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/ChargeAfter.Disputes.WebApi.Contracts.Note'
        chargeback:
          $ref: '#/components/schemas/ChargeAfter.Disputes.WebApi.Contracts.Chargeback'
        proposedAmount:
          type:
          - number
          - 'null'
          format: double
        lenderDisputeId:
          type:
          - string
          - 'null'
          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:
          type:
          - string
          - 'null'
          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
    ChargeAfter.Disputes.WebApi.Contracts.Document:
      required:
      - header
      - name
      - url
      type: object
      pro

# --- 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