API – Logging a Payment

This request will only log a payment. Logging a payment is simply making a record of a transaction that occurred on a loan. This will not pull any money from a card or an account, but it will create a record of a transaction where money was exchanged.

Introduction

You can log a payment through the UI or through the API. This article explains how to do so using the API.

Like mentioned above, this article covers Log Only payments—payments that are logged in LoanPro but with no funds transferred from the borrower. For example, if a borrower pays in cash, with a check, or with a card that is processed externally from LoanPro's Loan Management System (LMS). This article doesn't cover payments that are split or duplicated across linked loans. Lastly, this this article assumes you already have an existing loan. If not, you can learn how to do so by reading Creating a Loan with the API.

Request endpoint

To log a payment on a loan, you will need to send a PUT request to the URL of the desired loan. For example, to log a payment on the loan with the id 515, the URL would look as follows.

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

Remember to replace "515" with the ID of your loan when you try this yourself.

Request Body

Below is an example of a payment request body.

{
  "Payments": {
    "results": [
      {
"selectedProcessor": "0",
"paymentMethodId": 3,
"early": 0,
"amount": "10",
"date": "2017-05-26",
"info": "05/26/2017 Credit/Debit Card",
"paymentTypeId": 1,
"active": 1,
"resetPastDue": 0,
"payoffPayment": false,
"_saveProfile": 0,
"extra": "payment.extra.tx.principal",
"cardFeeType": "loan.cardfee.types.1",
"cardFeeAmount": "0",
"cardFeePercent": "0",
"__logOnly": true,
"payoffFlag": 0
      }
    ]
  }
}

  • selectedProcessor – The ID of selected processor (should be set to zero when logging a payment because no funds are being transferred)
  • paymentMethodId – The ID of the payment method to use for the payment
    • Determined by tenant settings (Settings > Loan > Payments > Methods)
  • early – Early payment setting
  • 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)
  • active – Should be a 1
  • resetPastDue – Whether the payment should reset the amount past due (0 = no, 1 = yes)
  • payoffPayment – Whether it is a payoff payment (True or False)
  • _saveProfile - Set this to “1” if specifying a new payment process you want to save. Zero results in a 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.
  • 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
  • __logOnly – Set to true to only log the payment
  • 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.

  • 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 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 – Can be set to describe the changes made to the payment
  • echeckAuthType – The e-check authorization type for e-check payments. See Payment Collections for detailed information.
  • status – The status of the payment (default: “None”)
  • sortDate – The date (as an int) to sort it by (automatically set)
  • chargeOffRecovery – Whether 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 for detailed information.
  • order – A tie-breaker for the ordering (automatically set)
  • _notEditable – Whether it should be editable (default is “false”)

StackBlitz Example

What is StackBlitz?
Many of our articles use StackBlitz examples like this. These examples are like a window into a REST client right here in your browser. The window is divided into two sides. Developers can use info in the editor on the left side when configuring your API integration, and the right side shows a preview of a REST client. Click 'Preview' on the bottom, and you'll only see the REST client.

The entire request is set up and connected to a demo API tenant in LMS. Just scroll down and click 'send' and you should get a 200 response. If you want to get some practice with error codes, try editing the endpoint, headers, method and payload to see what responses you get.


How did we do?


Powered by HelpDocs (opens in a new tab)