Line of Credit Draws

This object represents a draw. Draws can me made on Line of Credit loans only. Draws can be amortized or non-amortized. If amortized, the draw will be amortized over the selected number of periods and aligned to the Line of Credit due dates. If non-amortized, the draw is due on a due date following the current period statement creation. A draw can have different interest and promo rates from the Line of Credit. Each draw has a unique identifier, similar to a loan.

Create draw

Securityoauth2 or bearerAuth or apiKeyHeader
Request
path Parameters
personId
required
string^ext-|^[A-Z]{2}-[A-Z0-9]+-[A-Z0-9]+|^\d+$

A Borrower's unique identifier, tied to a person or a business. Can be Peach or a lender's external identifier.

loanId
required
string^ext-|^[A-Z]{2}-[A-Z0-9]+-[A-Z0-9]+|^\d+$

The unique identifier of the Loan we wish to retrieve. Can be Peach or lender's external identifier.

Request Body schema: application/json
externalId
string or null non-empty

A lender's identifier for a loan or a draw.

After the object is successfully created, a lender can use id or externalId identifiers to fetch the object.

To fetch the object using externalId you need to add ext- to the URL.

Note: Don't add ext- to the identifier value. For example: if the external identifier is ABCDE, then pass externalId=ACBCE and NOT ext-ABCDE when creating the object.

object or null

The reason(s) why the loan application or the draw request was declined.

object

Various loan timestamps.

metaData
object or null

Store any type of key/value pairs in the form of a JSON dictionary.

nickname
string
Default: "Draw"

The draw's nickname as displayed in the UI.

status
required
string

The current status of the loan. New loans must be created in pending, originated or declined status.

pending - the loan is in the application stage. Loan atOrigination details and terms can be changed (via API).

originated - the loan was signed by the borrower and originated by the lender. Loan atOrigination details cannot be changed. Originated loans do not start accruing interest until activated.

declined - an application was declined. This is a terminal state.

active - the loan is active. Most loans are expected to be active.

frozen - the loan is temporarily frozen. The loan will not accrue any interest, no payments can be processed and no notifications are sent to the borrower.

accelerated - the loan was accelerated. The loan will not accrue any additional interest and the entire balance is due.

chargedOff - the loan was charged off.

paidOff - the loan was successfully paid off.

canceled - the loan was canceled. Canceled loans are not shown in UI. This is a terminal state.

Enum: "pending" "originated" "declined" "active" "frozen" "accelerated" "chargedOff" "paidOff" "canceled"
isClosed
boolean

Indicates whether the Draw is closed. If true, new Purchases cannot be created.

object

This object contains loan details and terms as they were shown to a borrower at origination.

Responses
200

Success

post/people/{personId}/loans/{loanId}/draws
Request samples
application/json
{
  • "externalId": "string",
  • "declineReason": {
    },
  • "timestamps": {
    },
  • "metaData": { },
  • "nickname": "Draw",
  • "status": "pending",
  • "isClosed": true,
  • "atOrigination": {
    }
}
Response samples
application/json
{
  • "status": 0,
  • "message": "string",
  • "data": {
    }
}

Get draws

Securityoauth2 or bearerAuth or apiKeyHeader
Request
path Parameters
personId
required
string^ext-|^[A-Z]{2}-[A-Z0-9]+-[A-Z0-9]+|^\d+$

A Borrower's unique identifier, tied to a person or a business. Can be Peach or a lender's external identifier.

loanId
required
string^ext-|^[A-Z]{2}-[A-Z0-9]+-[A-Z0-9]+|^\d+$

The unique identifier of the Loan we wish to retrieve. Can be Peach or lender's external identifier.

query Parameters
statuses
Array of strings
Items Enum: "all" "active" "pending" "originated" "declined" "frozen" "accelerated" "chargedOff" "paidOff" "canceled"
isClosed
boolean

Filter for draws with isClosed value

isAmortized
boolean

Filter for amortized or non-amortized draws

startedBefore
string <date>

Filter for draws started before a date

limit
integer [ 1 .. 100 ]
Default: 25

The maximum count of results to retrieve.

startingAfter
string

Return results starting after the provided object identifier.

endingBefore
string

Return results ending before the provided object identifier.

Responses
200

Success

get/people/{personId}/loans/{loanId}/draws
Response samples
application/json
{
  • "count": 0,
  • "data": [
    ]
}

Get draw by ID

Securityoauth2 or bearerAuth or apiKeyHeader
Request
path Parameters
personId
required
string^ext-|^[A-Z]{2}-[A-Z0-9]+-[A-Z0-9]+|^\d+$

A Borrower's unique identifier, tied to a person or a business. Can be Peach or a lender's external identifier.

loanId
required
string^ext-|^[A-Z]{2}-[A-Z0-9]+-[A-Z0-9]+|^\d+$

The unique identifier of the Loan we wish to retrieve. Can be Peach or lender's external identifier.

drawId
required
string^ext-|^[A-Z]{2}-[A-Z0-9]+-[A-Z0-9]+|^\d+$

The draw identifier.

Responses
200

Success

get/people/{personId}/loans/{loanId}/draws/{drawId}
Response samples
application/json
{
  • "status": 0,
  • "message": "string",
  • "data": {
    }
}

Update draw

Securityoauth2 or bearerAuth or apiKeyHeader
Request
path Parameters
personId
required
string^ext-|^[A-Z]{2}-[A-Z0-9]+-[A-Z0-9]+|^\d+$

A Borrower's unique identifier, tied to a person or a business. Can be Peach or a lender's external identifier.

loanId
required
string^ext-|^[A-Z]{2}-[A-Z0-9]+-[A-Z0-9]+|^\d+$

The unique identifier of the Loan we wish to retrieve. Can be Peach or lender's external identifier.

drawId
required
string^ext-|^[A-Z]{2}-[A-Z0-9]+-[A-Z0-9]+|^\d+$

The draw identifier.

query Parameters
validate
boolean
Default: true

Validate the contact through an external API. This is only used for addresses currently.

force
boolean
Default: false

Override that enables the update of a borrower's address of a loan.

Request Body schema: application/json
nickname
string

A nickname the borrower gave the draw.

status
string

The current status of the loan. New loans must be created in pending, originated or declined status.

pending - the loan is in the application stage. Loan atOrigination details and terms can be changed (via API).

originated - the loan was signed by the borrower and originated by the lender. Loan atOrigination details cannot be changed. Originated loans do not start accruing interest until activated.

declined - an application was declined. This is a terminal state.

active - the loan is active. Most loans are expected to be active.

frozen - the loan is temporarily frozen. The loan will not accrue any interest, no payments can be processed and no notifications are sent to the borrower.

accelerated - the loan was accelerated. The loan will not accrue any additional interest and the entire balance is due.

chargedOff - the loan was charged off.

paidOff - the loan was successfully paid off.

canceled - the loan was canceled. Canceled loans are not shown in UI. This is a terminal state.

Enum: "pending" "originated" "declined" "active" "frozen" "accelerated" "chargedOff" "paidOff" "canceled"
object

This object contains loan details and terms as they were shown to a borrower at origination.

Responses
200

Success

put/people/{personId}/loans/{loanId}/draws/{drawId}
Request samples
application/json
{
  • "nickname": "string",
  • "status": "pending",
  • "atOrigination": {
    }
}
Response samples
application/json
{
  • "status": 0,
  • "message": "string",
  • "data": {
    }
}

Activate draw

Securityoauth2 or bearerAuth or apiKeyHeader
Request
path Parameters
personId
required
string^ext-|^[A-Z]{2}-[A-Z0-9]+-[A-Z0-9]+|^\d+$

A Borrower's unique identifier, tied to a person or a business. Can be Peach or a lender's external identifier.

loanId
required
string^ext-|^[A-Z]{2}-[A-Z0-9]+-[A-Z0-9]+|^\d+$

The unique identifier of the Loan we wish to retrieve. Can be Peach or lender's external identifier.

drawId
required
string^ext-|^[A-Z]{2}-[A-Z0-9]+-[A-Z0-9]+|^\d+$

The draw identifier.

query Parameters
sync
boolean
Default: false

Make the process synchronous.

Responses
200

Success

408

Request Timeout

post/people/{personId}/loans/{loanId}/draws/{drawId}/activate
Response samples
application/json
{
  • "status": 0,
  • "message": "string",
  • "data": {
    }
}

Get draw credit limit

Securityoauth2 or bearerAuth or apiKeyHeader
Request
path Parameters
personId
required
string^ext-|^[A-Z]{2}-[A-Z0-9]+-[A-Z0-9]+|^\d+$

A Borrower's unique identifier, tied to a person or a business. Can be Peach or a lender's external identifier.

loanId
required
string^ext-|^[A-Z]{2}-[A-Z0-9]+-[A-Z0-9]+|^\d+$

The unique identifier of the Loan we wish to retrieve. Can be Peach or lender's external identifier.

drawId
required
string^ext-|^[A-Z]{2}-[A-Z0-9]+-[A-Z0-9]+|^\d+$

The draw identifier.

query Parameters
effectiveDate
string <date>
Responses
200

Success

get/people/{personId}/loans/{loanId}/draws/{drawId}/credit-limit
Response samples
application/json
{
  • "status": 0,
  • "message": "string",
  • "data": {
    }
}

Update draw credit limit

Securityoauth2 or bearerAuth or apiKeyHeader
Request
path Parameters
personId
required
string^ext-|^[A-Z]{2}-[A-Z0-9]+-[A-Z0-9]+|^\d+$

A Borrower's unique identifier, tied to a person or a business. Can be Peach or a lender's external identifier.

loanId
required
string^ext-|^[A-Z]{2}-[A-Z0-9]+-[A-Z0-9]+|^\d+$

The unique identifier of the Loan we wish to retrieve. Can be Peach or lender's external identifier.

drawId
required
string^ext-|^[A-Z]{2}-[A-Z0-9]+-[A-Z0-9]+|^\d+$

The draw identifier.

Request Body schema: application/json
creditLimitAmount
required
number <float>

The credit limit amount.

caseId
string

An identifier for an existing case.

Responses
200

Success

post/people/{personId}/loans/{loanId}/draws/{drawId}/credit-limit
Request samples
application/json
{
  • "creditLimitAmount": 0,
  • "caseId": "string"
}
Response samples
application/json
{
  • "status": 0,
  • "message": "string",
  • "data": {
    }
}

Preview draw amortization

Securityoauth2 or bearerAuth or apiKeyHeader
Request
path Parameters
personId
required
string^ext-|^[A-Z]{2}-[A-Z0-9]+-[A-Z0-9]+|^\d+$

A Borrower's unique identifier, tied to a person or a business. Can be Peach or a lender's external identifier.

loanId
required
string^ext-|^[A-Z]{2}-[A-Z0-9]+-[A-Z0-9]+|^\d+$

The unique identifier of the Loan we wish to retrieve. Can be Peach or lender's external identifier.

Request Body schema: application/json
purchaseAmount
required
number <float>

The total amount of the purchases for preview.

duration
integer <int32>

The new duration of the draw as a number of paymentFrequency of the line of credit. The caller needs to pass one of the values only, duration or recurringPaymentAmount.

recurringAmount
number <float>

The recurring payment amount. The system will calculate the needed duration. Pass one of the values only, duration or recurringPaymentAmount.

startDate
string <date>

The start date of the draw. The system will assume today if not specified.

drawFee
number <float>

The draw fee.

serviceFeeAmount
number <float>

The service fee amount that will be charged recurrently. Only required if the service fee chargeLogic is [loanPeriod, everyOtherLoanPeriod, calendarPeriod] and amountLogic is configured as type=passedAtOrigination. In all other cases, the system will calculate the fee based on pre-configured logic.

serviceFeeCapAmount
number <float>

The maximum amount of the service fee that can be charged over the life of the loan or draw. Only required if the service fee chargeLogic is [loanPeriod, everyOtherLoanPeriod, calendarPeriod] and capLogic is configured as type=capPassedAtOrigination. In all other cases, the system will calculate the fee based on pre-configured logic.

Responses
200

Success

408

Request Timeout

post/people/{personId}/loans/{loanId}/amortize-preview
Request samples
application/json
{
  • "purchaseAmount": 0,
  • "duration": 0,
  • "recurringAmount": 0,
  • "startDate": "2019-08-24",
  • "drawFee": 0,
  • "serviceFeeAmount": 0,
  • "serviceFeeCapAmount": 0
}
Response samples
application/json
{
  • "status": 0,
  • "message": "string",
  • "data": {
    }
}

Amortize draw

Securityoauth2 or bearerAuth or apiKeyHeader
Request
path Parameters
personId
required
string^ext-|^[A-Z]{2}-[A-Z0-9]+-[A-Z0-9]+|^\d+$

A Borrower's unique identifier, tied to a person or a business. Can be Peach or a lender's external identifier.

loanId
required
string^ext-|^[A-Z]{2}-[A-Z0-9]+-[A-Z0-9]+|^\d+$

The unique identifier of the Loan we wish to retrieve. Can be Peach or lender's external identifier.

drawId
required
string^ext-|^[A-Z]{2}-[A-Z0-9]+-[A-Z0-9]+|^\d+$

The draw identifier.

Request Body schema: application/json
previewMode
boolean
Default: false

In previewMode=true, the draw doesn't change and no changes are saved to the database.

duration
integer <int32>

The new duration of the draw as a number of paymentFrequency of the line of credit. Only applicable if the draw needs to be amortized. The caller needs to pass one of the values only, duration or recurringPaymentAmount.

recurringAmount
number <float>

The recurring payment amount. The system will calculate the needed duration. Pass one of the values only, duration or recurringPaymentAmount.

Responses
200

Success

post/people/{personId}/loans/{loanId}/draws/{drawId}/amortize
Request samples
application/json
{
  • "previewMode": false,
  • "duration": 0,
  • "recurringAmount": 0
}
Response samples
application/json
{
  • "status": 0,
  • "message": "string",
  • "data": {
    }
}

Close draw

Securityoauth2 or bearerAuth or apiKeyHeader
Request
path Parameters
personId
required
string^ext-|^[A-Z]{2}-[A-Z0-9]+-[A-Z0-9]+|^\d+$

A Borrower's unique identifier, tied to a person or a business. Can be Peach or a lender's external identifier.

loanId
required
string^ext-|^[A-Z]{2}-[A-Z0-9]+-[A-Z0-9]+|^\d+$

The unique identifier of the Loan we wish to retrieve. Can be Peach or lender's external identifier.

drawId
required
string^ext-|^[A-Z]{2}-[A-Z0-9]+-[A-Z0-9]+|^\d+$

The draw identifier.

Request Body schema: application/json
caseId
string

An identifier for an existing case.

closeRequestedByBorrower
boolean
Default: false

Set to true if a borrower requested to close the account.

Responses
204

Success no content

post/people/{personId}/loans/{loanId}/draws/{drawId}/close
Request samples
application/json
{
  • "caseId": "string",
  • "closeRequestedByBorrower": false
}

Cancel draw

The cancel loan endpoint will change the status of a draw to canceled, and trigger any cancellation-related logic.

An active draw can be canceled if it has no active purchases.

Securityoauth2 or bearerAuth or apiKeyHeader
Request
path Parameters
personId
required
string^ext-|^[A-Z]{2}-[A-Z0-9]+-[A-Z0-9]+|^\d+$

A Borrower's unique identifier, tied to a person or a business. Can be Peach or a lender's external identifier.

loanId
required
string^ext-|^[A-Z]{2}-[A-Z0-9]+-[A-Z0-9]+|^\d+$

The unique identifier of the Loan we wish to retrieve. Can be Peach or lender's external identifier.

drawId
required
string^ext-|^[A-Z]{2}-[A-Z0-9]+-[A-Z0-9]+|^\d+$

The draw identifier.

query Parameters
force
boolean
Default: false

Override that enables the cancellation of active loans not managed by Peach. Requires the loan:cancel.force permission. Forced cancellation should only be used for testing purposes.

Request Body schema: application/json
cancellationReason
string

The cancellation reason:

technicalIssue - loan was created due to a technical issue.

wrongLoanTerms - loan was created with the wrong terms.

wrongBorrower - loan was created on the wrong borrower.

other - for any other reason requiring cancellation.

Enum: "technicalIssue" "wrongLoanTerms" "wrongBorrower" "other"
Responses
204

Success no content

post/people/{personId}/loans/{loanId}/draws/{drawId}/cancel
Request samples
application/json
{
  • "cancellationReason": "technicalIssue"
}