ChargeAfter Lenders API
The Lenders API from ChargeAfter — 7 operation(s) for lenders.
The Lenders API from ChargeAfter — 7 operation(s) for lenders.
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