Payment API

The Payment API allows you to process credit card payments online, through your existing website or application. Payment types include Purchase, Preauthorization, Capture, Verify, Refund, Reverse, and ACH Withdraw.

A successful payment processed through the Payment API will create a transaction object in the Helcim system. Where an existing customerCode or invoiceNumber was not associated with the payment, new ones will be created and returned in the response.

Payment API Endpoints

Review the following documentation for specific payment methods available through the Payment API.

Payment API Functionality

Idempotency

All payments processed through the Payment API require an Idempotency key. We recommend reading our guide on idempotency keys for payments to understand how these function and how to create them.

Suspected Duplicate Transactions

In order to protect Helcim merchants against accidental duplicate transactions, the Helcim system has functionality built in that will automatically decline transactions that are potentially duplicates. This check was put in place to avoid duplicate transactions processed through Helcim services like the Virtual Terminal, the Helcim App, and the Helcim API.

How does the Suspected Duplicate Check Work?

The suspected duplicates process is a secondary process to Idempotency Keys. This check will trigger even in instances where the flagged duplicate transaction has a different idempotency key from the original transaction.

The Suspected Duplicate check will review any successful transactions within 5 minutes where the cardNumber, cardholderName, and amount match a previous transaction within that time period.

Suspected duplicate transactions will have a transaction status of "DECLINED" returned in the transaction response object, with an errors message stating "Transaction Declined: DECLINED - Suspected duplicate transaction in the last 5 minutes.".

// Example payment declined due to failing suspected duplicate check

{
	"transactionId": 21071575,
  "dateCreated": "2024-07-13 16:07:54",
  "cardBatchId": 0,
  "status": "DECLINED",
  "user": "Helcim System",
  "type": "purchase",
  "amount": 10.99,
  "currency": "USD",
  "avsResponse": "",
  "cvvResponse": "",
  "errors": "Transaction Declined: DECLINED - Suspected duplicate transaction in the last 5 minutes."
}

Processing Terminals

What is a Processing Terminal?

A terminal is what communicates credit card transaction data between the Helcim system and the card networks and issuing banks. It holds certain settings such as the processor network, currencies, settlement times and other card processing configurations.

All transactions processed through the Helcim system will eventually go through the merchants processing terminal regardless of where that transaction originated.

Where Can I Find My Terminal Information?

Login to your Helcim account, and under the All Tools menu, select Payments, and click on Terminals. You will see a list of all the terminals available and their currency.

The Helcim API will process on the default terminal for your account.

📘

By clicking on a specific terminal, you will be able to view its unique ID.

Processing with Multiple Currencies

For Canadian based merchants who are set up to accept both CAD and USD currencies, you can determine the currency and terminal to be processed on by sending the relevant currency value with your payment request.

Field NameTypeDescription
currencyString (3)The currency that you want to process. (e.g. CAD, USD)

📘

API Default Behavior

If you have both a CAD and USD processing terminal on your account, the Helcim system will process on the relevant terminal based on the currency passed in the request.