ChargeAfter Links API
The Links API from ChargeAfter — 3 operation(s) for links.
The Links API from ChargeAfter — 3 operation(s) for links.
openapi: 3.2.0
info:
title: OmniLink Links API
description: Welcome to ChargeAfter API reference! 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. 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: 1.11.8-310191-1-12-0+708877d18ffcdbb1c401c591f87af6a07c842632
servers:
- url: https://api-sandbox.ca-dev.co
description: Local Environment
- url: https://api.chargeafter.com
description: Production Environment
security:
- Bearer: []
tags:
- name: Links
paths:
/v2/omni-link/consumer/application:
post:
tags:
- Links
summary: Generate consumer application link
description: This endpoint generates a unique URL for a given consumer context that can be used to launch ChargeAfter's Apply experience.
requestBody:
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ChargeAfter.OmniLink.WebApi.Contracts.ConsumerApplicationLinkRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/ChargeAfter.OmniLink.WebApi.Contracts.GenerateLinkResponse'
'400':
description: Bad Request:<br/><ul><li><i>10000</i> - Invalid request payload</li><li><i>10001</i> - Field value is required</li><li><i>10002</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: '10000'
description: Invalid request payload
- code: '10001'
description: Field value is required
- code: '10002'
description: Field value is invalid
'401':
description: Unauthorized
'403':
description: Forbidden:<br/><ul><li><i>10101</i> - The selected option is not enabled</li><li><i>10201</i> - The specified consumer has opted-out</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: '10101'
description: The selected option is not enabled
- code: '10201'
description: The specified consumer has opted-out
'422':
description: Input Validation Error
content:
application/json:
schema:
type: object
properties:
requestId:
type: string
message:
type: string
errors:
type: array
items:
properties:
field:
type: string
validationState:
type: string
error:
type: string
example:
RequestId: Unique RequestId
Message: Input Validation Failure
Errors:
- Field: RequestField1
ValidationState: Invalid
Error: RequestField1 should be up to 150 characters, and can contain a-z, A-Z, _ characters.
'500':
description: General Server Error
content:
application/json:
schema:
example:
requestId: Unique RequestId
errors:
- code: '1'
description: Internal unknown error occurred
/v2/omni-link/consumer/checkout:
post:
tags:
- Links
summary: Generate consumer checkout link
description: This endpoint generates a unique URL for a given consumer context that can be used to launch ChargeAfter's Checkout experience.
requestBody:
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ChargeAfter.OmniLink.WebApi.Contracts.ConsumerCheckoutLinkRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/ChargeAfter.OmniLink.WebApi.Contracts.GenerateLinkResponse'
'400':
description: Bad Request:<br/><ul><li><i>10000</i> - Invalid request payload</li><li><i>10001</i> - Field value is required</li><li><i>10002</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: '10000'
description: Invalid request payload
- code: '10001'
description: Field value is required
- code: '10002'
description: Field value is invalid
'401':
description: Unauthorized
'403':
description: Forbidden:<br/><ul><li><i>10101</i> - The selected option is not enabled</li><li><i>10201</i> - The specified consumer has opted-out</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: '10101'
description: The selected option is not enabled
- code: '10201'
description: The specified consumer has opted-out
'422':
description: Input Validation Error
content:
application/json:
schema:
type: object
properties:
requestId:
type: string
message:
type: string
errors:
type: array
items:
properties:
field:
type: string
validationState:
type: string
error:
type: string
example:
RequestId: Unique RequestId
Message: Input Validation Failure
Errors:
- Field: RequestField1
ValidationState: Invalid
Error: RequestField1 should be up to 150 characters, and can contain a-z, A-Z, _ characters.
'500':
description: General Server Error
content:
application/json:
schema:
example:
requestId: Unique RequestId
errors:
- code: '1'
description: Internal unknown error occurred
/v2/omni-link/consumer/{linkId}:
get:
tags:
- Links
summary: Get link data
description: Enables retrieval of link data for the consumer-associated context.
parameters:
- name: linkId
in: path
required: true
schema:
minLength: 1
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/ChargeAfter.OmniLink.WebApi.Contracts.GetConsumerLinkDataResponse'
'400':
description: Bad Request
content:
application/json:
schema:
type: object
properties:
requestId:
type: string
example: Unique RequestId
message:
type: string
example: Message Describing The Error
'401':
description: Unauthorized
'403':
description: Forbidden
'404':
description: The specified link ID was not found
'422':
description: Input Validation Error
content:
application/json:
schema:
type: object
properties:
requestId:
type: string
message:
type: string
errors:
type: array
items:
properties:
field:
type: string
validationState:
type: string
error:
type: string
example:
RequestId: Unique RequestId
Message: Input Validation Failure
Errors:
- Field: RequestField1
ValidationState: Invalid
Error: RequestField1 should be up to 150 characters, and can contain a-z, A-Z, _ characters.
'500':
description: General Server Error
content:
application/json:
schema:
example:
requestId: Unique RequestId
errors:
- code: '1'
description: Internal unknown error occurred
components:
schemas:
ChargeAfter.OmniLink.Api.Common.Contracts.LinkOptions:
type: object
properties:
linkFormat:
allOf:
- $ref: '#/components/schemas/ChargeAfter.OmniLink.Api.Common.Contracts.LinkFormat'
description: Specifies how the link will be formatted
deliveryMethod:
allOf:
- $ref: '#/components/schemas/ChargeAfter.OmniLink.Api.Common.Contracts.DeliveryMethod'
description: 'The selected delivery method by which the link will be sent <br />
If `Email` was selected, the consumer `email` should be specified. <br />
If `Sms` was selected, the consumer `mobilePhoneNumber` should be specified.'
onSuccessRedirectUrl:
type:
- string
- 'null'
description: A URL to which the client should be redirected when the application completes successfully
onFailureRedirectUrl:
type:
- string
- 'null'
description: A URL to which the client should be redirected when the application completes unsuccessfully
additionalProperties: false
description: Application options
ChargeAfter.OmniLink.WebApi.Contracts.Address:
required:
- city
- line1
- state
- zipCode
type: object
properties:
state:
minLength: 1
type: string
description: Address state (ISO 3166-2:US codes)
city:
minLength: 1
type: string
description: Address city
line1:
minLength: 1
type: string
description: Address line 1
line2:
type: string
description: Address line 2
zipCode:
minLength: 1
type: string
description: Address zip code
additionalProperties: false
description: Address information
ChargeAfter.OmniLink.WebApi.Contracts.GetConsumerLinkDataResponse:
type: object
properties:
createdAt:
type: string
description: Timestamp of when the link was created (UTC)
format: date-time
updatedAt:
type: string
description: Timestamp of when the link was last updated (UTC)
format: date-time
linkType:
allOf:
- $ref: '#/components/schemas/ChargeAfter.Libraries.Entities.LinkType'
description: Link type
linkStatus:
allOf:
- $ref: '#/components/schemas/ChargeAfter.OmniLink.WebApi.Contracts.LinkStatus'
description: Link status
applicationDetails:
allOf:
- $ref: '#/components/schemas/ChargeAfter.OmniLink.WebApi.Contracts.LinkDataApplicationDetails'
description: Application details
merchantDetails:
allOf:
- $ref: '#/components/schemas/ChargeAfter.OmniLink.Api.Common.Contracts.MerchantDetails'
description: Merchant details
applications:
type: array
items:
$ref: '#/components/schemas/ChargeAfter.OmniLink.WebApi.Contracts.LinkApplication'
description: Link associated applications
additionalProperties: false
description: Consumer link data
ChargeAfter.OmniLink.WebApi.Contracts.LinkApplicationCheckoutData:
type: object
properties:
lenderId:
type: string
description: Associated lender ID
lenderName:
type: string
description: 'Associated lender name
<br><b>Disclaimer:</b> Because this value may change, customers should not bind to this parameter.
Instead, bind to the lenderId and set the lenderName in your system.
'
confirmationToken:
type: string
description: Checkout confirmation token
additionalProperties: false
description: Consumer checkout data associated with specific link application
ChargeAfter.OmniLink.WebApi.Contracts.Discount:
required:
- amount
- name
type: object
properties:
name:
minLength: 1
type: string
description: Discount name / description
amount:
type: number
description: Discount amount
format: double
exclusiveMinimum: 0
additionalProperties: false
ChargeAfter.OmniLink.WebApi.Contracts.LinkStatus:
enum:
- New
- Accessed
- Expired
type: string
description: Describes the status of a given link<p>Description:</p><ul><li><i>New</i> - A new link not yet accessed by the consumer</li><li><i>Accessed</i> - The consumer has accessed the link</li><li><i>Expired</i> - The link has expired</li></ul>
ChargeAfter.OmniLink.WebApi.Contracts.ConsumerCheckoutLinkRequest:
required:
- applicationDetails
- cart
type: object
properties:
cart:
allOf:
- $ref: '#/components/schemas/ChargeAfter.OmniLink.WebApi.Contracts.Cart'
description: Checkout cart
checkoutOptions:
allOf:
- $ref: '#/components/schemas/ChargeAfter.OmniLink.WebApi.Contracts.CheckoutOptions'
description: Checkout options
applicationDetails:
allOf:
- $ref: '#/components/schemas/ChargeAfter.OmniLink.WebApi.Contracts.ApplyOrCheckoutApplicationDetails'
description: Application details
consumer:
allOf:
- $ref: '#/components/schemas/ChargeAfter.OmniLink.WebApi.Contracts.Consumer'
description: Consumer details
merchantDetails:
allOf:
- $ref: '#/components/schemas/ChargeAfter.OmniLink.Api.Common.Contracts.MerchantDetails'
description: Merchant details
linkOptions:
allOf:
- $ref: '#/components/schemas/ChargeAfter.OmniLink.Api.Common.Contracts.LinkOptions'
description: Link options
additionalProperties: false
ChargeAfter.OmniLink.WebApi.Contracts.LinkDataApplicationDetails:
required:
- channel
type: object
properties:
tags:
type:
- object
- 'null'
additionalProperties:
type: string
description: Application associated custom identifiers
currency:
type:
- string
- 'null'
description: Application currency (ISO 4217)
creditTiers:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/ChargeAfter.OmniLink.WebApi.Contracts.CreditTier'
description: Credit tiers
correlationId:
type:
- string
- 'null'
description: Correlation ID
channel:
minLength: 1
type: string
description: 'Application channel. <br />
Possible values:<br />
- `E_COMMERCE` <br />
- `IN_STORE` <br />
- `IN_HOME` <br />
- `CALL_CENTER` <br />'
language:
type:
- string
- 'null'
description: 'Application language. <br />
Possible values:<br />
- `en` <br />
- `fr` <br />'
additionalProperties: false
description: Application details associated with specific link data application
ChargeAfter.OmniLink.WebApi.Contracts.Consumer:
type: object
properties:
merchantConsumerId:
type:
- string
- 'null'
description: Merchant consumer ID
firstName:
type:
- string
- 'null'
description: 'Consumer first name <br />
Should be specified if `Email` or `Sms` is selected as the `deliveryMethod`'
lastName:
type:
- string
- 'null'
description: 'Consumer last name <br />
Should be specified if `Email` or `Sms` is selected as the `deliveryMethod`'
email:
type:
- string
- 'null'
description: 'Consumer email <br />
Should be specified if `Email` is the selected `deliveryMethod`'
mobilePhoneNumber:
type:
- string
- 'null'
description: 'Consumer mobile phone number <br />
Should be specified if `Sms` is the selected `deliveryMethod`'
billingAddress:
allOf:
- $ref: '#/components/schemas/ChargeAfter.OmniLink.WebApi.Contracts.Address'
description: Consumer billing address
shippingAddress:
allOf:
- $ref: '#/components/schemas/ChargeAfter.OmniLink.WebApi.Contracts.Address'
description: Consumer shipping address
additionalProperties: false
description: Applicant details
ChargeAfter.OmniLink.Api.Common.Contracts.DeliveryMethod:
enum:
- None
- Email
- Sms
type: string
description: The delivery method by which the link will be sent<p>Description:</p><ul><li><i>None</i> - No delivery method is specified, the link will not be sent</li><li><i>Email</i> - Email</li><li><i>Sms</i> - SMS message</li></ul>
ChargeAfter.OmniLink.WebApi.Contracts.LinkApplication:
type: object
properties:
createdAt:
type: string
description: Application creation timestamp (UTC)
format: date-time
updatedAt:
type: string
description: Application last updated timestamp (UTC)
format: date-time
applicationId:
type: string
description: Application ID
applicationStatus:
allOf:
- $ref: '#/components/schemas/ChargeAfter.OmniLink.WebApi.Contracts.ApplicationStatus'
description: Application status
consumerId:
type:
- string
- 'null'
description: ChargeAfter consumer ID
accounts:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/ChargeAfter.OmniLink.WebApi.Contracts.Account'
description: Application associated accounts
checkoutDetails:
allOf:
- $ref: '#/components/schemas/ChargeAfter.OmniLink.WebApi.Contracts.LinkApplicationCheckoutData'
description: Associated checkout data
additionalProperties: false
description: Link associated consumer application details
ChargeAfter.OmniLink.WebApi.Contracts.CheckoutOptions:
type: object
properties:
charge:
type: boolean
description: Automatically charge (authorize) when the checkout process completes
settle:
type: boolean
description: 'Automatically settle when the charge is created <br />
Cannot be set if `Charge` option was not enabled'
additionalProperties: false
description: Checkout options
ChargeAfter.OmniLink.WebApi.Contracts.ConsumerApplicationLinkRequest:
required:
- applicationDetails
type: object
properties:
applicationDetails:
allOf:
- $ref: '#/components/schemas/ChargeAfter.OmniLink.WebApi.Contracts.ApplyOrCheckoutApplicationDetails'
description: Application details
consumer:
allOf:
- $ref: '#/components/schemas/ChargeAfter.OmniLink.WebApi.Contracts.Consumer'
description: Consumer details
merchantDetails:
allOf:
- $ref: '#/components/schemas/ChargeAfter.OmniLink.Api.Common.Contracts.MerchantDetails'
description: Merchant details
linkOptions:
allOf:
- $ref: '#/components/schemas/ChargeAfter.OmniLink.Api.Common.Contracts.LinkOptions'
description: Link options
additionalProperties: false
ChargeAfter.OmniLink.WebApi.Contracts.ApplicationStatus:
enum:
- Started
- Prequalified
- PendingConsumer
- PendingLender
- Approved
- Confirmed
- Completed
- Declined
- Cancelled
- Failed
type: string
description: <p>Description:</p><ul><li><i>Started</i> - Application process started</li><li><i>Prequalified</i> - The consumer application was pre-approved by at least one lender</li><li><i>PendingConsumer</i> - Application process is pending a consumer action</li><li><i>PendingLender</i> - Application process is pending a lender review</li><li><i>Approved</i> - The consumer application was approved by at least one lender</li><li><i>Confirmed</i> - The consumer has confirmed the application</li><li><i>Completed</i> - Application process completed</li><li><i>Declined</i> - Application declined</li><li><i>Cancelled</i> - Application process was cancelled by the consumer</li><li><i>Failed</i> - Application process failed</li></ul>
ChargeAfter.OmniLink.WebApi.Contracts.CreditTier:
enum:
- Prime
- NearPrime
- SubPrime
type: string
description: Credit tier<p>Description:</p><ul><li><i>Prime</i> - Prime credit tier</li><li><i>NearPrime</i> - Near-prime credit tier</li><li><i>SubPrime</i> - Sub-prime credit tier</li></ul>
ChargeAfter.OmniLink.Api.Common.Contracts.LinkFormat:
enum:
- Url
- QrCode
- UrlAndQrCode
type: string
description: Specifies how the link will be formatted<p>Description:</p><ul><li><i>Url</i> - URL</li><li><i>QrCode</i> - QR code</li><li><i>UrlAndQrCode</i> - URL and QR code</li></ul>
ChargeAfter.OmniLink.WebApi.Contracts.GenerateLinkResponse:
type: object
properties:
url:
type:
- string
- 'null'
description: Application link URL
qrCode:
type:
- string
- 'null'
description: Application link QR Code in base64 format
linkId:
type: string
description: Application link ID
additionalProperties: false
description: Generate link response
ChargeAfter.OmniLink.WebApi.Contracts.CreditInfo:
type: object
properties:
availableAmount:
type: number
description: Available amount (Obsolete - Replaced with Amount)
format: double
deprecated: true
amount:
type: number
description: Associated amount
format: double
additionalProperties: false
description: Credit information
ChargeAfter.Libraries.Entities.LinkType:
enum:
- ConsumerApplication
- ConsumerCheckout
- ConsumerResume
- ConsumerModifyLoan
- ConsumerAdditionalAction
- ConsumerLookup
- MerchantApplication
type: string
ChargeAfter.OmniLink.WebApi.Contracts.CartItem:
required:
- name
- price
- quantity
- sku
type: object
properties:
name:
minLength: 1
type: string
description: Cart item name
sku:
minLength: 1
type: string
description: Cart item SKU
leasable:
type:
- boolean
- 'null'
description: Indication whether the item can be leased or not
price:
minimum: 0
type: number
description: Cart item price
format: double
quantity:
type: integer
description: Cart item quantity
format: int32
exclusiveMinimum: 0
productCategory:
type:
- string
- 'null'
description: Cart item product category
warranty:
allOf:
- $ref: '#/components/schemas/ChargeAfter.OmniLink.WebApi.Contracts.Warranty'
description: Cart item warranty
additionalProperties: false
description: Cart item details
ChargeAfter.OmniLink.Api.Common.Contracts.MerchantDetails:
type: object
properties:
storeId:
type:
- string
- 'null'
description: Application associated ChargeAfter store ID
posType:
type: string
description: 'Application-associated POS type (Default value = "GenericConsumerDevice")
Allowed values:
- `GenericMerchantDevice` - any merchant-owned device
- `GenericConsumerDevice` - any consumer-owned device'
posId:
type:
- string
- 'null'
description: Application associated merchant POS ID
externalUserId:
type:
- string
- 'null'
description: External user ID identifying the merchant employee who generated the link
additionalProperties: false
description: Application associated merchant details
ChargeAfter.OmniLink.WebApi.Contracts.Account:
required:
- creditInfo
- lenderId
- lenderName
type: object
properties:
accountStatus:
allOf:
- $ref: '#/components/schemas/ChargeAfter.OmniLink.WebApi.Contracts.AccountStatus'
description: The account (lender application) status
accountToken:
type:
- string
- 'null'
description: Account token
lenderId:
minLength: 1
type: string
description: Lender ID
lenderName:
minLength: 1
type: string
description: 'Lender name
<br><b>Disclaimer:</b> Because this value may change, customers should not bind to this parameter.
Instead, bind to the lenderId and set the lenderName in your system.
'
creditInfo:
allOf:
- $ref: '#/components/schemas/ChargeAfter.OmniLink.WebApi.Contracts.CreditInfo'
description: Credit information
additionalProperties: false
description: Account information
ChargeAfter.OmniLink.WebApi.Contracts.Warranty:
required:
- name
- sku
type: object
properties:
name:
minLength: 1
type: string
description: Warranty name / description
sku:
minLength: 1
type: string
description: Warranty SKU
price:
minimum: 0
type: number
description: Warranty price
format: double
additionalProperties: false
description: Cart item warranty details
ChargeAfter.OmniLink.WebApi.Contracts.Cart:
required:
- items
- totalAmount
type: object
properties:
items:
minItems: 1
type: array
items:
$ref: '#/components/schemas/ChargeAfter.OmniLink.WebApi.Contracts.CartItem'
description: Cart items (must include at least one item)
totalAmount:
type: number
description: Cart total amount
format: double
exclusiveMinimum: 0
totalTaxAmount:
minimum: 0
type:
- number
- 'null'
description: Cart total tax amount
format: double
shippingAmount:
minimum: 0
type:
- number
- 'null'
description: Cart shipping amount
format: double
merchantOrderId:
maxLength: 100
type:
- string
- 'null'
description: Merchant Order ID
discounts:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/ChargeAfter.OmniLink.WebApi.Contracts.Discount'
description: Discounts
additionalProperties: false
description: Cart details
ChargeAfter.OmniLink.WebApi.Contracts.AccountStatus:
enum:
- Prequalified
- PendingConsumer
- PendingLender
- Cancelled
- Declined
- Approved
type: string
description: The account (or lender application) status<p>Description:</p><ul><li><i>Prequalified</i> - The lender application is prequalified (pre-approved)</li><li><i>PendingConsumer</i> - The lender application is pending a consumer action</li><li><i>PendingLender</i> - The lender application is under the lender review</li><li><i>Cancelled</i> - The lender application was cancelled</li><li><i>Declined</i> - The lender application was declined</li><li><i>Approved</i> - The lender application was approved</li></ul>
ChargeAfter.OmniLink.WebApi.Contracts.ApplyOrCheckoutApplicationDetails:
required:
- channel
type: obje
# --- truncated at 32 KB (33 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/chargeafter/refs/heads/main/openapi/chargeafter-links-api-openapi.yml