Tax Remittance
Pay Canadian federal and provincial business taxes programmatically — payroll source deductions, GST/HST, corporate tax, and more — with a single API call.
Overview
VoPay's Tax Remittance capability lets you remit business taxes to Canadian federal and provincial tax authorities directly from your VoPay account. One endpoint creates the remittance; VoPay handles submission to the tax authority through its banking partner's government remittance service, and reports the outcome back through transaction statuses and webhooks.
Supported tax programs span four authorities:
- Canada Revenue Agency (CRA) — payroll source deductions, corporate income tax, GST/HST returns
- Revenu Québec — payroll source deductions, combined GST/HST–QST returns, corporate income tax, support payments
- Ontario — Employer Health Tax, Family Responsibility Office payments
- Nova Scotia — Workers' Compensation Board premiums
AvailabilityTax remittance is available to Canadian accounts, in CAD, and must be enabled on your account. Contact your VoPay integration specialist to activate it.
How It Works
- Create the remittance. Call
POST /remittance/createwith the tax type, amount, tax account number, and the type-specific filing details. VoPay validates your available balance — initiating a pre-funding transaction first if your account is configured for it. - Approval, if configured. If your account uses transaction approval workflows, the remittance waits in pending approval and your designated approvers are notified by email.
- Daily submission. Once per business day, pending remittances are collected into a batch and submitted to the tax authority through VoPay's banking partner. Your transaction moves to in progress.
- Result. The authority's response is processed the same business day: accepted remittances become successful; rejected ones become failed, with the authority's error code and description attached. Status webhooks fire at every step.
Creating a Tax Remittance
POST /api/v2/remittance/create — API reference
Request Parameters
| Parameter | Description | |
|---|---|---|
AccountID, Key, Signature | Required | Standard authentication — see the Authentication Guidelines. |
TaxRemittanceType | Required | The tax program to remit to — one of the codes in the table below. |
Amount | Required | The total amount of the remittance payment, in CAD. |
TaxAccountNumber | Required | Your account number with the tax authority (e.g. a CRA program account such as 123456789RP0001). |
PayerName | Required | The legal name of the payer. |
TaxPeriodEndDate | Required | The end date of the tax period being remitted for (YYYY-MM-DD). |
Details | Required* | A JSON-formatted string with the filing details for the tax type — see Filing Details by Tax Type below. *Required for most tax types; two types need none. |
ClientAccountID | Optional | The client account the remittance is made on behalf of. Defaults to your primary client account. |
WalletID | Optional | The client account wallet to fund from. Defaults to the primary CAD wallet. |
IdempotencyKey | Optional | A unique key so retries of the same request are recognized and rejected. |
ClientReferenceNumber | Optional | Your reference number for the transaction. |
Notes | Optional | A note to associate with the transaction. |
GLCode | Optional | A general ledger code for your reconciliation. |
Example Request
curl -X POST 'https://earthnode.vopay.com/api/v2/remittance/create' \
-d 'AccountID=YOUR_ACCOUNT_ID' \
-d 'Key=YOUR_API_KEY' \
-d 'Signature=YOUR_GENERATED_SIGNATURE' \
-d 'TaxRemittanceType=FED_GST_HST_RETURN' \
-d 'Amount=8450.00' \
-d 'TaxAccountNumber=123456789RT0001' \
-d 'PayerName=Acme Widgets Inc.' \
-d 'TaxPeriodEndDate=2026-06-30' \
-d 'ClientReferenceNumber=GST-Q2-2026' \
-d 'Details={"ReportingPeriodFrom":"2026-04-01","101_SalesAndOtherRevenue":"250000.00","105_TotalGstHstAndAdjustments":"12500.00","108_TotalItcsAndAdjustments":"4050.00","110_InstalmentsAndPayments":"0.00","111_Rebates":"0.00","205_GstHstOnRealProperty":"0.00","405_OtherGstHstSelfAssessed":"0.00","135_TotalNewHousingRebates":"0.00","136_DeductionForPensionRebate":"0.00"}'Example Response
{
"Success": true,
"ErrorMessage": "",
"TransactionID": "1234567"
}
Flagged transactionsIf the transaction trips a fraud or duplicate check, the response includes a
Flaggedfield explaining why. Flagged transactions must be confirmed via the/account/transaction/confirmendpoint before they proceed.
Supported Tax Types
| Code | Authority | Payment |
|---|---|---|
FED_PAYROLL_THRESHOLD_1 | CRA | Payroll source deductions — accelerated remitter, Threshold 1 |
FED_PAYROLL_THRESHOLD_2 | CRA | Payroll source deductions — accelerated remitter, Threshold 2 |
FED_PAYROLL_REGULAR_OR_QUARTERLY | CRA | Payroll source deductions — regular or quarterly remitter |
FED_CORPORATE_TAX | CRA | Corporation income tax |
FED_GST_HST_RETURN | CRA | GST/HST return with payment |
ON_EMPLOYER_HEALTH_TAX | Ontario | Employer Health Tax |
ON_FAMILY_RESPONSIBILITY_OFFICE | Ontario | Family Responsibility Office payment |
QC_PAYROLL_WEEKLY | Revenu Québec | Payroll source deductions — weekly remitter |
QC_PAYROLL_TWICE_MONTHLY | Revenu Québec | Payroll source deductions — twice-monthly remitter |
QC_PAYROLL_MONTHLY | Revenu Québec | Payroll source deductions — monthly remitter |
QC_PAYROLL_QUARTERLY | Revenu Québec | Payroll source deductions — quarterly remitter |
QC_GST_HST_QST_COMBINED_RETURN | Revenu Québec | Combined GST/HST and QST return with payment |
QC_CORP_INCOME_TAX_REMITTANCE | Revenu Québec | Corporate income tax remittance |
QC_SUPPORT_PAYMENTS_COLLECTION | Revenu Québec | Support payments collection |
WCB_NOVA_SCOTIA_PREMIUM | Nova Scotia | Workers' Compensation Board premium |
Filing Details by Tax Type
Most tax types require filing details alongside the payment — the same figures you would report on the corresponding paper or online filing. Pass them in the Details parameter as a JSON-formatted string. All listed fields are required for their tax type, and unexpected fields are rejected.
CRA payroll source deductions
Applies to FED_PAYROLL_THRESHOLD_1, FED_PAYROLL_THRESHOLD_2, and FED_PAYROLL_REGULAR_OR_QUARTERLY:
| Field | Type | Description |
|---|---|---|
GrossPeriodPayroll | Amount | Gross payroll for the remitting period. |
NumberOfEmployees | String | Number of employees in the last pay period. |
CRA corporation income tax — FED_CORPORATE_TAX
FED_CORPORATE_TAX| Field | Type | Description |
|---|---|---|
AmountOwing | Amount | Payment on an existing balance owing. |
Interim | Amount | Interim (instalment) payment. |
PaymentOnFiling | Amount | Payment on filing. |
CRA GST/HST return — FED_GST_HST_RETURN
FED_GST_HST_RETURNField names are prefixed with the corresponding GST/HST return line number:
| Field | Type | Description |
|---|---|---|
ReportingPeriodFrom | String | Start date of the reporting period (YYYY-MM-DD). The end date is taken from TaxPeriodEndDate. |
101_SalesAndOtherRevenue | Amount | Line 101 — sales and other revenue. |
105_TotalGstHstAndAdjustments | Amount | Line 105 — total GST/HST and adjustments for the period. |
108_TotalItcsAndAdjustments | Amount | Line 108 — total ITCs and adjustments. |
110_InstalmentsAndPayments | Amount | Line 110 — instalments and other annual filer payments. |
111_Rebates | Amount | Line 111 — rebates. |
205_GstHstOnRealProperty | Amount | Line 205 — GST/HST due on the purchase of real property. |
405_OtherGstHstSelfAssessed | Amount | Line 405 — other GST/HST to be self-assessed. |
135_TotalNewHousingRebates | Amount | Line 135 — total new housing rebates. |
136_DeductionForPensionRebate | Amount | Line 136 — deduction for pension entity rebate. |
Ontario Employer Health Tax — ON_EMPLOYER_HEALTH_TAX
ON_EMPLOYER_HEALTH_TAX| Field | Type | Description |
|---|---|---|
TaxableOntarioRemuneration | Amount | Taxable Ontario remuneration for the period. |
TaxRate | Amount | Applicable tax rate. |
TaxDue | Amount | Tax due for the period. |
Revenu Québec payroll source deductions
Applies to QC_PAYROLL_WEEKLY, QC_PAYROLL_TWICE_MONTHLY, QC_PAYROLL_MONTHLY, and QC_PAYROLL_QUARTERLY:
| Field | Type | Description |
|---|---|---|
IncomeTaxWithheld | Amount | Québec income tax withheld. |
QppContribution | Amount | QPP contributions. |
HealthServiceFund | Amount | Health services fund contribution. |
QpipContribution | Amount | QPIP premiums. |
CnesstContribution | Amount | CNESST contribution. |
Revenu Québec combined GST/HST–QST return — QC_GST_HST_QST_COMBINED_RETURN
QC_GST_HST_QST_COMBINED_RETURN| Field | Type | Description |
|---|---|---|
GstAccountNumber | String | GST account number (the QST account number goes in TaxAccountNumber). |
GstPeriodFrom | String | Start date of the GST reporting period (YYYY-MM-DD). |
GstPeriodTo | String | End date of the GST reporting period (YYYY-MM-DD). |
QstPeriodFrom | String | Start date of the QST reporting period (YYYY-MM-DD). |
101_SalesAndOtherRevenue | Amount | Line 101 — sales and other revenue. |
105_TotalGstHstAndAdjustments | Amount | Line 105 — total GST/HST and adjustments. |
108_TotalItcsAndAdjustments | Amount | Line 108 — total ITCs and adjustments. |
110_InstalmentsAndPayments | Amount | Line 110 — instalments and payments. |
111_Rebates | Amount | Line 111 — rebates. |
205_GstHstOnRealProperty | Amount | Line 205 — GST/HST on real property. |
208_ItrsPayableAndAdjustments | Amount | Line 208 — ITRs payable and adjustments. |
210_QstInstalments | Amount | Line 210 — QST instalments. |
211_OtherQstRebates | Amount | Line 211 — other QST rebates. |
135_TotalNewHousingRebates | Amount | Line 135 — total new housing rebates. |
Revenu Québec corporate income tax — QC_CORP_INCOME_TAX_REMITTANCE
QC_CORP_INCOME_TAX_REMITTANCE| Field | Type | Description |
|---|---|---|
FiscalYearBeginDate | String | Start date of the fiscal year (YYYY-MM-DD). The end date is taken from TaxPeriodEndDate. |
WCB Nova Scotia premium — WCB_NOVA_SCOTIA_PREMIUM
WCB_NOVA_SCOTIA_PREMIUM| Field | Type | Description |
|---|---|---|
TotalAssessablePayroll | Amount | Total assessable payroll for the period. |
NumberOfEmployees | String | Number of employees. |
PaymentFrequency | String | Payment frequency. |
No filing details required
QC_SUPPORT_PAYMENTS_COLLECTION and ON_FAMILY_RESPONSIBILITY_OFFICE require no Details parameter — the payment, tax account number, and period are sufficient.
Statuses, Timing & Webhooks
Transaction Statuses
| Status | Meaning |
|---|---|
pending approval | Waiting on your internal approvers (only if approval workflows are configured). |
waiting | Waiting on the pre-funding transaction to settle. |
pending | Accepted and queued for the next daily submission. |
in progress | Batched and submitted to the tax authority. |
successful | Accepted by the tax authority. |
failed | Rejected by the tax authority — the failure reason includes the authority's error code and description. |
Timing
Pending remittances are batched and submitted once per business day (afternoon, Pacific Time), and the authority's responses are processed the same business day. Remittances created after the daily cutoff are included in the next business day's batch.
Webhooks
Every status change fires a transaction status webhook to your configured endpoint — the same mechanism used across the VoPay platform. See the webhook documentation for payloads and retry behaviour.
Updated about 3 hours ago