Managing Customers and Invoices

HelcimPay.js offers three distinct ways to handle invoice and customer records, ensuring your records stay accurate and your customers stay happy.

Manage invoice information

HelcimPay.js allows you to manage invoice records through your checkout session, ensuring accurate records for payments that your customers process.

Create new invoice records

HelcimPay.js supports invoice request objects to allow you to create new invoices as a record of the payment being processed. When you use the invoice request functionality to create a new record, the payment amount and the total of your invoice line items must be the same.

This requirement ensures that the invoice record created accurately reflects a payment that your customer has already agreed to. Because this method creates a permanent record of a specific transaction, the amounts must match perfectly to maintain your record integrity.

Initializing your checkout session with an invoice request object allows you to set a range of details, including a specific invoice number, line items, taxes, shipping, and more.

Link existing invoice records

If you are linking an invoice that already exists in the Helcim system using the existing invoice number, the payment amount you process through HelcimPay can be different from the original invoice amount. This flexibility is helpful when a customer takes an action that modifies the final total, such as:

  • Adding a tip for great service
  • Applying a last-minute discount in your front-end system
  • Adjusting for partial payments

In these cases, our system allows the processed amount to vary from the linked record to accommodate real-world business needs.

Automated invoice generation

If you do not pass an invoice request or link an existing record, Helcim takes care of it for you. We will create a new invoice to serve as a record of the payment and return that invoice number in the HelcimPay response. These automatically generated invoices follow your default invoice settings for prefixes and numbering.


Manage customer information

HelcimPay.js also allows you to manage customer data seamlessly during the transaction. You can choose how to handle customer profiles based on your specific workflow.

Create new customer profiles

Using the customer request object in your HelcimPay.js initialize request, you can pass customer details such as name, email, and address, that Helcim will use to create a new customer profile in the Helcim system. The card or banking details used for the payment will be stored on that customer, which is a great way to build your database and simplify future checkouts for your customers by linking that existing customer.

Link existing customer records

If a customer already has a profile in your Helcim account, you can link their unique customer code to the checkout session. This ensures that the payment is correctly assigned to their existing record, giving you a clear view of their lifetime value, while also loading any previously used payment methods to speed up their checkout flow.

Guest checkouts

When no customer information is provided, the transaction processes as a guest checkout. While this keeps the checkout quick, we recommend capturing customer details whenever possible to help you manage subsequent payment actions, such as refunds or chargebacks, more effectively.