API – Processing a Payment

Introduction

Processing a payment is integral to your lending operation, so LoanPro lets you do it either in the UI or though the API. Processing payments can be done completed via the API by sending a PUT request to the loan on which you wish to process the payment.

This article is very similar to API – Logging a Payment (payments that will only be logged in LoanPro, but no funds will be transferred from the borrower). Please refer to that article if you are only logging a payment. This article also won’t cover payments that are split or duplicated across linked loans. It also assumes you already have an existing loan. If not, see Creating a Loan with the API.

Lastly, you can try this request yourself on our ReadMe site:

To process a payment on a loan, you will need to send a PUT request to the URL of the desired loan. For example, to process a payment on the loan with the id 515, the URL would be:

PUT https://loanpro.simnang.com/api/public/api/1/odata.svc/Loans(515)

Request Body

Below is a sample request for processing a payment

{
  "Payments": {
    "results": [
      {
  "selectedProcessor": "1",
  "paymentMethodId": 3,
  "early": 0,
"echeckAuthType": "payment.echeckauth.WEB",
"amount": "10",
"date": "2017-05-26",
"info": "05/26/2017 Credit/Debit Card",
"paymentTypeId": 1,
"active": 1,
"resetPastDue": 0,
"payoffPayment": false,
"CustomFieldValues":{
"results":[
{
"customFieldId": 38,
"customFieldValue": "132"
}
]
},
"_saveProfile": 0,
"extra": "payment.extra.tx.classic",
"__processorName": "{\"id\":\"115\",\"key\":\"anet\",\"name\":\"asdf\",\"default\":\"0\"}",
"paymentAccountId": 371,
"chargeFeeType": "loan.cardfee.types.2",
"chargeFeeAmount": "10",
"chargeFeePercentage": "5",
"payoffFlag": 0
}
    ]
  }
}

Variable

Description

selectedProcessor

Id of selected processor. (Determined by tenant settings Settings > Company > Merchant > SecurePayments. Choose the type of processor (Debit/Credit Card, Bank Account/ACH (USA), or Bank Account/EFT (Canada)), then find the ID next to the processor name.)

paymentMethodId

The ID of the payment method to use for the payment. (Determined by tenant settings Settings > Loan > Payments > Methods. Find the ID on the left hand side of the payment method being used. For more information on payment methods see the article Add a New Payment Method.)

early

Assigns the Early Payment setting (0=No, 1=Yes). For more information see the Early Payment section of the article on how to Log a Payment.

echeckAuthType

The echeck authorization type for echeck payments. (See Payment Collections.)

amount

The amount of the payment.

date

The date the payment will be applied on (format YYYY-MM-DD).

info

Human readable information describing the payment.

paymentTypeId

The ID of the Payment Type (waterfall application of the payment). Determined by tenant settings Settings > Loan > Payment > Types. Find the ID on the left hand side of the payment type being used.

active

Should be a 1

resetPastDue

Whether or not the payment should reset the amount past due (0 = no, 1 = yes)

payoffPayment

Whether or not it is a payoff payment (True or False)

CustomFieldValues

Any custom field values for the payment. Make sure you include the customFieldId and the customFieldValue, which can be found by navigating to Settings > Loan > Custom Fields > Custom. This is an optional object. If you don't want to include a custom field, simply remove the object. (See API – Custom Fields.)

_saveProfile

Set this to “1” if specifying a new payment process you want to save. Zero is do not save.

extra

How extra is applied. (Must match the Loan Setup Between Periods/Transactions value). See Payment Collections for detailed information and available options.

__processorName

This is a stringified-JSON object with the ID, key, name, and default field of the payment processor. (Determined by tenant settings Settings > Company > Merchant > SecurePayments. Choose the type of processor (Debit/Credit Card, Bank Account/ACH (USA), or Bank Account/EFT (Canada)), then find the ID next to the processor name. The Key is the type of processor being used and is "anet" for credit/debit cards, "nacha" for bank accounts processed through NACHA, and "echeck" for bank accounts processed through an ACH processor. The Name is the processor being used and is found in the same location as the ID. The Default corresponds to the default payment processor assigned under the company settings. Assign a value of "1" if you are using the default processor, and "0" if you are using any processor that is not the default.)

paymentAccountId

Determined by customer's payment profile inside of a loan Loan > Customer > Payment Profiles. Find the ID on the left hand side of the payment profile being used.

cardFeeType

The type of the card fee to apply. See Payment Collections for detailed information.

cardFeeAmount

The flat amount of the card fee

cardFeePercent

The percentage of the card fee

payoffFlag

Flag for payoff payments. (0 = no, 1 = yes)

Other Available Fields

There are many other fields available, most of which are automatically set by the system. This section will cover them. Fields that are automatically set do not need to be sent by an application using the API, rather, they are evaluated on the server and sent back to give more information about a payment.

Variable

Description

id

The ID of the payment (automatically set)

displayId

The display ID of the payment (how it will be identified in the system; automatically set)

priorcutoff

Whether or not it is prior to the tenant cutoff date (automatically set)

beforeAmountPastDue

The amount past due before the payment (automatically set)

beforeDaysPastDue

The days past due before the payment (automatically set)

beforePayoff

The payoff before the payment (automatically set)

beforePrincipal

The principal balance before the payment (automatically set)

comments

To be set for any changes to payments; describes the changes made to the payment

status

The status of the payment (default: “None”)

sortDate

The date (as an int) to sort it by (automatically set)

chargeOffRecovery

Whether or not this is a charge-off recovery payment (0 or 1); set to 1 to make a charge-off recovery payment

CustomFieldValues

Any custom field values for the payment. See API – Custom Fields

order

A tie breaker for the ordering (automatically set)

_notEditable

Whether or not it shouldn’t be editable (default is “false”)

When this request is sent, the server will attempt to process the payment.  If it succeeds, then the payment will be logged, otherwise an error will appear in the System Notes.


How did we do?


Powered by HelpDocs (opens in a new tab)