Skip to content

Logo

Zeta Solution

Supports in this guide: Payments, Payouts

Provider website: zetasolution.io


What you need to do for start processing transactions (brief summary)

  1. Choose account type
  2. Get your credentials (from Zeta Solution)
  3. Connect in Dashboard
  4. Send an API request

Choose account type

Zeta Solution has a single account type that covers both directions:

  • Provider account -> used for both payments (the customer pays with crypto on Zeta Solution's hosted invoice page) and payouts (crypto sent to a wallet address)

If you're not sure whether Zeta Solution fits your use case, confirm with your Corefy account manager.


Prerequisites: get from Zeta Solution

Sign up for a Zeta Solution merchant account, then generate and activate an API key in the Zeta Solution portal, API keys tab (see Zeta Solution's own API keys guide).

  • Public Key -> Corefy field public_key -> the API key issued by Zeta Solution -> where to find: Zeta Solution portal, API keys tab. Sent on every request as the X-Processing-Key header.
  • Secret Key -> Corefy field secret_key -> shown only once, right after the API key is activated -> where to find: Zeta Solution portal, API keys tab. Used to sign every request (X-Processing-Signature header) and to verify Zeta Solution's callbacks. Store it securely: if it's lost, the key has to be archived and a new one generated.
  • API URL (optional) -> Corefy field api_url -> currently has a single option, Zeta Solution's production endpoint (https://app.zetasolution.io/api/v2) -> leave as default.

Use the Master API key for this connection. Zeta Solution signs callbacks only with the active Master key, and Corefy checks callbacks against the key you connect, so callbacks fail verification if you connect a Custom key.

If you restrict the API key to specific IP addresses in the Zeta Solution portal, ask your Corefy account manager which IPs to allow. If you leave the IP list empty, Zeta Solution accepts requests from any IP.

Make sure the crypto currencies/networks you plan to accept or pay out are enabled on your Zeta Solution merchant account before testing. Which of them are usable for a given connection depends on what's turned on for your account.


Payments processing (connect Provider account, create payment-invoice)

Connect Provider account in Corefy Dashboard

Step 1 - Open connection form

Open Zeta Solution in the provider directory and press Connect at Zeta Solution Provider Overview page in the New connection section. Choose Provider account.

Step 2 - Fill in fields and select settings

  • Public key -> public_key
  • Secret key -> secret_key
  • API URL -> api_url (leave default)
  • Test mode -> test_mode (enable only if you are using Zeta Solution sandbox credentials)
  • Currency / Features -> choose the currencies enabled on your Zeta Solution account

Success

You have connected Zeta Solution Provider account!


First request to Corefy API (MIN)

What it does: creates a payment-invoice and returns a redirect link to Zeta Solution's hosted crypto payment page.

Payment - MIN

POST /api/payment-invoices

{
  "data": {
    "type": "payment-invoice",
    "attributes": {
      "reference_id": "8e3dbbb0-17af-4c9a-bedb-93bdac6900a2",
      "service": "zetasolution_eur_hpp",
      "currency": "EUR",
      "amount": 50,
      "customer": {
        "reference_id": "cus_123",
        "email": "johnsmith@gmail.com"
      }
    }
  }
}

Payment - MAX

POST /api/payment-invoices

{
  "data": {
    "type": "payment-invoice",
    "attributes": {
      "reference_id": "6795502c-e27d-4d07-85e0-93245aab9a3f",
      "service": "bitcoin_eur_hpp",
      "currency": "EUR",
      "amount": 50,
      "customer": {
        "reference_id": "cus_123",
        "email": "johnsmith@gmail.com",
        "description": "VIP customer"
      }
    }
  }
}

customer.email is required for every Zeta Solution payment. If it's missing, Corefy rejects the request with INVALID_DETAILS, and there's no fallback value. Because a customer object is always sent, customer.reference_id is required too. It's passed to Zeta Solution as the end-user reference.

Two kinds of payment services are available:

  • zetasolution_eur_hpp: the customer chooses which crypto to pay with on Zeta Solution's hosted page.
  • Crypto-specific services (<crypto>_<currency>_hpp, for example bitcoin_eur_hpp, tether_trc20_usd_hpp, usd_coin_sol_usdc_hpp): fix the asset and network the customer pays with. The invoice can be priced in fiat (EUR, USD, UAH, CAD, CLP) or in the crypto itself (BTC, ETH, LTC, USDT, USDC). For these services only, customer.description is also forwarded to Zeta Solution if you send it.

Which services you can use depends on what's enabled on your Zeta Solution account. Check the Currency / Features selector in the Dashboard connection form, because available currencies are loaded from your Zeta Solution account when you connect.


Extended request (MAX)

Why add extra fields (typical reasons): - Provide additional customer details for compliance/reconciliation - Positively influence conversion rate - Include optional fields required by your specific flow


Options

Options are configured on the Corefy side and affect how Corefy builds provider requests or processes responses.

Currently available options (4)

  • title_key - which payment-metadata field to use as the invoice title shown on Zeta Solution's hosted page.
  • payment_title_type - whether the invoice accepts only the exact amount or also partial payments.
  • timer - shown in the Dashboard, but has no effect for Zeta Solution payments (see below).
  • extended_amount_precision - how many decimals Corefy keeps when rounding the invoice amount for USDT and ETH.
title_key

What it does: picks a key from the payment's metadata to use as the invoice title on Zeta Solution's hosted page. If not set, or if the key isn't in metadata, Corefy uses "Payment <payment_number>" instead.

When to use: set it if you want the customer to see a recognisable order/product name instead of the generic payment number.

Default: not set (uses the fallback title)

Allowed values: any string matching a key in your metadata object

payment_title_type (Payment type)

What it does: sets the invoice type sent to Zeta Solution. With Full Only, the customer must pay the exact amount. With Partial Allowed, the invoice also accepts partial payments until it expires.

When to use: choose Partial Allowed if you want to accept crypto payments that don't exactly match the invoice amount.

Default: not set (no invoice type is sent, so Zeta Solution applies its own default)

Allowed values: Full Only / Partial Allowed

timer

What it does: nothing for this connector. Corefy always enables the countdown timer on Zeta Solution invoices, so the customer always sees it on the hosted page, whatever this option is set to.

When to use: no need to set it.

Default: false (ignored)

Allowed values: true / false

extended_amount_precision

What it does: controls how many decimals Corefy keeps when rounding the invoice amount up before sending it to Zeta Solution:

  • Disabled: ETH amounts are rounded up to 6 decimals; all other currencies to 8.
  • Enabled: USDT amounts are rounded up to 6 decimals; all other currencies, ETH included, to 8.

When to use: enable it if you invoice in USDT and need the invoice amount capped at 6 decimals, or if you invoice in ETH and need full 8-decimal precision.

Default: false

Allowed values: true / false


Constants (fallback fields)

This connector has no Dashboard-configurable Constants. customer.email has no fallback and must always be sent in the request (see above).


Refunds

Zeta Solution does not support refunds through Corefy.


Payouts processing (connect Provider account, create payout-invoice)

Connect Provider account in Corefy Dashboard

Payouts use the same Provider account connection as Payments above. One connection covers both directions, and there's nothing extra to fill in for payouts.


First request to Corefy API

What it does: creates a payout-invoice and sends crypto to the given wallet address.

Payout - Actual

POST /api/payout-invoices

{
  "data": {
    "type": "payout-invoice",
    "attributes": {
      "reference_id": "0dde9e79-2c64-4703-adaf-93d710633401",
      "service": "bitcoin_usd",
      "currency": "USD",
      "amount": 50,
      "customer": {
        "reference_id": "cus_123"
      },
      "fields": {
        "wallet_id": "bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh"
      }
    }
  }
}

Both fields.wallet_id (the recipient's blockchain address) and customer.reference_id are required. A payout without a customer is rejected before it reaches Zeta Solution. No other request fields are passed to Zeta Solution for payouts, so there's no separate MAX example.

The service code sets the crypto/fiat pair (<crypto>_<currency>, no _hpp suffix, for example bitcoin_usd, tether_trc20_usd, ethereum_arbitrum_usd, litecoin_cad). Payout services are priced in USD, CAD or CLP. The payout is debited in the request currency and sent to the wallet in the crypto named by the service, and Zeta Solution converts between them. A payout service is available only if its currency matches your deposit account currency and the crypto is present in your Zeta Solution account balances.


Constants (fallback fields)

This connector has no Dashboard-configurable Constants for payouts.


Refunds

Refunds don't apply to payouts. Zeta Solution does not support refunds through Corefy.


Additional info

  1. Callback routing. Zeta Solution sends payment and payout callbacks to a single URL per merchant account. The callback endpoint is /zetasolution/callback for both directions. Register it in the Zeta Solution portal under Settings -> Callbacks (see Zeta Solution's callback URL guide).
  2. Callback authentication. Zeta Solution signs every callback with the X-Processing-Key/X-Processing-Signature headers (HMAC-SHA512 over the callback body with your Secret Key). Corefy verifies this automatically, so there's no separate callback secret to configure.
  3. Sandbox. Enable Test mode only with Zeta Solution sandbox credentials. With Test mode on, Corefy sends requests to Zeta Solution's sandbox, and production credentials won't work there. To get sandbox access, contact Zeta Solution support.
  4. USDT networks. For services priced in USDT (tether_trc20_usdt_hpp, tether_erc20_usdt_hpp), the invoice is created directly in the network-specific asset (TRC20 or ERC20), so the customer pays on the network the service names.
  5. No destination tag/memo on payouts. Corefy doesn't send a tag/memo with Zeta Solution payouts. Check with your account manager before paying out to destination wallets that require one (for example, some XRP exchange addresses).
  6. No reconciliation. Payment and payout statuses are updated only through callbacks. Reconciliation isn't supported for this connector.

FAQ / Troubleshooting

  • INVALID_DETAILS / payment rejected -> customer.email is missing; it's required for every Zeta Solution payment
  • Validation error on customer.reference_id -> it's required whenever a customer object is sent, which is always the case for Zeta Solution payments and payouts
  • Callbacks don't arrive -> check that /zetasolution/callback is registered in the Zeta Solution portal under Settings -> Callbacks
  • Payout rejected with a no-customer error -> customer.reference_id is missing; a payout without a customer is rejected before it reaches Zeta Solution
  • Connection test fails / invalid credentials -> check that the Public Key and Secret Key belong to the same active API key, and that Test mode matches the environment the keys were issued for
  • Callbacks rejected with an invalid signature -> make sure you connected the active Master API key, since Zeta Solution signs callbacks only with it
  • A currency/crypto pair I expect isn't available -> confirm it's enabled on your Zeta Solution merchant account, then check the Dashboard's Currency / Features selector for this connection. For payouts, also check that the crypto has a balance on your Zeta Solution account.
  • Not sure which account type to use? -> ask your Corefy account manager

Question

Still looking for help connecting your Zeta Solution account? Please contact our support team!