Payments

Payments represent how a constituent paid for a transaction.

Types of Payments

Depending on your needs, there are two types of payments in Neon CRM: online and offline.

Your app can process payments live through the Neon CRM API by sending card or ACH information to Neon CRM be processed by the payment gateway linked to the organization’s system. These are known as "online" payments. Alternatively, your app can manage payments outside of Neon CRM and pass a record of the payment to Neon CRM with the transaction. These are referred to as "offline" payments.

An online or offline payment must be passed with any transaction that has a non-zero amount.

Tender Types

The required fields for payments vary depending on the type of payment, known as the tender type. There are 9 standard tender types in Neon CRM:

  • Cash
  • Credit Card (Offline-No Charge)
  • Check
  • Credit Card (Online)
  • In-Kind
  • Wire Transfer
  • PayPal
  • E-Check/ACH
  • Other

Users can also create custom tender types.

 Processing Online Payments

The Neon CRM API supports 3 types of payment gateways for processing card and ACH payments through the API:

  1. Neon Pay
  2. Neon Payment Processing
  3. Third-party gateways

Neon Pay and Neon Payment Processing both support client-side tokenization, which requires the implementation of JavaScript library to tokenize payment information in the browser before sending the token to Neon CRM. Third-party gateways require the card or ACH information to be sent as part of the Neon CRM API request, which will require your app to handle this information on its servers before sending to Neon CRM.

Neon Pay is the recommended solution for most applications.

Neon Pay

Neon Pay is the most common and most supported gateway among Neon CRM organizations, and is the recommended payments solution for all integrated apps.

Processing payments through Neon Pay requires client-side tokenization through NeonPay.js. With NeonPay.js, you can implement modern, customizable UI components for accepting card and ACH payments and tokenize sensitive payment information for securely handling payments in your app.

NeonPay.js Form

Setting up Neon Pay

Whether you are migrating from an existing Neon CRM payments form or setting up a new payments form, you will need to follow the steps below to integrate your payments flow with Neon Pay.

 

1. Obtain a Neon Pay public API key and merchant ID

Working with Neon Pay on payment forms requires a public API key and Neon Pay merchant ID.

The Neon Pay key is not the same as your Neon CRM API key and will only be used for NeonPay.js. Contact support@neoncrm.com to get a Neon Pay key.

Your Neon Pay merchant ID can be obtained by requesting the payment gateway settings through the Neon CRM API. If you are working in a Neon CRM system with multiple Neon Pay gateways, we recommend contacting your Neon CRM account representative or technical support to discuss this scenario.

 

2. Implement the NeonPay.js payment fields

Payment forms integrated with Neon Pay must use the NeonPay.js library. This JavaScript library dynamically loads the payment fields into a secure <iframe> element that communicates directly with the Neon Pay server, allowing your app to avoid ever handling card or ACH data.

If you have previously implemented your own input fields for receiving payment data, you must swap these out for the fields generated by NeonPay.js. The Neon CRM API will not accept payment information for Neon Pay payments that have been entered into custom input fields.

3. Send the Neon Pay token to Neon CRM

Using the createToken() method in NeonPay.js, generate a token for the payment information entered into the payment fields.

A token is a cryptographically secure representation of all the payment information entered by the user, and it allows your app to easily manage payment information without the overhead required to securely handle actual payment data.

Generating a token does not process the payment, and in fact, the token is not tied to any specific payment or transaction until it is sent to Neon CRM. Once you obtain a token from NeonPay.js, use the token parameter in the payments object in Neon CRM API requests to send the token to Neon CRM for processing. If you have previously implemented a Neon CRM payment form with a third-party gateway, you will need to swap out the payment fields previously sent with your request for the Neon Pay token.

Neon Payment Processing

Neon Payment Processing is a first-party gateway built on Stripe and uses Stripe Elements for client-side tokenization.

Neon Payment Processing is a legacy product

Neon Payment Processing is a legacy product and only supported for organizations already using this gateway. This gateway is not available to new organizations signing up for Neon CRM.

As with Neon Pay, once you obtain a token from Stripe.js, use the token parameter in the payments object of Neon CRM API requests to submit the token to Neon CRM for processing.

Third-Party Gateways v1 only

Neon CRM supports a variety of third-party gateways, which can be used for online payment processing in API v1. However, unlike Neon Pay and Neon Payment Processing, third-party gateways are implemented without client-side tokenization, meaning you must handle credit card information in your app to pass to Neon CRM for processing. This solution is not recommended for integrations that will be used across multiple Neon CRM systems.

PCI Compliance

Processing payments through third-party gateways in the Neon CRM will require your app server to handle card information. Note that the handling of payment data has implications for how your app maintains compliance with PCI requirements for payment processing online. Make sure you review and understand these obligations before proceeding with this solution.

API Reference

API methods related to payments.

API v1

(See transaction methods for documentation on submitting payments with transactions.)