A description of the payment for later reference
Commerce API (2.0)
The Hellgate Commerce API provides a comprehensive payment orchestration platform designed to streamline and optimize payment processing for modern businesses. Built with flexibility and security at its core, our API enables you to process payments, manage authentications, and handle cardholder data across multiple payment processors without vendor lock-in.
Hellgate Commerce supports four distinct operating models to match your business needs:
- Primary Merchant - The standard operating model. Works great for single merchant setups.
- Platform - An operating model, which allows to process platform / marketplace payments.
- Ecosystem - An operationg model based on network tokens, which allows to facilitate transactions in e-commerce ecosystems.
- Managed Ecosystem - In this operating model, the management of the ecosystem is provided by Starfish as a service.
The API is organized into logical groups:
- Payments: Process and manage payment transactions
- Authentications: Handle 3-D Secure authentication flows
- Tokens: Create and manage payment tokens with network token support
- Configuration: Manage merchants and account settings
- Automation: Import existing tokens and generate reconciliation reports
https://sandbox.hellgate.io/
https://api.hellgate.io/
Customer Initiated
These endpoints handle payment processing where the customer is actively present and authorizing the transaction.
Supports multiple payment scenarios:
- One-off payments: Single transactions for immediate purchase
- Initial recurring: First payment in a subscription series with customer consent
- Initial unscheduled: First payment for card-on-file scenarios
All customer-initiated payments optionally support 3-D Secure authentication for enhanced security.
Request
Request a one-off payment.
This API endpoint is used to initiate a one-time payment that requires the customer to be actively on-session. These payments involve real-time customer interactions and are the primary method for customer-initiated payments.
Hellgate utilizes an action_requirement mechanism to prompt any necessary customer interactions during the payment process. The interactions are supported with SDKs. See the Hellgate Developer Documentation for more information.
The amount given in minor units (e.g. use 700 for 7€). Some currencies do not support minor units (e.g. Japanese Yen). In this case send in the full value, .i.e. 100 for 100 JPY.
The three letter currency code. See: ISO-4217
The source for this payment request.
Type | Description |
---|---|
checkout | During the checkout an action requirement will be available, to determine the actual payment credentials from the shopper. The SDKs can be used to handle the session and safely process the payment data. |
token | An already existing Hellgate token can be used as source for the payment. |
credential | Already stored credentials are used as source for the payment. |
An optional array of split instructions.
Data in this array is only processed on a Hellgate account in the platform operating model. If you are in doubt, please reach out to your account representative.
In order to have a valid split instruction, the total amount of the payment needs to be the sum of all splits.
Type | Description |
---|---|
seller | Sending the given amount to the seller referenced by the merchant_id in the payload. The seller needs to be onboarded to the account and linked to the processor in order to receive funds from a payment split. |
commission | An already existing Hellgate token can be used as source for the payment. |
- Hellgate Sandbox
https://sandbox.hellgate.io/payments/one-off
- Hellgate Production
https://api.hellgate.io/payments/one-off
- curl
- Java
- Node.js
- Ruby
- Go
- Python
curl -i -X POST \
https://sandbox.hellgate.io/payments/one-off \
-H 'Content-Type: application/json' \
-H 'X-API-Key: YOUR_API_KEY_HERE' \
-d '{
"amount": 1000,
"currency_code": "EUR",
"reference": "Order #12345",
"source": {
"type": "checkout"
}
}'
Success response
The preference for the authentication method to be used for the payment.
Preference | Description |
---|---|
NO_3RI | Don't perform 3RI authentication for this payment (Default). |
TRY_3RI | Try to perform 3RI authentication for this payment. If it fails the payment will still be sent for authorization. |
REQUIRE_3RI | Require 3RI authentication for this payment. If it fails the payment will not be sent for authorization. |
The final result of the authentication. It holds in the cardholder authentication data (CAVV) and if there is a network token present, the token authentication data (TAVV).
The amount given in minor units (e.g. use 700 for 7€). Some currencies do not support minor units (e.g. Japanese Yen). In this case send in the full value, .i.e. 100 for 100 JPY.
The amount given in minor units (e.g. use 700 for 7€). Some currencies do not support minor units (e.g. Japanese Yen). In this case send in the full value, .i.e. 100 for 100 JPY.
The amount given in minor units (e.g. use 700 for 7€). Some currencies do not support minor units (e.g. Japanese Yen). In this case send in the full value, .i.e. 100 for 100 JPY.
The amount given in minor units (e.g. use 700 for 7€). Some currencies do not support minor units (e.g. Japanese Yen). In this case send in the full value, .i.e. 100 for 100 JPY.
The three letter currency code. See: ISO-4217
The reasons why a payment failed during processing in Hellgate.
This can be due to processing errors on the side of the processor, as well as errors in the processing of the underlying flow.
In case the failure is due to a processing problem, the transaction history of the payment can give more information on the exact failure details.
The ID of the initial payment.
Only present for subsequent merchant-initiated payments.
This is an optional attribute holding results from eventual pre-processing of the request.
The date when the recurring should expiry.
Only present for recurring payments.
Indicates the minimum number of days between authorisations.
Only present for recurring payments.
The source that was used for the payment.
Type | Description |
---|---|
card | The payment method card was used as source |
An array of split instructions.
Data in this array is only processed on a Hellgate account in the platform operating model. If you are in doubt, please reach out to your account representative.
Type | Description |
---|---|
seller | Sending the given amount to the seller referenced by the merchant_id in the payload. The seller needs to be onboarded to the account and linked to the processor in order to receive funds from a payment split. |
commission | An already existing Hellgate token can be used as source for the payment. |
Definition of the payment use-case for processing
{ "id": "54ba1fdb-7e4e-402b-aebb-66f9d5345cf8", "amount": { "requested": 1000 }, "action_requirement": { "type": "use_sdk", "session_id": "d5b8e449-13da-4594-bf00-643146fb35d1" }, "created_at": "2023-10-10T00:00:00Z", "currency_code": "EUR", "reference": "Order #12345", "status": "processing", "use_case": "ONE_OFF" }
Request
Request the initial payment for unscheduled subsequent payments.
This API endpoint is used to initiate an initial payment that requires the customer to be actively on-session. With the payment successfully authorized, subsequent unscheduled payments can be made while the customer is off-session.
Hellgate utilizes an action_requirement mechanism to prompt any necessary customer interactions during the payment process. The interactions are supported with SDKs. See the Hellgate Developer Documentation for more information.
The amount given in minor units (e.g. use 700 for 7€). Some currencies do not support minor units (e.g. Japanese Yen). In this case send in the full value, .i.e. 100 for 100 JPY.
The three letter currency code. See: ISO-4217
The source for this initial payment.
Type | Description |
---|---|
checkout | During the checkout an action requirement will be available, to determine the actual payment credentials from the shopper. The SDKs can be used to handle the session and safely process the payment data. |
token | An already existing Hellgate token can be used as source for the payment. |
credential | Already stored credentials are used as source for the payment. |
An optional array of split instructions.
Data in this array is only processed on a Hellgate account in the platform operating model. If you are in doubt, please reach out to your account representative.
In order to have a valid split instruction, the total amount of the payment needs to be the sum of all splits.
Type | Description |
---|---|
seller | Sending the given amount to the seller referenced by the merchant_id in the payload. The seller needs to be onboarded to the account and linked to the processor in order to receive funds from a payment split. |
commission | An already existing Hellgate token can be used as source for the payment. |
- Hellgate Sandbox
https://sandbox.hellgate.io/payments/unscheduled
- Hellgate Production
https://api.hellgate.io/payments/unscheduled
- curl
- Java
- Node.js
- Ruby
- Go
- Python
curl -i -X POST \
https://sandbox.hellgate.io/payments/unscheduled \
-H 'Content-Type: application/json' \
-H 'X-API-Key: YOUR_API_KEY_HERE' \
-d '{
"amount": 1000,
"currency_code": "EUR",
"reference": "Order #12345",
"source": {
"type": "checkout"
}
}'
Success response
The preference for the authentication method to be used for the payment.
Preference | Description |
---|---|
NO_3RI | Don't perform 3RI authentication for this payment (Default). |
TRY_3RI | Try to perform 3RI authentication for this payment. If it fails the payment will still be sent for authorization. |
REQUIRE_3RI | Require 3RI authentication for this payment. If it fails the payment will not be sent for authorization. |
The final result of the authentication. It holds in the cardholder authentication data (CAVV) and if there is a network token present, the token authentication data (TAVV).
The amount given in minor units (e.g. use 700 for 7€). Some currencies do not support minor units (e.g. Japanese Yen). In this case send in the full value, .i.e. 100 for 100 JPY.
The amount given in minor units (e.g. use 700 for 7€). Some currencies do not support minor units (e.g. Japanese Yen). In this case send in the full value, .i.e. 100 for 100 JPY.
The amount given in minor units (e.g. use 700 for 7€). Some currencies do not support minor units (e.g. Japanese Yen). In this case send in the full value, .i.e. 100 for 100 JPY.
The amount given in minor units (e.g. use 700 for 7€). Some currencies do not support minor units (e.g. Japanese Yen). In this case send in the full value, .i.e. 100 for 100 JPY.
The three letter currency code. See: ISO-4217
The reasons why a payment failed during processing in Hellgate.
This can be due to processing errors on the side of the processor, as well as errors in the processing of the underlying flow.
In case the failure is due to a processing problem, the transaction history of the payment can give more information on the exact failure details.
The ID of the initial payment.
Only present for subsequent merchant-initiated payments.
This is an optional attribute holding results from eventual pre-processing of the request.
The date when the recurring should expiry.
Only present for recurring payments.
Indicates the minimum number of days between authorisations.
Only present for recurring payments.
The source that was used for the payment.
Type | Description |
---|---|
card | The payment method card was used as source |
An array of split instructions.
Data in this array is only processed on a Hellgate account in the platform operating model. If you are in doubt, please reach out to your account representative.
Type | Description |
---|---|
seller | Sending the given amount to the seller referenced by the merchant_id in the payload. The seller needs to be onboarded to the account and linked to the processor in order to receive funds from a payment split. |
commission | An already existing Hellgate token can be used as source for the payment. |
Definition of the payment use-case for processing
{ "id": "54ba1fdb-7e4e-402b-aebb-66f9d5345cf8", "amount": { "requested": 1000 }, "action_requirement": { "type": "use_sdk", "session_id": "d5b8e449-13da-4594-bf00-643146fb35d1" }, "created_at": "2023-10-10T00:00:00Z", "currency_code": "EUR", "reference": "Order #12345", "status": "processing", "use_case": "UNSCHEDULED" }
Request
Request the initial payment for recurring subsequent payments.
This API endpoint is used to initiate an initial payment that requires the customer to be actively on-session. With the payment successfully authorized, subsequent recurring payments can be made while the customer is off-session.
Recurring payments must adhere to a predefined schedule to be successfully processed.
The following conditions must be met:
- Expiration Limit: The
recurring_expiry
date must not be exceeded. - Frequency Compliance: The
recurring_frequency
must not be lower than the defined minimum. - Amount Restriction: The
amount
must not exceed the initially authorized amount.
Hellgate utilizes an action_requirement mechanism to prompt any necessary customer interactions during the payment process. The interactions are supported with SDKs. See the Hellgate Developer Documentation for more information.
The amount given in minor units (e.g. use 700 for 7€). Some currencies do not support minor units (e.g. Japanese Yen). In this case send in the full value, .i.e. 100 for 100 JPY.
The three letter currency code. See: ISO-4217
The source for this initial payment.
Type | Description |
---|---|
checkout | During the checkout an action requirement will be available, to determine the actual payment credentials from the shopper. The SDKs can be used to handle the session and safely process the payment data. |
token | An already existing Hellgate token can be used as source for the payment. |
credential | Already stored credentials are used as source for the payment. |
An optional array of split instructions.
Data in this array is only processed on a Hellgate account in the platform operating model. If you are in doubt, please reach out to your account representative.
In order to have a valid split instruction, the total amount of the payment needs to be the sum of all splits.
Type | Description |
---|---|
seller | Sending the given amount to the seller referenced by the merchant_id in the payload. The seller needs to be onboarded to the account and linked to the processor in order to receive funds from a payment split. |
commission | An already existing Hellgate token can be used as source for the payment. |
- Hellgate Sandbox
https://sandbox.hellgate.io/payments/recurring
- Hellgate Production
https://api.hellgate.io/payments/recurring
- curl
- Java
- Node.js
- Ruby
- Go
- Python
curl -i -X POST \
https://sandbox.hellgate.io/payments/recurring \
-H 'Content-Type: application/json' \
-H 'X-API-Key: YOUR_API_KEY_HERE' \
-d '{
"amount": 1000,
"currency_code": "EUR",
"reference": "Order #12345",
"recurring_expiry": "20231010",
"recurring_frequency": 28,
"source": {
"type": "checkout"
}
}'
Success response
The preference for the authentication method to be used for the payment.
Preference | Description |
---|---|
NO_3RI | Don't perform 3RI authentication for this payment (Default). |
TRY_3RI | Try to perform 3RI authentication for this payment. If it fails the payment will still be sent for authorization. |
REQUIRE_3RI | Require 3RI authentication for this payment. If it fails the payment will not be sent for authorization. |
The final result of the authentication. It holds in the cardholder authentication data (CAVV) and if there is a network token present, the token authentication data (TAVV).
The amount given in minor units (e.g. use 700 for 7€). Some currencies do not support minor units (e.g. Japanese Yen). In this case send in the full value, .i.e. 100 for 100 JPY.
The amount given in minor units (e.g. use 700 for 7€). Some currencies do not support minor units (e.g. Japanese Yen). In this case send in the full value, .i.e. 100 for 100 JPY.
The amount given in minor units (e.g. use 700 for 7€). Some currencies do not support minor units (e.g. Japanese Yen). In this case send in the full value, .i.e. 100 for 100 JPY.
The amount given in minor units (e.g. use 700 for 7€). Some currencies do not support minor units (e.g. Japanese Yen). In this case send in the full value, .i.e. 100 for 100 JPY.
The three letter currency code. See: ISO-4217
The reasons why a payment failed during processing in Hellgate.
This can be due to processing errors on the side of the processor, as well as errors in the processing of the underlying flow.
In case the failure is due to a processing problem, the transaction history of the payment can give more information on the exact failure details.
The ID of the initial payment.
Only present for subsequent merchant-initiated payments.
This is an optional attribute holding results from eventual pre-processing of the request.
The date when the recurring should expiry.
Only present for recurring payments.
Indicates the minimum number of days between authorisations.
Only present for recurring payments.
The source that was used for the payment.
Type | Description |
---|---|
card | The payment method card was used as source |
An array of split instructions.
Data in this array is only processed on a Hellgate account in the platform operating model. If you are in doubt, please reach out to your account representative.
Type | Description |
---|---|
seller | Sending the given amount to the seller referenced by the merchant_id in the payload. The seller needs to be onboarded to the account and linked to the processor in order to receive funds from a payment split. |
commission | An already existing Hellgate token can be used as source for the payment. |
Definition of the payment use-case for processing
{ "id": "54ba1fdb-7e4e-402b-aebb-66f9d5345cf8", "amount": { "requested": 1000 }, "action_requirement": { "type": "use_sdk", "session_id": "d5b8e449-13da-4594-bf00-643146fb35d1" }, "created_at": "2023-10-10T00:00:00Z", "currency_code": "EUR", "reference": "Order #12345", "recurring_expiry": "20231010", "recurring_frequency": 28, "status": "processing", "use_case": "RECURRING" }
Merchant Initiated
These transactions occur without direct customer interaction at the time of payment.
Key use cases:
- Recurring subscriptions: Automated billing for subscription services
- Unscheduled transactions: Variable charges based on usage or consumption
- Retry logic: Re-attempt failed payments with stored credentials
All merchant-initiated payments must reference a prior customer-initiated transaction for compliance.
Payment Modifications
Modify existing payment transactions after initial authorization. Essential for flexible payment management across all operating models.
Available modifications:
- Capture: Finalize pre-authorized payments (for two-step payment flows)
- Void: Cancel authorized but uncaptured transactions
- Refund: Return funds to customers for captured payments
Modifications can be applied across multiple processors, maintaining consistency in multi-processor setups.
Payment Data
Access comprehensive payment transaction data for reporting, reconciliation, and analysis. Critical for all operating models to maintain transaction visibility.
Features:
- Transaction history: Full audit trail of payment lifecycle
- Multi-processor visibility: Unified view across all connected processors
- Real-time status: Current state of payments with processor responses
- Filtering capabilities: Search and filter by multiple criteria
Refund Data
Access detailed refund transaction data for tracking and reconciliation. Essential for customer service and financial reporting across all operating models.
Provides:
- Refund status tracking: Monitor refund processing across processors
- Transaction linking: Connect refunds to original payments
- Partial refund support: Track multiple refunds against single payments
- Processor responses: Detailed feedback from payment processors
Customer Initiated
Hellgate allows to process EMVCo 3-D Secure authentication requests as standalone request.
For example, these endpoints can be used to process payment authentication centrally and process the subsequent authorization requests conditionally on different payment processors.
The secion of customer initiated authentications consists of three use-cases:
Use-Case | Description |
---|---|
One Off | A standard situation in which a single payment amount shall undergo 3-D Secure authentication. |
Initial Recurring | An authentication of the first payment in the sequence of recurring payments. |
Initial Installment | An authentication of the first payment in the sequence of installment payments. |
Credentials on File
Manage stored payment credentials for repeat customers across all operating models. Essential for subscription services, marketplaces, and ecosystems requiring seamless repeat transactions.
Capabilities:
- Credential storage: Securely store customer payment methods for future use
- Cross-processor portability: Use stored credentials with any connected processor
- Compliance management: Automatic handling of card scheme mandates
- Customer control: Enable customers to view and manage their stored payment methods
Create Hellgate Tokens
Hellgate Tokens are powerful instrument to manage card holder data in a PCI/DSS compliant way.
Compliance as a Service
Achieve PCI / DSS compliance in almost no time using our certified managed compliance service.
No Acquirer Lock-In
Transparently use the cardholder data across all connected processors to implement a non lock-in acquiring setup.
Network Tokens
For every card which is tokenized on Hellgate, network-tokens can be automatically provisioned. This allows for more secure transactions, better conversion, and ultimately lower processing cost.
Token Management
All cards stored with Hellgate can be managed via the endpoints in this section.
The CVC2 security code is only kept in an ephemeral cache for a few minutes. The API allows to manage this resource with these endpoints:
- check if the CVC2 is still availble
- request a new session to renew the CVC2 with our SDK
- consume the token after a successful authorization on an external processor
Compliance Service
Safely handle sensitive cardholder data while maintaining PCI DSS compliance across all operating models. Our compliance service acts as a secure proxy between your systems and payment processors.
Key features:
- PCI DSS Level 1 certified: Reduce your compliance scope significantly
- Data forwarding: Securely transmit cardholder data to processors without touching your systems
- Format preservation: Maintain data formats required by different processors
Network Tokens
Hellgate supports Network Tokens with major card schemes.
The lifecycle of network tokens is automatically managed. When activated a network token is automatically provisioned and maintained through its life-cycle.
The use of Network Tokens requires prior activation by your account manager.
Merchants
Configure and manage merchant accounts based on your chosen operating model. The merchant management capabilities adapt to support all four Hellgate Commerce operating models.
The default model for single businesses. Your account operates as a standalone merchant processing its own transactions.
- Single merchant configuration locked to your primary account
- Cannot add sub-merchants (
POST /merchants
disabled) - Cannot delete the primary merchant (
DELETE /merchants/{id}
disabled) - Full access to all payment features for your own transactions
Processor Backup
In case your precious payment-method data is currently locked into an acquirer processor, Hellgate allows you to migrate the tokens automatically. Currently we support stripe.com, but more processors are on our list. Please ask you account manager for more information.
Detailed documentation on how to migrate your stripe payment methods can be found on the Hellgate Developer Documentation.