---
title: "Generate preapproved offers"
method: POST
path: "/PreApproval/offers"
tags: ["PreApproval"]
---

# Generate preapproved offers

`POST /PreApproval/offers`

## Headers

- `api-version` string

## Request body

- PreApprovalRequestModel — Model containing the pre-approval request body
  - `thirdPartyCustomerId` string, required — Gets or sets the third party unique merchant identifier
  - `companyType` 'Ltd' | 'Plc' | 'Llp' | 'SoleTrader' | 'Partnership' | 'Llc' | 'BusinessCorporation' | 'Dac' | 'Eenmanszaak' | 'NaamlozeVennootschap' | 'Bv' | 'Cv' | 'Nv' | 'Vof' | 'SpZoo' | 'SpkSpj' | 'Scspp' | 'SaSKA' | 'Jdg' | 'GmbhUg' | 'EK' | 'Gewerbebetrieb' | 'GbrOhg' | 'Gbr' | 'EGbr' | 'Ohg' | 'Kg' | 'Aktiengesellschaft' | 'SlSlne' | 'SociedadColectiva' | 'SociedadComanditaria' | 'EIAutonomo' | 'SociedadCivil' | 'SociedadCooperativa' | 'SNC' | 'EINomPropre' | 'SARL' | 'SocieteCooperative' | 'SA' | 'SAS' | 'EURL' | 'SCP' | 'SCS' | 'SASU' | 'EnterpriseIndividuelle' | 'SocieteAnonyme' | 'SRL' | 'SComm' | 'AS' | 'ApS' | 'KS' | 'PS' | 'Fmba' | 'Andelsselskab' | 'Amba' | 'ErhvervsdrivendeFond' | 'IS' | 'Smba' | 'SI' | 'SelvstændigOffentligVirksomhed' | 'Partrederi' | 'Filial' | 'Enkeltmandsvirksomhed' | 'PMV' | 'Forening'
  - `merchantMcc` string, nullable — Gets or sets the unique merchant MCC
  - `countryISOCode` 'GBR' | 'USA' | 'NLD' | 'BEL' | 'DEU' | 'FRA' | 'DNK' | 'IRL' | 'POL', required — Gets or sets the merchant payment data
  - `paymentData` PaymentDataRow[], required — Gets or sets the merchant payment data
    - `date` string, date-time, required
    - `amount` number, double, required
    - `paymentType` 'Settlement' | 'Chargeback' | 'Refund', required
    - `currencyISOCode` 'GBP' | 'EUR' | 'USD' | 'PLN' | 'DKK', required
    - `numberOfTransactions` integer, nullable
  - `isRenewal` boolean — Gets or sets the boolean indicating whether the customer has had a Loan in the past.
  - `variableFactorRate` boolean — Gets or sets the boolean indicating whether the desired pre approved offers are provided for a unique factor rate or a range of different factor rates
  - `requestPreQualification` boolean — Gets or sets the boolean indicating whether the partner would like to recieve a prequalification offer in addition to pre-approval
  - `regularIncrementTypeForOfferGrid` 'LoanAmount' | 'Sweep', required — Gets or sets the increment type that is used to generate the offer grid (sweep or loan amount)
  - `secondaryLendingPartnerDetails` SecondaryLendingPartnerDetails
    - `secondaryLendingPartnerId` string, nullable
    - `secondaryLendingPartnerName` string, nullable
  - `additionalInfo` object, nullable — Gets or sets additional info.
  - `customerData` unknown

## Response `200`

Success

- PreApprovalResponseModel — Gets or sets the pre approval response model
  - `merchantIsEligibleForPreApproval` boolean — Gets or sets the boolean indicating whether the merchant is eligible for pre approved offers. If this is false, the PreApprovedOffersModel will be null
  - `merchantIsInControlGroup` boolean — Gets or sets the boolean indicating whether the merchant is in the control group, this is an indicator that the merchant is not eligible for pre-approved offers.
  - `loanType` string, nullable — Gets or sets the type of loan (Initial, Renewal, Early Renewal)
  - `isRepaymentHoliday` boolean — Gets or sets the repayment holiday flag
  - `secondaryLendingPartnerDetails` SecondaryLendingPartnerDetails
    - `secondaryLendingPartnerId` string, nullable
    - `secondaryLendingPartnerName` string, nullable
  - `paymentDataValidationResponse` PaymentDataValidationResponse
    - `preApprovalId` string, uuid — Gets or sets the ID of PreApproval
    - `paymentDataValidationSuccessful` boolean — Gets or sets the boolean indicating whether the validation of the paymentdata was successful
    - `paymentDataValidationsRulesNotMet` PaymentValidationRulesModel[], nullable — Gets or sets the rules that were not satisfied in the case where the validation is not successful
      - `code` 'PV000' | 'PV001' | 'PV002' | 'PV003'
      - `reason` string, nullable — Gets or sets the reason related to the payment data validation rule that failed
  - `renewalsValidationResponse` RenewalsValidationResponse
    - `renewalsValidationSuccessful` boolean — Gets or sets the boolean indicating whether the validation of the paymentdata was successful
    - `renewalsValidationsRulesNotMet` RenewalsValidationRulesModel[], nullable — Gets or sets the rules that were not satisfied in the case where the validation is not successful
      - `code` 'AOR001' | 'AOR002' | 'AOR003'
      - `reason` string, nullable — Gets or sets the reason related to the Renewal validation rule that failed
  - `preApprovedOffersModel` PreApprovedOffersModel — Gets or sets the pre approved offers model
    - `thirdPartyCustomerId` string, nullable — Gets or sets the third party unique merchant identifier
    - `preApprovalId` string, uuid — Gets or sets the YouLend unique identifier for the pre approved merchant. This Id is needed in the Onboarding API to ensure YouLend can match the pre-approved offers (obtained before the merchant application) with the application journey
    - `interval` number, double — Gets or sets the regular interval used to generate the offer grid (e.g. loan amout increment of £500)
    - `regularIncrementTypeForOfferGrid` 'LoanAmount' | 'Sweep' — Gets or sets the increment type that is used to generate the offer grid (sweep or loan amount)
    - `offers` PricingOffers[], nullable — Gets or sets the list of pre approved offeres
      - `offerId` string, uuid — Gets or sets the unique identifier for the offer
      - `fundedAmount` number, double — Gets or sets the loan Funded amount
      - `originalAmount` number, double — Gets or sets the amount the merchant will need to repay (includes fees)
      - `currencyISOCode` string, nullable — Gets or sets the currency ISO code
      - `factorRate` number, double — Gets or sets the offer factor rate
      - `sweep` number, double — Gets or sets the offer sweep
      - `daysUntilRepayment` integer — Gets or sets the number of days until the loan is expected to be repaid
      - `daysUntilMaturity` integer — Gets or sets the number of days until the loan's maturity date
      - `expirationDate` string, date-time — Gets or sets the offer expiration date
      - `minimumWeeklyRepayment` number, double — Gets or sets the minimum weekly repayment amount
      - `repaymentType` 'Variable' | 'Fixed' — High-level classification of repayment behavior for an offer. Variable = revenue-based / sweeping. Fixed = scheduled fixed (e.g. weekly direct debit).
  - `preQualificationOffersModel` PreQualificationOffersModel
    - `thirdPartyCustomerId` string, nullable — Gets or sets the third party unique merchant identifier
    - `preApprovalId` string, uuid — Gets or sets the YouLend unique identifier for the pre approved merchant. This Id is needed in the Onboarding API to ensure YouLend can match the pre-approved offers (obtained before the merchant application) with the application journey
    - `offer` LoanOffers
      - `offerId` string, uuid
      - `fundedAmount` number, double
      - `originalAmount` number, double
      - `currencyISOCode` string, nullable
      - `factorRate` number, double
      - `sweep` number, double
      - `daysUntilRepayment` integer
      - `daysUntilMaturity` integer
      - `expirationDate` string, date-time

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `422` — Client Error
- `500` — Server Error

---

[API](https://skmtc.dev/youlend/apis/prequalification.md) · [All operations](https://skmtc.dev/youlend/apis/prequalification/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/youlend/prequalification/revisions/a76313c6cc3d/schema)
