Helcim

Payment processing platform

dev.helcim.com ↗
Version
2.0.0
OpenAPI
3.0.0
Endpoints
28
Schemas
66
72
Quality
Updated
3 days ago
Payments payments credit-card processing
Use this API in your AI agent

Query structured spec data via REST or MCP. Get exactly what your agent needs.

Get API Key

Server URLs

https://api.helcim.com/v2

Endpoints

Cardbatch 3 endpoints

GET /card-batches
operationId: CardBatch_getAll

Parameters

Name In Required Type Description
batchNumber query optional number

The number of the batch to retrieve. Note that this is the batch number, not batch ID.

terminalId query optional number

The terminalId of the requested batch

collect-stats query optional string

Includes transaction statistics for the batch

Responses

default

Failed

200

Successful

GET /card-batches
GET /card-batches/{cardBatchId}
operationId: CardBatch_getDetails

Parameters

Name In Required Type Description
cardBatchId path required integer

The Card Batch Id of the Card Batch you want to get

collect-stats query optional string

Includes transaction statistics for the batch

Responses

default

Failed

200

Successful

GET /card-batches/{cardBatchId}
POST /card-batches/{cardBatchId}/settle
operationId: CardBatch_settleBatch

Parameters

Name In Required Type Description
cardBatchId path required integer

The Card Batch Id of the Card Batch you want to settle

Responses

default

Failed

200

Successful

POST /card-batches/{cardBatchId}/settle

Cardterminal 1 endpoints

GET /card-terminals
operationId: CardTerminal_getAll

Request Body

application/json
schema card_terminals_request
Property Type Required
status string optional
currency string optional

Responses

default

Failed

200

Successful

GET /card-terminals

Cardtransaction 2 endpoints

GET /card-transactions
operationId: CardTransaction_collectTransactions

Parameters

Name In Required Type Description
dateFrom query optional string

Filters transactions created from 2020-01-01 (Mountain Time)

dateTo query optional string

Filters transactions created until 2021-01-01 (Mountain Time)

search query optional string

Searches amount, card number(F4L4 only), cardholder name, & approval codes

customerCode query optional string

The code of the customer associated with the transaction

invoiceNumber query optional string

The number of the invoice associated with the transaction

cardToken query optional string

The token of the card associated with the transaction

cardBatchId query optional integer

The id of the batch associated with the transaction

Responses

default

Failed

200

Successful

GET /card-transactions
GET /card-transactions/{cardTransactionId}
operationId: CardTransaction_getById

Parameters

Name In Required Type Description
cardTransactionId path required integer

The Card Transaction Id of the Card Transaction you want to get

Responses

default

Failed

200

Successful

GET /card-transactions/{cardTransactionId}

Customer 9 endpoints

GET /customers
operationId: Customer_list

Parameters

Name In Required Type Description
search query optional string

The search term to be used for partial matching on contactName, businessName, customerCode, city, phone and email (Only use one query field per request).

customerCode query optional string

Existing customer code (Only use one query field per request).

Responses

default

Failed

200

Successful

GET /customers
POST /customers
operationId: Customer_createNewCustomer

Request Body

application/json
schema CustomerRequest
Property Type Required
cellPhone string optional
contactName string optional
businessName string optional
customerCode string optional
billingAddress object optional
city string optional
name string required
email string optional
phone string optional
country string optional
street1 string required
street2 string optional
province string optional
postalCode string required
shippingAddress object optional
city string optional
name string required
email string optional
phone string optional
country string optional
street1 string required
street2 string optional
province string optional
postalCode string required

Responses

default

Failed

200

Successful

POST /customers
GET /customers/{customerId}
operationId: Customer_getCustomer

Parameters

Name In Required Type Description
customerId path required integer

The Id of the customer

Responses

default

Failed

200

Successful

GET /customers/{customerId}
PUT /customers/{customerId}
operationId: Customer_updateDetails

Parameters

Name In Required Type Description
customerId path required string

The Id of the customer

Request Body

application/json
schema CustomerUpdateRequest
Property Type Required
cellPhone string optional
contactName string optional
businessName string optional
customerCode string optional
billingAddress object optional
city string optional
name string required
email string optional
phone string optional
country string optional
street1 string required
street2 string optional
province string optional
postalCode string required
shippingAddress object optional
city string optional
name string required
email string optional
phone string optional
country string optional
street1 string required
street2 string optional
province string optional
postalCode string required

Responses

default

Failed

200

Successful

PUT /customers/{customerId}
GET /customers/{customerId}/bank-accounts
operationId: Customer_getBankAccounts

Parameters

Name In Required Type Description
customerId path required integer

The Id of the customer

bankToken query optional string

The bank account token.

verified query optional number

Check if bank account is verified or not. use 1 or 0.

ready query optional number

Check if bank account is ready or not. use 1 or 0.

Responses

default

Failed

200

Successful

GET /customers/{customerId}/bank-accounts
GET /customers/{customerId}/bank-accounts/{bankAccountId}
operationId: Customer_getBankAccount

Parameters

Name In Required Type Description
customerId path required integer

The Id of the customer

bankAccountId path required integer

The Id of the bank account

Responses

default

Failed

200

Successful

GET /customers/{customerId}/bank-accounts/{bankAccountId}
PATCH /customers/{customerId}/bank-accounts/{bankAccountId}/default
operationId: Customer_setBankAccountDefault

Parameters

Name In Required Type Description
customerId path required integer

The Id of the customer

bankAccountId path required integer

The Id of the bank account

Responses

default

Failed

200

Successful

PATCH /customers/{customerId}/bank-accounts/{bankAccountId}/default
GET /customers/{customerId}/cards
operationId: Customer_getCards

Parameters

Name In Required Type Description
customerId path required integer

The Id of the customer

cardToken query optional string

The card token.

Responses

default

Failed

200

Successful

GET /customers/{customerId}/cards
GET /customers/{customerId}/cards/{cardId}
operationId: Customer_getCardDetails

Parameters

Name In Required Type Description
customerId path required integer

The Id of the customer

cardId path required integer

The Id of the card

Responses

default

Failed

200

Successful

GET /customers/{customerId}/cards/{cardId}

General 1 endpoints

GET /connection-test
operationId: General_testConnectivityToHelcimApi

Responses

200

Successful

400

Bad Request

401

Unauthorized

403

Unauthorized

GET /connection-test

Helcimpay 1 endpoints

POST /helcim-pay/initialize
operationId: HelcimPay_createCheckoutSession

Request Body

application/json
schema HelcimPayInitializeRequest
Property Type Required
amount number required
currency string required
taxAmount number optional
paymentType string required
allowPartial number optional
customerCode string optional
invoiceNumber string optional
paymentMethod string optional
hasConvenienceFee number optional

Responses

default

Failed

200

Successful

POST /helcim-pay/initialize

Invoice 4 endpoints

GET /invoices
operationId: Invoice_list

Parameters

Name In Required Type Description
invoiceNumber query optional string

The number of the invoice associated with the transaction

dateStart query optional string

Filters transactions created from 2020-01-01 (Mountain Time)

dateEnd query optional string

Filters transactions created until 2021-01-01 (Mountain Time)

withConvenienceFee query optional integer
Include convenience fee of each invoice 0 1

Responses

default

Failed

200

Successful

GET /invoices
POST /invoices
operationId: Invoice_createNew

Request Body

application/json
schema create_invoice_request
Property Type Required
notes string optional
tipAmount number optional
depositAmount number optional
invoiceNumber string optional
type string optional
status string optional
currency string optional
customerId integer optional
billingAddress object optional
city string optional
name string required
email string optional
phone string optional
country string optional
street1 string required
street2 string optional
province string optional
postalCode string required
tax object optional
amount number required
details string required
pickup object optional
date string required
name string optional
discount object optional
amount number required
details string required
shipping object optional
amount number required
address object required
city string optional
name string required
email string optional
phone string optional
country string optional
street1 string required
street2 string optional
province string optional
postalCode string required
details string required
lineItems array optional
sku string optional
price number required
total number required
quantity number required
taxAmount number optional
description string required
discountAmount number optional

Responses

default

Failed

200

Successful

POST /invoices
GET /invoices/{invoiceId}
operationId: Invoice_getById

Parameters

Name In Required Type Description
invoiceId path required string

The unique invoice Id

Responses

default

Failed

200

Successful

GET /invoices/{invoiceId}
PUT /invoices/{invoiceId}
operationId: Invoice_updateDetails

Parameters

Name In Required Type Description
invoiceId path required string

The unique invoice Id

Request Body

application/json
schema update_invoice_request
Property Type Required
notes string optional
tipAmount number optional
depositAmount number optional
invoiceNumber string optional
type string optional
status string optional
currency string optional
billingAddress object optional
city string optional
name string required
email string optional
phone string optional
country string optional
street1 string required
street2 string optional
province string optional
postalCode string required

Responses

default

Failed

200

Successful

PUT /invoices/{invoiceId}

Payment 7 endpoints

POST /payment/capture
operationId: Payment_processCaptureTransaction

Parameters

Name In Required Type Description
idempotency-key header required string

Idempotency Key. Alphanumeric 25-characters

Request Body

application/json
schema CaptureRequest
Property Type Required
amount number required
ecommerce boolean optional
ipAddress string required
preAuthTransactionId integer required

Responses

default

Failed

200

Successful

POST /payment/capture
POST /payment/preauth
operationId: Payment_processPreauthTransaction

Parameters

Name In Required Type Description
idempotency-key header required string

Idempotency Key. Alphanumeric 25-characters

Request Body

application/json
schema purchase_request
Property Type Required
amount number required
invoice object optional
notes string optional
tipAmount number optional
depositAmount number optional
invoiceNumber string optional
tax object optional
amount number required
details string required
pickup object optional
date string required
name string optional
discount object optional
amount number required
details string required
shipping object optional
amount number required
address object required
city string optional
name string required
email string optional
phone string optional
country string optional
street1 string required
street2 string optional
province string optional
postalCode string required
details string required
lineItems array optional
sku string optional
price number required
total number required
quantity number required
taxAmount number optional
description string required
discountAmount number optional
currency string required
ecommerce boolean optional
ipAddress string required
terminalId integer optional
customerCode string optional
invoiceNumber string optional
billingAddress object optional
city string optional
name string required
email string optional
phone string optional
country string optional
street1 string required
street2 string optional
province string optional
postalCode string required
cardData object required

Responses

default

Failed

200

Successful

POST /payment/preauth
POST /payment/purchase
operationId: Payment_processPurchaseTransaction

Parameters

Name In Required Type Description
idempotency-key header required string

Idempotency Key. Alphanumeric 25-characters

Request Body

application/json
schema purchase_request
Property Type Required
amount number required
invoice object optional
notes string optional
tipAmount number optional
depositAmount number optional
invoiceNumber string optional
tax object optional
amount number required
details string required
pickup object optional
date string required
name string optional
discount object optional
amount number required
details string required
shipping object optional
amount number required
address object required
city string optional
name string required
email string optional
phone string optional
country string optional
street1 string required
street2 string optional
province string optional
postalCode string required
details string required
lineItems array optional
sku string optional
price number required
total number required
quantity number required
taxAmount number optional
description string required
discountAmount number optional
currency string required
ecommerce boolean optional
ipAddress string required
terminalId integer optional
customerCode string optional
invoiceNumber string optional
billingAddress object optional
city string optional
name string required
email string optional
phone string optional
country string optional
street1 string required
street2 string optional
province string optional
postalCode string required
cardData object required

Responses

default

Failed

200

Successful

POST /payment/purchase
POST /payment/refund
operationId: Payment_processRefundTransaction

Parameters

Name In Required Type Description
idempotency-key header required string

Idempotency Key. Alphanumeric 25-characters

Request Body

application/json
schema Refund_Request
Property Type Required
amount number required
ecommerce boolean optional
ipAddress string required
originalTransactionId integer required

Responses

default

Failed

200

Successful

POST /payment/refund
POST /payment/reverse
operationId: Payment_reverseTransaction

Parameters

Name In Required Type Description
idempotency-key header required string

Idempotency Key. Alphanumeric 25-characters

Request Body

application/json
schema Refund_Request_1
Property Type Required
ecommerce boolean optional
ipAddress string required
cardTransactionId integer required

Responses

default

Failed

200

Successful

POST /payment/reverse
POST /payment/verify
operationId: Payment_verifyTransaction

Parameters

Name In Required Type Description
idempotency-key header required string

Idempotency Key. Alphanumeric 25-characters

Request Body

application/json
schema VerifyRequest
Property Type Required
invoice object optional
notes string optional
tipAmount number optional
depositAmount number optional
invoiceNumber string optional
tax object optional
amount number required
details string required
pickup object optional
date string required
name string optional
discount object optional
amount number required
details string required
shipping object optional
amount number required
address object required
city string optional
name string required
email string optional
phone string optional
country string optional
street1 string required
street2 string optional
province string optional
postalCode string required
details string required
lineItems array optional
sku string optional
price number required
total number required
quantity number required
taxAmount number optional
description string required
discountAmount number optional
cardData object required
cardCVV string required
cardExpiry string required
cardNumber string required
currency string required
ecommerce boolean optional
ipAddress string required
customerCode string optional
invoiceNumber string optional
billingAddress object required
city string optional
name string required
email string optional
phone string optional
country string optional
street1 string required
street2 string optional
province string optional
postalCode string required

Responses

default

Failed

200

Successful

POST /payment/verify
POST /payment/withdraw
operationId: Payment_processWithdrawalTransaction

Parameters

Name In Required Type Description
idempotency-key header required string

Idempotency Key. Alphanumeric 25-characters

Request Body

application/json
schema withdraw_request
Property Type Required
amount number required
invoice object optional
notes string optional
tipAmount number optional
depositAmount number optional
invoiceNumber string optional
tax object optional
amount number required
details string required
pickup object optional
date string required
name string optional
discount object optional
amount number required
details string required
shipping object optional
amount number required
address object required
city string optional
name string required
email string optional
phone string optional
country string optional
street1 string required
street2 string optional
province string optional
postalCode string required
details string required
lineItems array optional
sku string optional
price number required
total number required
quantity number required
taxAmount number optional
description string required
discountAmount number optional
currency string required
ecommerce boolean optional
ipAddress string required
terminalId integer optional
customerCode string optional
invoiceNumber string optional
billingAddress object optional
city string optional
name string required
email string optional
phone string optional
country string optional
street1 string required
street2 string optional
province string optional
postalCode string required
bankData object required

Responses

default

Failed

200

Successful

POST /payment/withdraw

Schemas

object Address
{
  "type": "object",
  "title": "Address",
  "required": [
    "name",
    "postalCode",
    "street1"
  ],
  "properties": {
    "city": {
      "type": "string",
      "example": "Calgary"
    },
    "name": {
      "type": "string",
      "example": "John Smith / Helcim",
      "description": "Contact Name or Business Name"
    },
    "email": {
      "type": "string",
      "example": "john@example.com"
    },
    "phone": {
      "type": "string",
      "example": "4031231234",
      "description": "10 to 15 digits phone number."
    },
    "country": {
      "type": "string",
      "example": "CAN",
      "description": "3-letter abbreviation of the country(CAN, USA)"
    },
    "street1": {
      "type": "string",
      "example": "Jump Street 21"
    },
    "street2": {
      "type": "string"
    },
    "province": {
      "type": "string",
      "example": "AB",
      "description": "2 letter abbreviation of the province(AB, BC, CA). Required field if country is CAN or USA."
    },
    "postalCode": {
      "type": "string",
      "example": "H0H0H0"
    }
  }
}
object BankAccount
{
  "type": "object",
  "title": "BankAccount",
  "required": [
    "accountCorporate",
    "accountType",
    "bankAccountNumber",
    "city",
    "companyName",
    "country",
    "firstName",
    "lastName",
    "postalCode",
    "province",
    "streetAddress"
  ],
  "properties": {
    "city": {
      "type": "string",
      "example": "Calgary"
    },
    "country": {
      "type": "string",
      "example": "CAN",
      "description": "Only allow CAN - Canada, USA - United States"
    },
    "lastName": {
      "type": "string",
      "example": "Smith",
      "description": "The bank account holder last name"
    },
    "province": {
      "type": "string",
      "example": "AB"
    },
    "firstName": {
      "type": "string",
      "example": "John",
      "description": "The bank account holder first name"
    },
    "postalCode": {
      "type": "string",
      "example": "T2T2T2"
    },
    "accountType": {
      "type": "string",
      "example": "CHECKING",
      "description": "CHECKING - Chequing, SAVINGS - Savings"
    },
    "companyName": {
      "type": "string",
      "example": "Microsoft",
      "description": "The company name"
    },
    "bankIdNumber": {
      "type": "string",
      "example": "888",
      "description": "Required for Canadian Bank Account Holder, the institution number - three digits - identifies your bank."
    },
    "padAgreement": {
      "type": "boolean",
      "example": true,
      "description": "Customer given permission for a company or financial institution to debit a bank account when the payment is due."
    },
    "routingNumber": {
      "type": "string",
      "example": "123456789",
      "description": "Required for US Bank Account Holder, a nine-digit code printed on the bottom of checks to identify the financial institution on which it was drawn."
    },
    "streetAddress": {
      "type": "string",
      "example": "440 - something"
    },
    "transitNumber": {
      "type": "string",
      "example": "55555",
      "description": "Required for Canadian Bank Account Holder, the transit number - five digits - shows which branch you opened your account at."
    },
    "accountCorporate": {
      "type": "string",
      "example": "PERSONAL",
      "description": "PERSONAL - Personal Bank Account, CORPORATE - Corporate Bank Account"
    },
    "bankAccountNumber": {
      "type": "string",
      "example": "999999999",
      "description": "Bank account number"
    }
  }
}
object BankAccountResponse
{
  "type": "object",
  "title": "BankAccount",
  "properties": {
    "id": {
      "type": "integer",
      "example": 12312,
      "description": "The id of the bank account."
    },
    "ready": {
      "type": "string",
      "example": "1",
      "description": "Ready status of the bank account, 1|0."
    },
    "address": {
      "$ref": "#/components/schemas/Address"
    },
    "verified": {
      "type": "string",
      "example": "1",
      "description": "Verified status of the bank account, 1|0."
    },
    "bankToken": {
      "type": "string",
      "example": "JHKJHKLKJLOHKJ876545KJBK",
      "description": "The token of the bank account."
    },
    "customerId": {
      "type": "integer",
      "example": 2222,
      "description": "The id of the customer owning the bank account."
    },
    "accountType": {
      "type": "string",
      "example": "CHECKING",
      "description": "The type of the bank account, such as CHECKING | SAVINGS."
    },
    "dateCreated": {
      "type": "string",
      "example": "2025-01-30 13:35:36",
      "description": "The date when the bank account is created."
    },
    "dateUpdated": {
      "type": "string",
      "example": "2025-01-30 13:35:36",
      "description": "The date when the bank account last got updated."
    },
    "bankIdNumber": {
      "type": "string",
      "example": "333",
      "description": "The institution number of Canadian Bank Account that identifies the bank."
    },
    "dateLastUsed": {
      "type": "string",
      "example": "2025-01-30 13:35:36",
      "description": "The date when the bank account last got used."
    },
    "dateVerified": {
      "type": "string",
      "example": "2025-01-30 13:35:36",
      "description": "The date when the bank account is verified."
    },
    "routingNumber": {
      "type": "string",
      "example": "999999999",
      "description": "The routing number of US Bank Account. Identifies the financial institution on which it was drawn."
    },
    "transitNumber": {
      "type": "string",
      "example": "55555",
      "description": "The transit number of Canadian Bank Account. Shows which branch you opened your account at."
    },
    "accountCorporate": {
      "type": "string",
      "example": "PERSONAL",
      "description": "The corporate type of the bank account, such as PERSONAL | CORPORATE."
    },
    "bankAccountNumberL4": {
      "type": "string",
      "example": "9999",
      "description": "Last 4 digits of the bank account number."
    }
  }
}
object BankData
{
  "type": "object",
  "title": "BankData",
  "required": [
    "bankData"
  ],
  "properties": {
    "bankData": {
      "$ref": "#/components/schemas/BankData_bankData"
    }
  }
}
object BankData_bankData
{
  "oneOf": [
    {
      "$ref": "#/components/schemas/BankAccount"
    },
    {
      "$ref": "#/components/schemas/BankToken"
    }
  ]
}
object BankToken
{
  "type": "object",
  "title": "Bank Token",
  "required": [
    "bankToken"
  ],
  "properties": {
    "bankToken": {
      "type": "string",
      "example": "HGKHJK5647698HGJJK",
      "description": "The token for the bank account on file."
    }
  }
}
object CaptureRequest
{
  "type": "object",
  "title": "Capture Request",
  "required": [
    "amount",
    "ipAddress",
    "preAuthTransactionId"
  ],
  "properties": {
    "amount": {
      "type": "number",
      "example": 100.99,
      "description": "The amount to capture. Must be less or equal to the original pre-authorization amount."
    },
    "ecommerce": {
      "type": "boolean",
      "example": true,
      "description": "Set to indicate that the transaction is e-commerce. When set, the Helcim Fraud Defender will provide further analysis."
    },
    "ipAddress": {
      "type": "string",
      "example": "192.168.1.1",
      "description": "IP address of the customer making the transaction, used as part of fraud detection."
    },
    "preAuthTransactionId": {
      "type": "integer",
      "example": 198763,
      "description": "The transaction ID of the original pre-authorization transaction."
    }
  }
}
object Card
{
  "type": "object",
  "title": "Card",
  "required": [
    "cardCVV",
    "cardExpiry",
    "cardHolderName",
    "cardNumber"
  ],
  "properties": {
    "cardCVV": {
      "type": "string",
      "example": "100",
      "description": "The card CVV (3-4 digits on back of credit card)."
    },
    "cardExpiry": {
      "type": "string",
      "example": "1257",
      "description": "The card expiry date, in MMYY format (total of 4 digits without spaces or slashes)."
    },
    "cardNumber": {
      "type": "string",
      "example": "5454545454545454",
      "description": "The full card number (13 to 16 digits) from merchant to process \"purchase\", \"pre-auth\", and \"verify\" transactions."
    }
  }
}
object CardBatch
{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "example": 2488717,
      "description": "Id of Card batch"
    },
    "closed": {
      "type": "boolean",
      "example": true,
      "description": "True if the batch is closed. Else false"
    },
    "netSales": {
      "type": "number",
      "example": 90,
      "description": "Approved sales net refunds and voids"
    },
    "countTotal": {
      "type": "number",
      "example": 8,
      "description": "Total number of transactions"
    },
    "dateClosed": {
      "type": "string",
      "example": "2022-11-30 14:14:53",
      "description": "Date Card Batch is closed"
    },
    "terminalId": {
      "type": "integer",
      "example": 1411,
      "description": "Id of associated Terminal"
    },
    "totalSales": {
      "type": "number",
      "example": 100,
      "description": "Gross sales"
    },
    "batchNumber": {
      "type": "integer",
      "example": 6,
      "description": "Batch Number"
    },
    "dateCreated": {
      "type": "string",
      "example": "2022-11-30 13:14:53",
      "description": "Date Card batch is Created"
    },
    "dateUpdated": {
      "type": "string",
      "example": "2022-11-30 13:14:53",
      "description": "Date Card batch is last updated"
    },
    "totalRefunds": {
      "type": "number",
      "example": 8.5,
      "description": "Gross refunds"
    },
    "countApproved": {
      "type": "number",
      "example": 8,
      "description": "Number of approved transactions"
    },
    "countDeclined": {
      "type": "number",
      "example": 0,
      "description": "Number of declined transactions"
    },
    "totalReversed": {
      "type": "number",
      "example": 5,
      "description": "Voided amount"
    },
    "totalRefundsReversed": {
      "type": "number",
      "example": 3.5,
      "description": "Amount of voided refunds"
    }
  }
}
array CardBatchGetAllResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/CardBatch"
  },
  "description": "Array of card batches"
}
object CardData
{
  "type": "object",
  "title": "CardData",
  "required": [
    "cardData"
  ],
  "properties": {
    "cardData": {
      "$ref": "#/components/schemas/CardData_cardData"
    }
  }
}
object CardData_cardData
{
  "oneOf": [
    {
      "$ref": "#/components/schemas/Card"
    },
    {
      "$ref": "#/components/schemas/CardToken"
    }
  ]
}
object CardResponse
{
  "type": "object",
  "title": "Card",
  "properties": {
    "id": {
      "type": "integer",
      "example": 161462,
      "description": "The id of the card."
    },
    "cardCVV": {
      "type": "string",
      "example": "100",
      "description": "The card CVV (3-4 digits on back of credit card)."
    },
    "cardF6L4": {
      "type": "string",
      "example": "5454545454",
      "description": "The first-six and last-four card numbers."
    },
    "cardToken": {
      "type": "string",
      "example": "907af81acc0224e0134949",
      "description": "The card token."
    },
    "cardExpiry": {
      "type": "string",
      "example": "1257",
      "description": "The card expiry date, in MMYY format (total of 4 digits without spaces or slashes)."
    },
    "dateCreated": {
      "type": "string",
      "example": "2025-01-30 13:35:36",
      "description": "The date when the card is created."
    },
    "dateUpdated": {
      "type": "string",
      "example": "2025-01-30 13:35:36",
      "description": "The date when the card last got updated."
    },
    "cardHolderName": {
      "type": "string",
      "example": "John Smith",
      "description": "The cardholder name."
    }
  }
}
object CardTerminal
{
  "type": "object",
  "title": "Terminal",
  "properties": {
    "id": {
      "type": "integer",
      "example": 123,
      "description": "Id of the terminal."
    },
    "status": {
      "type": "string",
      "example": "ACTIVE",
      "description": "Status of Terminal. possible values are ACTIVE | INACTIVE"
    },
    "address": {
      "$ref": "#/components/schemas/CardTerminal_address"
    },
    "currency": {
      "type": "string",
      "example": "CAD",
      "description": "Currency of terminal. possible values are CAD | USD"
    },
    "nickname": {
      "type": "string",
      "example": "Terminal 1",
      "description": "Nickname of terminal"
    }
  }
}
array CardTerminalGetAllResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/CardTerminal"
  }
}
object CardTerminal_address
{
  "type": "object",
  "properties": {
    "city": {
      "type": "string",
      "example": "Calgary"
    },
    "country": {
      "type": "string",
      "example": "CAN",
      "description": "Abbreviation of country"
    },
    "street1": {
      "type": "string",
      "example": "Street 1"
    },
    "street2": {
      "type": "string",
      "example": "Street 2"
    },
    "province": {
      "type": "string",
      "example": "AB",
      "description": "Abbreviation of province"
    },
    "postalCode": {
      "type": "string",
      "example": "H0H0H0",
      "description": "Postal or zip code"
    }
  }
}
object CardToken
{
  "type": "object",
  "title": "Card Token",
  "required": [
    "cardToken"
  ],
  "properties": {
    "cardToken": {
      "type": "string",
      "example": "HGKHJK5647698HGJJK",
      "description": "The token for the card on file. If Customer Code is filled, The card should must be owned by a passed customer code"
    }
  }
}
array CardTransactionCollectTransactionsResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/SuccessfulPaymentResponse"
  },
  "description": "Array of card transactions"
}
object Card_1
{
  "type": "object",
  "title": "Card",
  "properties": {
    "cardF6L4": {
      "type": "string",
      "example": "5454545454",
      "description": "The F6L4 of card."
    },
    "cardToken": {
      "type": "string",
      "example": "a1b2c3d4e5f6",
      "description": "Card token"
    },
    "cardHolderName": {
      "type": "string",
      "example": "John Smith",
      "description": "The card holder name."
    }
  }
}
object Customer
{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "example": 2488717,
      "description": "Id of Customer"
    },
    "cards": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Card_1"
      },
      "description": "Array of cards stored in the vault associated with this customer."
    },
    "cellPhone": {
      "type": "string",
      "example": "908-295-4902",
      "description": "Cell phone number of customer"
    },
    "contactName": {
      "type": "string",
      "example": "John Smith",
      "description": "Contact Name"
    },
    "businessName": {
      "type": "string",
      "example": "Best company",
      "description": "Name of the business"
    },
    "customerCode": {
      "type": "string",
      "example": "CST1200",
      "description": "Customer code of the customer"
    },
    "billingAddress": {
      "$ref": "#/components/schemas/Address"
    },
    "shippingAddress": {
      "$ref": "#/components/schemas/Address"
    }
  }
}
array CustomerGetBankAccountResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/BankAccountResponse"
  }
}
array CustomerGetBankAccountsResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/BankAccountResponse"
  }
}
array CustomerGetCardDetailsResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/CardResponse"
  }
}
array CustomerGetCardsResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/CardResponse"
  }
}
array CustomerListResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/Customer"
  }
}
object CustomerRequest
{
  "type": "object",
  "title": "Customer Request",
  "properties": {
    "cellPhone": {
      "type": "string",
      "example": "908-295-4902",
      "description": "The cell phone number of the customer."
    },
    "contactName": {
      "type": "string",
      "example": "John Smith",
      "description": "The primary contact name (full name) of the customer."
    },
    "businessName": {
      "type": "string",
      "example": "Best Company",
      "description": "The business name of the customer. There must be either a contact name or business name present."
    },
    "customerCode": {
      "type": "string",
      "example": "CST1000",
      "description": "The unique customer code. If blank, it will be automatically generated."
    },
    "billingAddress": {
      "$ref": "#/components/schemas/Address"
    },
    "shippingAddress": {
      "$ref": "#/components/schemas/Address"
    }
  }
}
array CustomerSetBankAccountDefaultResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/BankAccountResponse"
  }
}
object CustomerUpdateRequest
{
  "type": "object",
  "title": "Customer Update Request",
  "properties": {
    "cellPhone": {
      "type": "string",
      "example": "908-295-4902",
      "description": "The cell phone number of the customer."
    },
    "contactName": {
      "type": "string",
      "example": "John Smith",
      "description": "The primary contact name (full name) of the customer."
    },
    "businessName": {
      "type": "string",
      "example": "Best Company",
      "description": "The business name of the customer. There must be either a contact name or business name present."
    },
    "customerCode": {
      "type": "string",
      "example": "CST1000",
      "description": "The unique customer code."
    },
    "billingAddress": {
      "$ref": "#/components/schemas/Address"
    },
    "shippingAddress": {
      "$ref": "#/components/schemas/Address"
    }
  }
}
object Discount
{
  "type": "object",
  "title": "Discount Data",
  "required": [
    "amount",
    "details"
  ],
  "properties": {
    "amount": {
      "type": "number",
      "example": 10.99,
      "description": "Total Discount Amount of the Invoice"
    },
    "details": {
      "type": "string",
      "example": "DISC100",
      "description": "Discount Details/Code"
    }
  }
}
object FailedPaymentResponse
{
  "type": "object",
  "properties": {
    "errors": {
      "type": "array",
      "items": {
        "type": "string",
        "example": "An error occured"
      },
      "description": "List of errors"
    }
  }
}
object GeneralTestConnectivityToHelcimApi400Response
{
  "type": "object",
  "title": "Invalid Business ID",
  "example": {
    "errors": "invalid businessId"
  }
}
object GeneralTestConnectivityToHelcimApi401Response
{
  "type": "object",
  "title": "No credentials included",
  "description": "No API token was included in the request"
}
object GeneralTestConnectivityToHelcimApi403Response
{
  "type": "object",
  "title": "Forbidden",
  "description": "Invalid API token was included in the request"
}
object GeneralTestConnectivityToHelcimApiResponse
{
  "type": "object",
  "title": "Successful Connection Test",
  "example": {
    "message": "Connection Successful"
  }
}
object HelcimPayInitializeRequest
{
  "type": "object",
  "title": "Helcim Pay Initialize",
  "required": [
    "amount",
    "currency",
    "paymentType"
  ],
  "properties": {
    "amount": {
      "type": "number",
      "example": 100,
      "description": "The amount of the transaction to be processed"
    },
    "currency": {
      "type": "string",
      "example": "CAD",
      "description": "Currency abbreviation. CAD | USD"
    },
    "taxAmount": {
      "type": "number",
      "example": 3.67,
      "description": "This is used to enable level 2 processing lower rates. The value should be the dollar amount of the tax to 2 decimal places."
    },
    "paymentType": {
      "type": "string",
      "example": "purchase",
      "description": "Payment Type. Valid payment types are purchase | preauth | verify"
    },
    "allowPartial": {
      "type": "number",
      "example": 1,
      "description": "This is used to determine whether the partial payment UI will be displayed to the customer"
    },
    "customerCode": {
      "type": "string",
      "example": "CST1000",
      "description": "This is the code of an existing customer in Helcim associated with this checkout"
    },
    "invoiceNumber": {
      "type": "string",
      "example": "INV1000",
      "description": "This is the number of an existing invoice in Helcim associated with this checkout"
    },
    "paymentMethod": {
      "type": "string",
      "example": "cc-ach",
      "description": "This is the payment method (credit card, ACH) that customer can use to pay the amount. cc | ach | cc-ach"
    },
    "hasConvenienceFee": {
      "type": "number",
      "example": 1,
      "description": "This is used to apply the convenience fee rate to credit card transaction should customer chooses this payment method"
    }
  }
}
object Invoice
{
  "type": "object",
  "title": "Invoice",
  "properties": {
    "amount": {
      "type": "number",
      "example": 100.99,
      "description": "The total amount of the invoice."
    },
    "status": {
      "type": "string",
      "example": "due",
      "description": "The status of the invoice, such as due | paid | completed | refunded."
    },
    "datePaid": {
      "type": "string",
      "example": "2020-01-01 00:30:50",
      "description": "Date the invoice is paid."
    },
    "customerId": {
      "type": "integer",
      "example": 234,
      "description": "The id of customer associated to the invoice."
    },
    "dateIssued": {
      "type": "string",
      "example": "2020-01-01 00:30:50",
      "description": "Date the invoice is paid."
    },
    "dateCreated": {
      "type": "string",
      "example": "2020-01-01 00:30:50",
      "description": "Date the invoice is created."
    },
    "dateUpdated": {
      "type": "string",
      "example": "2020-01-01 20:30:50",
      "description": "Date the invoice is updated."
    },
    "convenienceFee": {
      "type": "number",
      "example": 100,
      "description": "The total convenience fee paid for the invoice."
    }
  }
}
object InvoiceBase
{
  "type": "object",
  "title": "Invoice Base",
  "properties": {
    "notes": {
      "type": "string",
      "example": "No vegetables please",
      "description": "Comment to appear at the bottom of the invoice, visible to the customer."
    },
    "tipAmount": {
      "type": "number",
      "example": 0.99,
      "description": "Tip amount"
    },
    "depositAmount": {
      "type": "number",
      "example": 1,
      "description": "Deposit amount"
    },
    "invoiceNumber": {
      "type": "string",
      "example": "",
      "description": "Invoice number of invoice to be created. Will be generated if blank"
    }
  }
}
object InvoiceCreate
{
  "type": "object",
  "title": "Invoice Create",
  "properties": {
    "type": {
      "type": "string",
      "example": "INVOICE",
      "description": "The type of the invoice, such as ESTIMATE | INVOICE | QUOTE | ORDER | PURCHASE_ORDER | STATEMENT | REGISTRATION | CREDIT."
    },
    "status": {
      "type": "string",
      "example": "DUE",
      "description": "The status of invoice, such as DUE | SHIPPED | COMPLETED | CANCELLED"
    },
    "currency": {
      "type": "string",
      "example": "CAD",
      "description": "The currency abbreviation of the invoice, such as CAD or USD. This should match currency of existing invoice."
    },
    "customerId": {
      "type": "integer",
      "example": 123123,
      "description": "Unique customer Id."
    },
    "billingAddress": {
      "$ref": "#/components/schemas/Address"
    }
  }
}
object InvoiceCreateAfterProcessing
{
  "type": "object",
  "title": "Invoice Create after transaction processing",
  "properties": {
    "tax": {
      "$ref": "#/components/schemas/Tax"
    },
    "pickup": {
      "$ref": "#/components/schemas/Pickup"
    },
    "discount": {
      "$ref": "#/components/schemas/Discount"
    },
    "shipping": {
      "$ref": "#/components/schemas/Shipping"
    },
    "lineItems": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/LineItem"
      },
      "maxLength": 10
    }
  }
}
array InvoiceListResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/get_invoices_200_response_inner"
  }
}
object InvoiceResponseBase
{
  "type": "object",
  "title": "Invoice Base",
  "properties": {
    "notes": {
      "type": "string",
      "example": "No vegetables please",
      "description": "Comment to appear at the bottom of the invoice, visible to the customer."
    },
    "invoiceId": {
      "type": "number",
      "example": 12321,
      "description": "Unique Invoice Id"
    },
    "tipAmount": {
      "type": "number",
      "example": 0.99,
      "description": "Tip amount"
    },
    "depositAmount": {
      "type": "number",
      "example": 1,
      "description": "Deposit amount"
    },
    "invoiceNumber": {
      "type": "string",
      "example": "INV1000",
      "description": "Invoice number of invoice to be created. Will be generated if blank"
    }
  }
}
object InvoiceUpdate
{
  "type": "object",
  "title": "Invoice Create",
  "properties": {
    "type": {
      "type": "string",
      "example": "INVOICE",
      "description": "The type of the invoice, such as ESTIMATE | INVOICE | QUOTE | ORDER | PURCHASE_ORDER | STATEMENT | REGISTRATION | CREDIT."
    },
    "status": {
      "type": "string",
      "example": "DUE",
      "description": "The status of invoice, such as DUE | SHIPPED | COMPLETED | CANCELLED"
    },
    "currency": {
      "type": "string",
      "example": "CAD",
      "description": "The currency abbreviation of the invoice, such as CAD or USD. This should match currency of existing invoice."
    },
    "billingAddress": {
      "$ref": "#/components/schemas/Address"
    }
  }
}
object LineItem
{
  "type": "object",
  "title": "Line Item Data",
  "required": [
    "description",
    "price",
    "quantity",
    "total"
  ],
  "properties": {
    "sku": {
      "type": "string",
      "example": "ITM1434"
    },
    "price": {
      "type": "number",
      "example": 10.55
    },
    "total": {
      "type": "number",
      "example": 110.78,
      "description": "Total = Price * Quantity"
    },
    "quantity": {
      "type": "number",
      "example": 10.5,
      "description": "The quantity of the line item. Can have upto 2 decimal places"
    },
    "taxAmount": {
      "type": "number",
      "example": 0,
      "description": "This will be added to Invoice's total tax amount"
    },
    "description": {
      "type": "string",
      "example": "Red Hat"
    },
    "discountAmount": {
      "type": "number",
      "example": 0,
      "description": "This will be added to Invoice's total discount amount"
    }
  }
}
object PaymentRequest
{
  "type": "object",
  "title": "PaymenRequest",
  "required": [
    "amount",
    "cardData",
    "currency",
    "ipAddress"
  ],
  "properties": {
    "amount": {
      "type": "number",
      "example": 100.99,
      "description": "Amount to be processed"
    },
    "invoice": {
      "$ref": "#/components/schemas/PaymentRequest_invoice"
    },
    "currency": {
      "type": "string",
      "example": "CAD",
      "description": "The currency abbreviation of the invoice, such as CAD or USD. This should match currency of existing invoice."
    },
    "ecommerce": {
      "type": "boolean",
      "example": true,
      "description": "Set to indicate that the transaction is e-commerce. When set, the Helcim Fraud Defender will provide further analysis."
    },
    "ipAddress": {
      "type": "string",
      "example": "192.168.1.1",
      "description": "IP address of the customer making the transaction, used as part of fraud detection."
    },
    "terminalId": {
      "type": "integer",
      "example": 3215,
      "description": "For card transactions only. Id of the terminal you would want to use. Default terminal for of the currency will be used if you dont send this."
    },
    "customerCode": {
      "type": "string",
      "example": "",
      "description": "Existing customer code associated with the transaction"
    },
    "invoiceNumber": {
      "type": "string",
      "example": "",
      "description": "To be filled when associating transaction to existing invoice. Invoice should be associated to the same customer linked to the card"
    },
    "billingAddress": {
      "$ref": "#/components/schemas/Address"
    }
  }
}
object PaymentRequest_invoice
{
  "allOf": [
    {
      "$ref": "#/components/schemas/InvoiceBase"
    },
    {
      "$ref": "#/components/schemas/InvoiceCreateAfterProcessing"
    }
  ],
  "description": "To be filled when creating new invoice to be associated to transaction. Will be linked to Customer owning the Card used"
}
object PaymentReverseTransactionResponse
{
  "type": "object",
  "example": {},
  "properties": {}
}
object PaymentReverseTransactiondefaultResponse
{
  "type": "object",
  "example": {},
  "properties": {}
}
object Pickup
{
  "type": "object",
  "title": "Pickup Data",
  "required": [
    "date"
  ],
  "properties": {
    "date": {
      "type": "string",
      "example": "2022-01-25 13:55:55",
      "description": "Pickup Date"
    },
    "name": {
      "type": "string",
      "example": "Jane Smith",
      "description": "Name of the person to pickup"
    }
  }
}
object Refund_Request
{
  "type": "object",
  "title": "Refund Request",
  "required": [
    "amount",
    "ipAddress",
    "originalTransactionId"
  ],
  "properties": {
    "amount": {
      "type": "number",
      "example": 100.99,
      "description": "The amount to refund. Must be less or equal to the original purchase/capture amount."
    },
    "ecommerce": {
      "type": "boolean",
      "example": true,
      "description": "Set to indicate that the transaction is e-commerce. When set, the Helcim Fraud Defender will provide further analysis."
    },
    "ipAddress": {
      "type": "string",
      "example": "192.168.1.1",
      "description": "IP address of the customer making the transaction, used as part of fraud detection."
    },
    "originalTransactionId": {
      "type": "integer",
      "example": 198763,
      "description": "The transaction ID of the purchase/capture transaction."
    }
  }
}
object Refund_Request_1
{
  "type": "object",
  "title": "Refund Request",
  "required": [
    "cardTransactionId",
    "ipAddress"
  ],
  "properties": {
    "ecommerce": {
      "type": "boolean",
      "example": true,
      "description": "Set to indicate that the transaction is e-commerce. When set, the Helcim Fraud Defender will provide further analysis."
    },
    "ipAddress": {
      "type": "string",
      "example": "192.168.1.1",
      "description": "IP address of the customer making the transaction, used as part of fraud detection."
    },
    "cardTransactionId": {
      "type": "integer",
      "example": 198763,
      "description": "The transaction ID of the original transaction."
    }
  }
}