---
agentTools:
  projectIndex: https://docs.chargeafter.com/llms.txt
---

# Generate consumer modify-loan link

This endpoint generates a unique URL for a given consumer context that can be used to launch ChargeAfter's modify-loan experience.

# OpenAPI definition

```json
{
  "openapi": "3.0.1",
  "info": {
    "title": "OmniLink 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.7.7+53b94b63995f4256a055e4740e304e6f0b671f5d"
  },
  "paths": {
    "/v2/omni-link/consumer/modify-loan": {
      "post": {
        "tags": [
          "Links"
        ],
        "summary": "Generate consumer modify-loan link",
        "description": "This endpoint generates a unique URL for a given consumer context that can be used to launch ChargeAfter's modify-loan experience.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ChargeAfter.OmniLink.WebApi.Contracts.ConsumerModifyLoanLinkRequest"
                  }
                ]
              }
            }
          }
        },
        "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"
                      }
                    ]
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "ChargeAfter.OmniLink.Api.Common.Contracts.DeliveryMethod": {
        "enum": [
          "None",
          "Email",
          "Sms"
        ],
        "type": "string"
      },
      "ChargeAfter.OmniLink.Api.Common.Contracts.LinkFormat": {
        "enum": [
          "Url",
          "QrCode",
          "UrlAndQrCode"
        ],
        "type": "string"
      },
      "ChargeAfter.OmniLink.Api.Common.Contracts.LinkOptions": {
        "type": "object",
        "properties": {
          "linkFormat": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ChargeAfter.OmniLink.Api.Common.Contracts.LinkFormat"
              }
            ]
          },
          "deliveryMethod": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ChargeAfter.OmniLink.Api.Common.Contracts.DeliveryMethod"
              }
            ]
          },
          "onSuccessRedirectUrl": {
            "type": "string",
            "nullable": true
          },
          "onFailureRedirectUrl": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ChargeAfter.OmniLink.Api.Common.Contracts.MerchantDetails": {
        "type": "object",
        "properties": {
          "storeId": {
            "type": "string",
            "nullable": true
          },
          "posType": {
            "type": "string"
          },
          "posId": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "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.Consumer": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "ChargeAfter consumer ID",
            "nullable": true
          },
          "merchantConsumerId": {
            "type": "string",
            "description": "Merchant consumer ID",
            "nullable": true
          },
          "firstName": {
            "type": "string",
            "description": "Consumer first name <br />\r\nShould be specified if `Email` or `Sms` is selected as the `deliveryMethod`",
            "nullable": true
          },
          "lastName": {
            "type": "string",
            "description": "Consumer last name <br />\r\nShould be specified if `Email` or `Sms` is selected as the `deliveryMethod`",
            "nullable": true
          },
          "email": {
            "type": "string",
            "description": "Consumer email <br />\r\nShould be specified if `Email` is the selected `deliveryMethod`",
            "nullable": true
          },
          "mobilePhoneNumber": {
            "type": "string",
            "description": "Consumer mobile phone number <br />\r\nShould be specified if `Sms` is the selected `deliveryMethod`",
            "nullable": true
          },
          "billingAddress": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ChargeAfter.OmniLink.WebApi.Contracts.Address"
              }
            ],
            "description": "Consumer billing address",
            "nullable": true
          },
          "shippingAddress": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ChargeAfter.OmniLink.WebApi.Contracts.Address"
              }
            ],
            "description": "Consumer shipping address",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Applicant details"
      },
      "ChargeAfter.OmniLink.WebApi.Contracts.ConsumerModifyLoanLinkRequest": {
        "required": [
          "applicationDetails"
        ],
        "type": "object",
        "properties": {
          "applicationDetails": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ChargeAfter.OmniLink.WebApi.Contracts.ModifyLoanApplicationDetails"
              }
            ],
            "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.GenerateLinkResponse": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "description": "Application link URL",
            "nullable": true
          },
          "linkId": {
            "type": "string",
            "description": "Application link ID"
          }
        },
        "additionalProperties": false,
        "description": "Generate link response"
      },
      "ChargeAfter.OmniLink.WebApi.Contracts.ModifyLoanApplicationDetails": {
        "required": [
          "applicationId",
          "channel"
        ],
        "type": "object",
        "properties": {
          "requestedLoanAmount": {
            "type": "number",
            "description": "Requested loan amount",
            "format": "double"
          },
          "applicationId": {
            "minLength": 1,
            "type": "string",
            "description": "Application ID\r\nPreviously created application ID to resume with"
          },
          "correlationId": {
            "type": "string",
            "description": "Correlation ID",
            "nullable": true
          },
          "channel": {
            "minLength": 1,
            "type": "string",
            "description": "Application channel. <br />\r\nPossible values:<br />\r\n- `E_COMMERCE` <br />\r\n- `IN_STORE` <br />\r\n- `IN_HOME` <br />\r\n- `CALL_CENTER` <br />"
          },
          "language": {
            "type": "string",
            "description": "Application language. <br />\r\nPossible values:<br />\r\n- `en` <br />\r\n- `fr` <br />",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Application details"
      }
    },
    "securitySchemes": {
      "apiKey": {
        "type": "apiKey",
        "name": "Authorization",
        "in": "header"
      }
    }
  },
  "servers": [
    {
      "url": "https://api-sandbox.ca-dev.co",
      "description": "Local Environment"
    },
    {
      "url": "https://api.chargeafter.com",
      "description": "Production Environment"
    }
  ],
  "security": [
    {
      "apiKey": []
    }
  ],
  "x-readme": {
    "explorer-enabled": true,
    "proxy-enabled": true
  },
  "_id": {
    "buffer": {
      "0": 104,
      "1": 116,
      "2": 175,
      "3": 228,
      "4": 84,
      "5": 246,
      "6": 170,
      "7": 49,
      "8": 97,
      "9": 220,
      "10": 241,
      "11": 153
    }
  }
}
```