API – Processing a Payment

General

Processing payments can be done through 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.

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: 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
}
    ]
  }
}

  • selectedProcessor – Id of selected processor
    • Determined by tenant settings (Settings > Company > Merchant > PCI Wallet). 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. 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. 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 > PCI Wallet). 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 Fields that are available:

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 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)