Loan Transactions

A Drawdown refers to the process of using the funds that have been made available as a result of a loan agreement. Drawdown are often used in relation to revolving credit facilities, home loans, or construction loans, where the total loan amount is not disbursed upfront but rather drawn down in stages as needed.

Preczn allows platforms to perform drawdown transactions against loans that they have originated with their Lending Connections such a Greensky or Nelnet.

Drawdown Transaction

Drawdown transactions make use of Preczn loan tokens. If you've originated your loan through Preczn, use the token provided during origination, otherwise you can tokenize an existing loan.

Before performing a drawdown, you may wish to confirm details loan such as balance, stageFunding limits, credit limits, etc. Use the Preczn Get Token endpoint to return the last data from the loan provider.

A drawdown transaction can be created by calling our POST /v1/transactions API endpoint and selecting type as drawdown. The following fields are supported with drawdowns:

Request Parameters

ParameterTypeRequirementsDescription
merchantIdstringrequiredThe merchant for which the transaction will be applied.
typestringrequiredFor drawdown transactions the type must be drawdown
payment.tokenstringrequiredObject containing details of the account from which the transaction payment is being made.
For drawdown transactions, the payment object must be a token and specifically a loan token.
amountnumberrequiredThe amount to be transferred for this drawdown payment. Please note that some lending providers have stage limits which should be considered when performing payments
totaljobAmountnumberrequiredThe amount to complete the entire job. This is required by some lenders to calculate what amount has been job funds have been dispersed as it relates to established stage limits.
drawTypestringrequiredIndicate if drawdown is a progress or completion payment. completion will indicate to lenders that this is the find payments so that stage limit restrictions can be bypassed.
invoicestringoptionalAn internal invoice number. Preczn will save this number in the transaction receipt and pass it to Lenders who support invoice numbers in their systems (currently Greensky)

Example API Request/Response

Below is a drawdown transaction example with the minimum required request fields, that was routed to Stripe as a processor.

{
    "merchantId": "mid_2zyd88xrnr90xskmjmqpd0x1vj",
    "type": "drawdown",
    "payment": {
        "token": "tkn_5ptw6a9dd8brzz5qw2b7xqkt1"
    },
    "amount": 125,
    "totalJobAmount": 1000,
    "invoice": "invoiceNumber1",
    "drawType": "progress"
}
{
  "amount": 125,
  "authorization": {
    "approvedAmount": 125,
    "drawtype": "progress",
    "processorCode": "SUCCESS",
    "processorMessage": "Successfully processed the request",
    "processorTransactionId": "20180114",
    "status": "P"
  },
  "createdOn": "2023-02-22T17:16:11Z",
  "currency": "USD",
  "fee": 0,
  "id": "txn_h1rn8c9nd81y9bkgzax2k2rax",
  "merchantId": "mid_2zyd88xrnr90xskmjmqpd0x1vj",
  "payment": {
    "type": "loan",
    "loan": {
      "brand": "greensky",
      "type": "B2B2C",
      "loanId": "2317600039",
    }
  },
  "plan": {
    "id": "plan_57jaev7pna8nftrkr6xksaastw",
    "name": "Greensky+Adyen"
  },
  "platformId": "pfm_7aj2pxrrcg8zs8x6cxyyrwmyqe",
  "processor": {
    "id": "midCon_6v59stftbs837axmpahj21m8jf",
    "name": "Greensky"
  },
  "type": "drawdown"
}
{
  "amount": 125,
  "authorization": {
    "approvedAmount": 0,
    "drawtype": "progress",
    "processorCode": "SUCCESS",
    "processorMessage": "Successfully processed the request",
    "status": "D"
  },
  "createdOn": "2023-02-22T17:16:11Z",
  "currency": "USD",
  "fee": 0,
  "id": "txn_h1rn8c9nd81y9bkgzax2k2rax",
  "merchantId": "mid_2zyd88xrnr90xskmjmqpd0x1vj",
  "payment": {
    "type": "Loan",
    "loan": {
      "brand": "greensky",
      "type": "B2B2C",
      "loanId": "2317600039",
    }
  },
  "plan": {
    "id": "plan_57jaev7pna8nftrkr6xksaastw",
    "name": "Greensky+Adyen"
  },
  "platformId": "pfm_7aj2pxrrcg8zs8x6cxyyrwmyqe",
  "processor": {
    "id": "midCon_6v59stftbs837axmpahj21m8jf",
    "name": "Greensky"
  },
  "type": "drawdown"
}

Loan Transaction Data

When working with a drawdown, your merchants may want additional information such as if the payment has posted to their account, or how much in fees was removed from the amount that was posted.

This information is sent asynchronously in the loanTransactionData object once the drawdown has posted. In order to receive the update, your platform will need to subscribe to transaction.update webhook events. The updated transaction will look have the following data:

{
    "amount": 10000,
    "authorization": {
        "processorTransactionId": "1965432",
        "approvedAmount": 10000,
        "processorCode": "POSTED",
        "status": "A",
        "processorMessage": "Successfully processed the request"
    },
    "loanTransactionData": {
        "posted": true, // Available for both Greensky and Nelnet
        "feeAmount": 700, ///Available for both Greensky and Nelnet
        "netAmount": 9300 // Available for only Greensky and Nelnet
    },
    "totalJobAmount": 1000000,
    "type": "drawdown"
}