Skip to main content
Skip table of contents

Tokenization & Recurring Payments - Canada

Tokenization gives merchants the ability to securely save payment information. By tokenizing a customer's payment method, merchants can schedule future card-on-file charges and create recurring payment plans.

Tokens save the payment method while fully protecting the cardholder’s sensitive data, simplifying your PCI compliance requirements. Tokens do not expire. 

Payrix provides the following resources for implementing tokenization and card-on-file/recurring payments:

This page includes the following information about Payrix’s tokenization and recurring payments solutions:


How to Tokenize a Customer’s Payment Method

There are two ways in which a cardholder’s payment data can be saved for CoF & recurring payment transactions:

Creating a Customer in the Payrix Portal

Merchants have the ability to tokenize a cardholder’s payment method data directly in the Portal via the Customers section on the Dashboard menu. When creating a customer, the Merchant will be prompted to enter the cardholder’s personal information, including name, address, and email address.

Saving address information on a customer is not technically required to create a token. However, it is strongly recommended that the customer’s address be saved to increase successful recurring and card-on-file transactions when using the token.

Once a customer is created, a Merchant can attach a saved payment method (token) to that customer for future CoF or recurring billing.

A Merchant can also attach multiple tokens to a customer if they have more than one payment method that will be used for future CoF and recurring payment transactions.

For our full step-by-step instructions for creating a Customer & attaching a tokenized payment method, please visit our Portal User Guide.

Tokenizing a Payment Method Via the API

A customer’s payment method can also be saved (tokenized) via the Payrix API. This is done by sending a POST request to the /tokens endpoint. Within the BODY of the request, you will include the customer’s personal information (name, address etc.), as well as the payment method (card/account number, exp. date etc.) that you would like to tokenize.

Technically, the customer’s address is not required when creating a token. However, we strongly recommend including it to prevent future payments from being blocked/declined due to AVS mismatch.

Please visit our API Reference for optional fields & additional information.

Location

Syntax

URL

CODE
[POST]https://api.payrixcanada.com/tokens

HEADER

CODE
Content-Type:application/json
APIKEY:{{private_api_key}}

BODY

CODE
{
	"customer":{
		"first":"John",
		"last":"Smith",
		"email":"john@example.com",
		"address1":"123 Main Street",
		"city":"New York",
		"province":"NY",
		"postalCode":"12345",
	},
	"payment":{
		"number":"4242424242424242",
		"cvv":"123"
	},
	"expiration":"0120"
}

Creating a Token Simultaneously As You Submit a Transaction in the API

You also have the ability to tokenize a customer’s payment method simultaneously as you submit a transaction via the API. To do this, you will need to include the customer’s personal information within the BODY of your POST request to the /txns endpoint.

Please note, the syntax for creating a token simultaneously as you submit a transaction differs slightly for card payments and eCheck payments (as shown in the sample code below).

Location

Syntax

URL

CODE
[POST]https://api.payrixcanada.com/txns

HEADER

CODE
Content-Type:application/json
APIKEY:{{private_api_key}}

BODY (for card payments)

CODE
{
    "merchant": "t1_mer_59efbf4e69b27a4760b885d",
    "type": "1",
    "origin": "2",
    "token": {
        "payment": {
            "number": "4242424242424242",
            "cvv": "123",
            "expiration": "1020"
        },
        "customer": {
          "first": "John",
          "last": "Smith",
          "email":"john@example.com",
          "address1":"123 Main Street",
          "city":"New York",
          "province":"NY",
          "postalCode":"12345",
          }
    },
    "total": "10000"
}

BODY (for eCheck payments)

CODE
{
	"merchant": "t1_mer_59efbf4e69b27a4760b885d",
	"type": "7",
	"origin": "2",
	"token": {
		"payment": {
			"method": "8",
			"number": "123456789",
			"routing": "123456789"
		},
		"customer": {
			"first": "First",
			"last": "Last",
			"email":"john@example.com",
			"address1":"123 Main Street",
			"city":"New York",
			"province":"NY",
			"postalCode":"12345",
		}
	},
	"total": "10000"
}

Recurring Payments

One of the key features of tokenizing a payment method is the ability for Merchants to use it to schedule recurring payments. This solution gives a Merchant the ability to charge their customer’s tokenized payment method in their desired amount and at their desired frequency. For example, Merchants can utilize recurring payments to charge their customers a monthly fee or for billing on a subscription-based business model.

Recurring payments can be set up directly in the Portal, by creating a recurring payment plan & subscribing your desired customer/s to that plan.

Setting Up Recurring Payments

You can find step-by-step instructions for setting up recurring payment plans & subscriptions here.

Setting up recurring payments within Payrix consists of three components:

Creating a Customer

In order to set up recurring payments, you must first save the cardholder’s personal & payment information by creating a customer (with a token). You can read more about creating a customer here.

In the Portal, you have the ability to create recurring payments using a new payment method, and this will save the customer simultaneously as you subscribe them to a recurring payment plan.

Recurring Payment Plans

A plan dictates the amount and how often a recurring payment will be charged. Plans are not unique to a specific customer, rather multiple customers can be added to the same plan, and each will be charged the same amount at the intervals dictated in the plan.

Subscriptions

Once a plan dictating the recurring payment amount & frequency is created, customers can be added to the plan via subscriptions. Therefore, customers can be added or removed from a recurring payment plan without any changes being made to the actual plan. Simply adjust a customer’s subscription to make any changes.

To summarize, a plan determines the amount & frequency of a recurring payment, and customers can be added to a plan via a subscription.


How to Submit a Card-On-File (CoF) Payment Using a Token

Once a customer’s payment method has been tokenized it can also be used by Merchants to submit CoF transactions.

How to Submit a CoF Transaction in the Portal

To submit a CoF payment in the Portal, locate the customer’s profile page. Scroll to the bottom of the customer’s profile page and select the Charge Customer icon. Once the icon is hit you will have the option to select any of the customer’s existing tokens as the payment method and then you will be prompted to enter the payment details (amount etc.).

How to Submit a Card-on-File (CoF) Transaction via API

To submit a CoF transaction via the API you will need to add the token (which can be found on the customer’s profile page) to your POST request to the /txns endpoint. If the customer’s address information was saved then it will be automatically included when a Merchant submits a transaction using their token

The API syntax for CoF card payments and CoF eCheck payments differs slightly as shown below:

Location

Syntax

URL

CODE
[POST]https://api.payrixcanada.com/txns

HEADER

CODE
Content-Type:application/json
APIKEY:{{private_api_key}}

BODY (for card payments)

CODE
{
    "merchant": "t1_mer_59efbf4e69b27a4760b885d",
    "type": "1",
    "origin": "2",
    "token": "b73443457d0202be0489fed2b5687f81",
    "total": "10000"
}

BODY (for eCheck payments)

CODE
{
	"merchant": "t1_mer_59efbf4e69b27a4760b885d",
	"type": "7",
	"origin": "2",
	"token": "944afd0919c5561724f511d4846e40b9",
	"total": "10000"
}

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.