Skip to content

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.

Operating Models

Hellgate Commerce supports four distinct operating models to match your business needs:

  1. Primary Merchant - The standard operating model. Works great for single merchant setups.
  2. Platform - An operating model, which allows to process platform / marketplace payments.
  3. Ecosystem - An operationg model based on network tokens, which allows to facilitate transactions in e-commerce ecosystems.
  4. Managed Ecosystem - In this operating model, the management of the ecosystem is provided by Starfish as a service.

API Organization

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
Download OpenAPI description
Overview
Languages
Servers
Hellgate Sandbox

https://sandbox.hellgate.io/

Hellgate Production

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.

Operations

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.

Operations

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.

Operations

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
Operations

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
Operations

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 OffA standard situation in which a single payment amount shall undergo 3-D Secure authentication.
Initial RecurringAn authentication of the first payment in the sequence of recurring payments.
Initial InstallmentAn authentication of the first payment in the sequence of installment payments.
Operations

Merchant Initiated (3RI)

Hellgate supports requestor-initiated EMVCo 3-D Secure authentication requests as standalone transactions.

All requests in this section must be linked to a prior customer-initiated authentication.

Operations

Authentication Data

Access the results of prior authentications for reference.

Operations

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
Operations

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.

Operations

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
Operations

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
Operations

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.

Operations

Request

If the provisioning of a network token status is failed or not_available for any reason, this endpoint can be used to provision a network token.

Security
APIKeyAuth
Path
idstring(uuid)required

The ID of the Hellgate token

curl -i -X POST \
  'https://sandbox.hellgate.io/tokens/{id}/provisions' \
  -H 'X-API-Key: YOUR_API_KEY_HERE'

Responses

Success response

Bodyapplication/json
idstring(uuid)required

The ID of the Hellgate Token

Example: "5d6b2c9a-9b0b-4b0c-8c7d-9e9d5d7e9d5d"
cardholder_namestring

The name of the owner of the card

Example: "John Doe"
card_art_urlstring

The url linking to the card art endpoint

Example: "https://api.hellgate.io/tokens/card-art/374c911a-8125-40eb-acb8-a26efd25f02b"
created_atstring(date-time)required

The date-time the payment-method was created (following ISO 8601)

Example: "2023-10-01T00:00:00Z"
expiry_monthintegerrequired

The number of month in a year (e.g. April is 4)

Example: 4
expiry_yearintegerrequired

The year given as four digit number (e.g. 2023)

Example: 2033
expires_atstring(date-time)

The date-time when the token will expire. Applicable only for ephemeral tokens.

Example: "2023-10-07T00:00:00Z"
invalidated_atstring(date-time)

The time the Hellgate Token was invalidated, because the underlying payment instrument was invalidated by the scheme.

issuer_identification_numberstringrequired

The issuer idenfication number (IIN) - also known as BIN

Example: "424242"
account_number_last_fourstring

Last four digits of the card number

account_number_lengthinteger

The total number of digits in the card number

masked_account_numberstringrequired

The full lenght of the card number, but masked to conform to PCI/DSS requirments

Example: "424242******4242"
bank_namestring

Issuer bank name

segmentstring

Card segment

Enum"business""consumer""commercial""other"
statusstring

The status of this Hellgate token.

Enum"active""invalid"
typestring

Card type

Enum"credit""debit"
country_codestring

A two letter country code. ISO 3166-1 alpha-2

network_token_statusstring

The status of the associated network token.

StatusDescription
activeThe network token is active and can be used.
inactiveThe network token is inactive, which prevents using it. The reason can be for example suspended network token.
pendingA network token is currently being provisioned. As soon as this is available, the status is changed to active.
failedA network token failed to be provisioned.
deletedThe network token is deleted and cannot be used again. It is also not possible to activate the network token again.
not_availableA network token can not be provisioned with the current configuration.
Enum"active""inactive""pending""deleted""failed""not_available"
network_token_status_reasonobject
schemestringrequired

The scheme in which the card was issued

Enum"VISA""Mastercard""American Express""Discover""Diners Club""JCB""UnionPay""Unknown"
identity_and_verificationstring

The type of ID&V submitted during the creation of the Hellgate token..

Enum"none""checked""skipped"
authentication_dataobject
supports_device_bindingboolean
business_keystring

This attribute holds the original business key under which the cardholder data was stored on the system from which it was imported to Hellgate.

It can be used for reconciliation or reference purposes.

import_providerstring

The source from which the cardholder data was imported from.

The business_key attribute will refer to the original ID at this provider.

Response
application/json
{ "id": "5d6b2c9a-9b0b-4b0c-8c7d-9e9d5d7e9d5d", "cardholder_name": "John Doe", "card_art_url": "https://api.hellgate.io/tokens/card-art/374c911a-8125-40eb-acb8-a26efd25f02b", "created_at": "2023-10-01T00:00:00Z", "expiry_month": 4, "expiry_year": 2033, "expires_at": "2023-10-07T00:00:00Z", "issuer_identification_number": "424242", "masked_account_number": "424242******4242", "network_token_status": "active", "scheme": "VISA" }

Request

Request a payment-data bundle for a Hellgate token.

The bundle can contain various elements including the TAVV cryptogram for a network token.

This call supports the all operating models of Hellgate (single merchant and eco-systems).

For eco-systems you need to specify which merchant you want to request the crypotgram for.

Security
APIKeyAuth
Path
idstring(uuid)required

The ID of the Hellgate token

Bodyapplication/json
amountinteger>= 0required

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.

currency_codestringrequired

The three letter currency code. See: ISO-4217

merchant_idstring(uuid)

The ID of the merchant for whom the authentication is requested.

Only required when the account operates an ecoystem or platform. The value will default to the primary merchant of an account in other cases.

Example: "00000000-0000-0000-0000-000000000000"
referencestringrequired

A reference to the payment

Example: "1234567890"
curl -i -X POST \
  'https://sandbox.hellgate.io/tokens/{id}/payment-data' \
  -H 'Content-Type: application/json' \
  -H 'X-API-Key: YOUR_API_KEY_HERE' \
  -d '{
    "amount": 10000,
    "currency_code": "EUR",
    "reference": "1234567890"
  }'

Responses

Success response

Bodyapplication/json
idstring(uuid)required

The id of the requested payment data

amountinteger>= 0required

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.

currency_codestringrequired

The three letter currency code. See: ISO-4217

created_atstring(date-time)

The date-time the payment-data was created (following ISO 8601)

encrypted_authentication_datastring

JWE encrypted JSON string containing authentication data.

Encrypted in a symmetric way with the shared encryption key using "alg"=A256GCMKW and "enc"="A256GCM". For decryption make sure the shared secret is hashed with a sha256 digest.

The decrypted JSON has the following format:

{
    network_token: {
      token: "token_value",
      expiry_year: 2023,
      expiry_month: 12
    },
    cryptogram: "cryptogram_value",
    eci: "eci_value"
}
  • The field network_token contains the value of the token, the year of expiry and the month of expiry of the token and is always included.
  • The field cryptogram contains the value of the cryptogram and is always included.
  • The field eci can instead have a value if there was an Electronic Commerce Indicator assigned, or it can be null if no information was provided.
failure_detailsArray of objects

The reasons why the processing failed. There are two categories of errors that can happen in this context (the source field indicates the category):

  1. Scheme errors: errors that are returned by the scheme.
  2. Configuration errors: errors that are caused by the configuration with respect to the scheme.
merchant_idstring(uuid)required

The ID of the merchant for whom the authentication is requested

referencestringrequired

Reference in calling system

successbooleanrequired

The result of the processing of the request. If true, the processing was successfully completed. In case it is false, the processing failed and the failure_details field contains more information about the failure.

token_idstring(uuid)required

The ID of the token on Hellgate

Response
application/json
{ "id": "00000000-0000-0000-0000-000000000000", "amount": 10000, "currency_code": "EUR", "created_at": "2023-10-01T00:00:00Z", "encrypted_authentication_data": "eyJhbGc...", "merchant_id": "00000000-0000-0000-0000-000000000000", "reference": "1234567890", "success": true, "token_id": "00000000-0000-0000-0000-000000000000" }

Request

List all payment-data bundles created for this Hellgate Token.

Security
APIKeyAuth
Path
idstring(uuid)required

The ID of the Hellgate token

Query
limitinteger[ 1 .. 500 ]

The desired amount of records per page. The parameter defaults to 50 if it is omitted and has a maximum of 500.

pageinteger>= 1

The desired number of the page to return.

sortstring

It allows sorting the result by created_at. e.g sort=created_at+asc or sort=created_at+desc

curl -i -X GET \
  'https://sandbox.hellgate.io/tokens/{id}/payment-data?limit=1&page=1&sort=string' \
  -H 'X-API-Key: YOUR_API_KEY_HERE'

Responses

Success response

Bodyapplication/json
dataArray of objects
paginationobject

The meta-data describing lists of data from the Hellgate API. The pages are indexed from 1 up to the total_pages.

Example: {"current_page":1,"page_size":1,"total_items":1,"total_pages":1}
Response
application/json
{ "data": [ {} ], "pagination": { "current_page": 1, "page_size": 1, "total_items": 1, "total_pages": 1 } }

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
Operations

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.

Operations

Reconciliation

Reconcile imported token data.

Operations