Skip to main content

Every Helcim request requires ipAddress.
Miss it and nothing reaches the bank.

Helcim is built around transparent pricing — you see exactly what the card network charges versus what Helcim adds on top. Their REST API supports direct card charges, saved card tokens, and hosted payment pages. Explore the full payment lifecycle here without registering a merchant account.

Pricing model

Interchange+

Card storage

Card tokens

To start

0 signup

Helcim is a Canadian payment processor focused on small and medium businesses with a transparent interchange-plus pricing model. Unlike flat-rate processors, Helcim's API response includes the interchange fee (set by Visa/Mastercard), the processor markup (Helcim's fee), and the total rate charged — all as separate fields. This lets you show merchants exactly what they are paying for each transaction.

The ipAddress field is required on every payment request and trips up most integrations. Helcim uses it as part of its fraud prevention — a missing IP address returns a validation error before the request reaches the bank. You need to pass the customer's real IP from your server, not a placeholder. For server-side integrations, this means reading the IP from the incoming HTTP request and forwarding it to Helcim.

Card tokenization is one of Helcim's main features for repeat billing. Charge a card once with saveToVault: true, get back a cardToken, and use that token for all future charges. The token scope is tied to your merchant account — tokens from one merchant account cannot be used in another. This mock lets you test the full tokenize-then-charge cycle without creating a Helcim merchant account.

What is interchange-plus pricing?

Every card transaction involves two separate fees. The first is interchange — the fee paid to the cardholder's bank, set by Visa or Mastercard. It varies by card type, reward level, and whether the card is present. The second is the processor markup — what Helcim charges for its service.

Flat-rate processors bundle both into one number. You can never tell how much went to the bank versus the processor. Interchange-plus splits them every time — you see exactly what you're paying and to whom.

This matters most at volume. A debit card carries a lower interchange rate than a premium rewards card — with interchange-plus, you pay less for cheaper cards automatically. Flat-rate processors pocket that difference.

Rate visibility comparison

Flat-rate processor

2.6%

total rate — no breakdown

No visibility into how the rate is split

Helcim interchange-plus

1.95%

interchange

+

0.25%

processor

=

2.20%

total

Card tokenization

Helcim stores card details server-side and returns a cardToken in every transaction response. Use the token for future charges instead of asking the customer to re-enter their card. Tokens are scoped to your merchant account and cannot be transferred.

Save cardget token

First charge returns cardToken for this card.

Charge saveduse token

Pass cardToken instead of cardData on future charges.

Update cardnew token

Replacing a card issues a new token — update your records.

Delete cardinvalidate token

Token becomes invalid immediately on deletion.

curl -X POST https://mockgateway.dev/api/base/helcim/init \
  -H "Authorization: Bearer YOUR_MOCK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 4999,
    "currency": "USD",
    "ipAddress": "203.0.113.42",
    "cardData": {
      "cardNumber": "4111111111111111",
      "cardExpiry": "1228",
      "cardCVV": "123",
      "cardHolderName": "Jane Smith"
    },
    "customerCode": "CUST-00412",
    "orderNumber": "ORD-7731"
  }'

Request parameters

Sent to POST /api/base/helcim/init

Request parameters
ParameterTypeRequiredDescription
amountnumberrequired

Transaction amount as a decimal.

e.g. 100.99
currencystringrequired

Three-letter ISO currency code.

e.g. CAD
ipAddressstringrequired

The customer's IP address, which Helcim requires on every purchase.

e.g. 192.168.1.1
cardData.cardTokenstringrequired

A stored card token, or full card details in its place.

e.g. 5454HCMXTEST5454
invoiceNumberstringoptional

Your own invoice reference.

e.g. INV2022

Response fields

Response fields
FieldTypeDescription
transactionIdintegerHelcim transaction ID
transactionTypestringTransaction type
statusenumTransaction status
authCodestringAuthorization code
created_atdatetime

Frequently asked questions

Other gateway templates

Looking for a different provider?