Skip to content

Logo

Luxon Pay

Supports in this guide: Payments | Payouts

Provider website: luxon.com


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

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

Choose account type

Luxon Pay can be connected in different ways (depending on your needs):

  • If you do payments (customer is redirected to the Luxon Pay payment page and pays from their Luxon wallet) -> choose Provider account
  • If you do payouts (to a Luxon wallet, or to a Luxon user by email or phone number) -> choose Provider account

Payments and payouts work through the same Provider account and the same Luxon Pay credentials. If you're not sure which one to use, confirm with your Corefy account manager.

Note

Luxon Pay currently supports USD and CAD.


Prerequisites: get from Luxon Pay

Get the following values for your Luxon Pay merchant account:

  • Merchant ID -> Corefy field merchant_id -> example: 5678 -> your Luxon Pay merchant identifier -> where to find: Luxon Pay backoffice / issued by Luxon Pay manager
  • Key ID -> Corefy field key_id -> example: k-8hTRqZw2LmN4pXv7YbC1dE9sJ3uA6G -> identifier of your API key, sent with every signed request -> where to find: Luxon Pay backoffice / issued by Luxon Pay manager
  • Key value -> Corefy field key_value -> example: Qe4_rT9yUi2oP6aS1dF8gH3jK5lZ7xCv -> secret API key used to sign every request (HMAC-SHA512) -> where to find: Luxon Pay backoffice / issued by Luxon Pay manager

Note

Make sure Key ID and Key value belong to the same API key and to the same environment (test or production) you select with Test mode.


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

Connect Provider account in Corefy Dashboard

Step 1 - Open connection form

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

Step 2 - Fill in fields and select settings

  • Merchant ID -> merchant_id
  • Key ID -> key_id
  • Key value -> key_value (can be updated later without re-creating the connection, e.g. after a key rotation)
  • Test mode -> (enable if you are using Luxon Pay test credentials)
  • API URL -> api_url (optional - leave empty to use the default Luxon Pay API URL for the selected mode; fill in only if your Luxon Pay manager gave you a different one)
  • Provider Options -> find_refund_in_report (see Options below)

Choose Currency and Features. You can set these parameters according to available currencies and features for your Luxon Pay account, but it is necessary to check details of the connection with your Corefy account manager.

Success

You have connected Luxon Pay Provider account!


First request to Corefy API (MIN)

What it does: creates a payment-invoice. The customer is redirected to the Luxon Pay payment page to complete the payment.

Payment - MIN

POST /api/payment-invoices

{
  "data": {
    "type": "payment-invoice",
    "attributes": {
      "reference_id": "3f1c9a52-7d4e-4b8a-9c21-6e5f0d8b4a17",
      "service": "luxon_wallet_usd_hpp",
      "currency": "USD",
      "amount": 100
    }
  }
}

The customer block is optional: when it is not sent, Corefy generates a random user identifier for Luxon Pay.

Payment - MAX

POST /api/payment-invoices

{
  "data": {
    "type": "payment-invoice",
    "attributes": {
      "reference_id": "b7e2d4f1-0a9c-4e3b-8f61-2c5d7a9e1b30",
      "service": "luxon_wallet_usd_hpp",
      "currency": "USD",
      "amount": 100,
      "description": "Order #12345",
      "return_url": "https://example.com/return",
      "customer": {
        "reference_id": "cus_8d2f6a1e"
      }
    }
  }
}

  • customer.reference_id is sent to Luxon Pay as the user identifier
  • description is shown to the customer and merchant in Luxon Pay as the payment comment
  • return_url - where the customer is redirected after the payment

For CAD use service luxon_wallet_cad_hpp and "currency": "CAD".


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 (1):

  • find_refund_in_report - lets Corefy find the refund status in the Luxon Pay transactions report when the refund notification has not arrived.
find_refund_in_report

What it does: Luxon Pay does not return the refund transaction ID in the refund response - it arrives only in the refund webhook. When this option is enabled and the refund webhook has not arrived yet, Corefy looks the refund up in the Luxon Pay transactions report (from the payment creation date until now) and then checks its status. When disabled, Corefy waits for the refund webhook.

When to use: enable it if refund webhooks may not reach Corefy (or arrive with a delay) and you want refund statuses to be updated without them.

Default: "No"

Allowed values: Yes / No


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

Connect Provider account in Corefy Dashboard

Step 1 - Open connection form

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

If you have already connected the Luxon Pay Provider account for payments, the same connection is used for payouts.

Step 2 - Fill in fields (provider -> Corefy)

  • Merchant ID -> merchant_id
  • Key ID -> key_id
  • Key value -> key_value
  • Test mode -> (enable if you are using Luxon Pay test credentials)
  • API URL -> api_url (optional - leave empty to use the default Luxon Pay API URL for the selected mode)

Success

You have connected Luxon Pay Provider account!


First request to Corefy API (MIN)

What it does: creates a payout-invoice.

Luxon Pay payouts are available by three methods - choose the service depending on how you identify the recipient:

Recipient Services Required field
Luxon wallet ID luxon_wallet_usd, luxon_wallet_cad fields.recipient_wallet (format 0x + 40 hex characters)
Email of the Luxon user luxon_email_usd, luxon_email_cad fields.email
Phone number of the Luxon user luxon_phone_usd, luxon_phone_cad fields.phone

Payout - MIN

POST /api/payout-invoices

{
  "data": {
    "type": "payout-invoice",
    "attributes": {
      "reference_id": "c4a8e1f7-2b6d-4d93-a0e5-9f3b7c1d6e28",
      "service": "luxon_wallet_usd",
      "currency": "USD",
      "amount": 100,
      "fields": {
        "recipient_wallet": "0xAbC1234567890aBcDeF1234567890AbCdEf12345"
      }
    }
  }
}

Payout - MAX

POST /api/payout-invoices

{
  "data": {
    "type": "payout-invoice",
    "attributes": {
      "reference_id": "e9d3b6a2-5f1c-4e87-b4a0-7c2e8d5f9a61",
      "service": "luxon_wallet_usd",
      "currency": "USD",
      "amount": 100,
      "description": "Withdrawal #67890",
      "customer": {
        "reference_id": "cus_8d2f6a1e"
      },
      "fields": {
        "recipient_wallet": "0xAbC1234567890aBcDeF1234567890AbCdEf12345"
      }
    }
  }
}

  • customer.reference_id is sent to Luxon Pay as the user identifier (when it is not sent, Corefy generates a random one)
  • description is sent to Luxon Pay as the payout comment

For an email or phone payout, use the matching service and replace recipient_wallet with "email": "john.smith@example.com" or "phone": "+15551234567".


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

Additional info

  1. For callbacks processing, ask your Luxon Pay manager to set up the webhook URL for your merchant account. One endpoint is used for payments, refunds and payouts: /luxonpay/callback.

  2. Luxon Pay webhooks are not signed. Corefy accepts them only from Luxon Pay IP addresses and always confirms the final status through the Luxon Pay API before updating the transaction.

  3. Refunds are available for the full payment amount only (no partial or multiple refunds). The refund result may arrive with a delay - see the find_refund_in_report option.

  4. Payouts are possible only to active Luxon Pay users. A payout to an inactive or unknown user is declined by Luxon Pay.

  5. The payout balance is shown in Corefy per currency (USD, CAD) based on your Luxon Pay wallet balances. Luxon Pay creates a wallet in a currency after the first successful payment in it, so the balance is 0 until then.


FAQ / Troubleshooting

  • Invalid credentials / auth error -> verify that Key ID and Key value belong to the same API key and match the selected Test mode (test vs production)
  • Currency or service is not supported -> Luxon Pay supports USD and CAD; confirm the currencies/features enabled for your Luxon Pay account and in Corefy
  • Payout declined -> check the recipient: the Luxon wallet ID format (0x + 40 hex characters), email or phone must belong to an active Luxon Pay user; also make sure your Luxon Pay wallet has enough balance
  • Refund status is not updated -> make sure the webhook URL is set up on the Luxon Pay side, or enable the find_refund_in_report option
  • Not sure which account type to use? -> ask your Corefy account manager

Question

Still looking for help connecting your Luxon Pay account? Please contact our support team!