Payments represent how a constituent paid for a transaction.

Types of Payments

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

Your app can process payments live through the NeonCRM API by sending card or ACH information to NeonCRM 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 NeonCRM and pass a record of the payment to NeonCRM 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 NeonCRM:

  • 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 NeonCRM API supports 3 types of payment gateways for processing card and ACH payments through the API:

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

NeonPay 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 NeonCRM. Third-party gateways require the card or ACH information to be sent as part of the NeonCRM API request, which will require your app to handle this information on its servers before sending to NeonCRM.

NeonPay is the recommended solution for most applications.


NeonPay is the most common and most supported gateway among NeonCRM organizations, and is the recommended payments solution for all integrated apps.

Processing payments through NeonPay 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 NeonPay

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


1. Obtain a NeonPay public API key and merchant ID

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

The NeonPay key is not the same as your NeonCRM API key and will only be used for NeonPay.js. Contact to get a NeonPay key.

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


2. Implement the NeonPay.js payment fields

Payment forms integrated with NeonPay must use the NeonPay.js library. This JavaScript library dynamically loads the payment fields into a secure <iframe> element that communicates directly with the NeonPay 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 NeonCRM API will not accept payment information for NeonPay payments that have been entered into custom input fields.

3. Send the NeonPay token to NeonCRM

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 NeonCRM. Once you obtain a token from NeonPay.js, use the token parameter in the payments object in NeonCRM API requests to send the token to NeonCRM for processing. If you have previously implemented a NeonCRM payment form with a third-party gateway, you will need to swap out the payment fields previously sent with your request for the NeonPay 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 NeonCRM.

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

Third-Party Gateways

NeonCRM supports a variety of third-party gateways, which can be used for online payment processing. However, unlike NeonPay 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 NeonCRM for processing. This solution is not recommended for integrations that will be used across multiple NeonCRM systems.

PCI Compliance

Processing payments through third-party gateways in the NeonCRM 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.)