Quick Start
This guide will help you create your first payment using the LuxCore API.Prerequisites
1
Obtain your API keys
API keys are provided by the LuxCore team during your merchant onboarding. Contact your account manager or reach out to developers@lux-core.io to request access.
2
Choose your environment
Use a test key (
qp_test_sk_*) for development. Switch to a production key (qp_prod_sk_*) when you’re ready for production.Merchant accounts and API keys are created by the LuxCore team. Self-registration is not available.
Create Your First Payment
All amounts are in minor units (centavos, cents). For example, to charge 1,000.00 ARS, pass
amount: 100000. Passing 1000 would create a payment for only 10.00 ARS.- ARS (Argentina)
- MXN (Mexico)
- UYU (Uruguay)
- AUD (Australia)
curl -X POST "https://api.lux-core.io/api/v1/payments" \
-H "X-API-Key: qp_test_sk_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"amount": 100000,
"currency": "ARS",
"method": "bank_transfer",
"type": "deposit",
"merchant_reference": "order_12345",
"customer": {
"name": "Juan Perez",
"email": "juan@example.com"
}
}'
import requests
url = "https://api.lux-core.io/api/v1/payments"
headers = {
"X-API-Key": "qp_test_sk_your_api_key_here",
"Content-Type": "application/json"
}
payload = {
"amount": 100000, # $1,000.00 ARS (amount in centavos)
"currency": "ARS",
"method": "bank_transfer",
"type": "deposit",
"merchant_reference": "order_12345",
"customer": {
"name": "Juan Perez",
"email": "juan@example.com"
}
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
const axios = require('axios');
const response = await axios.post(
'https://api.lux-core.io/api/v1/payments',
{
amount: 100000, // $1,000.00 ARS (amount in centavos)
currency: 'ARS',
method: 'bank_transfer',
type: 'deposit',
merchant_reference: 'order_12345',
customer: {
name: 'Juan Perez',
email: 'juan@example.com'
}
},
{
headers: {
'X-API-Key': 'qp_test_sk_your_api_key_here',
'Content-Type': 'application/json'
}
}
);
console.log(response.data);
curl -X POST "https://api.lux-core.io/api/v1/payments" \
-H "X-API-Key: qp_test_sk_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"amount": 100000,
"currency": "MXN",
"method": "spei",
"type": "deposit",
"merchant_reference": "order_12345",
"customer": {
"name": "Juan Perez",
"email": "juan@example.com"
}
}'
import requests
url = "https://api.lux-core.io/api/v1/payments"
headers = {
"X-API-Key": "qp_test_sk_your_api_key_here",
"Content-Type": "application/json"
}
payload = {
"amount": 100000, # $1,000.00 MXN (amount in centavos)
"currency": "MXN",
"method": "spei",
"type": "deposit",
"merchant_reference": "order_12345",
"customer": {
"name": "Juan Perez",
"email": "juan@example.com"
}
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
const axios = require('axios');
const response = await axios.post(
'https://api.lux-core.io/api/v1/payments',
{
amount: 100000, // $1,000.00 MXN (amount in centavos)
currency: 'MXN',
method: 'spei',
type: 'deposit',
merchant_reference: 'order_12345',
customer: {
name: 'Juan Perez',
email: 'juan@example.com'
}
},
{
headers: {
'X-API-Key': 'qp_test_sk_your_api_key_here',
'Content-Type': 'application/json'
}
}
);
console.log(response.data);
curl -X POST "https://api.lux-core.io/api/v1/payments" \
-H "X-API-Key: qp_test_sk_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"amount": 100000,
"currency": "UYU",
"method": "bank_transfer",
"type": "deposit",
"merchant_reference": "order_12345",
"customer": {
"name": "Juan Perez",
"email": "juan@example.com"
}
}'
import requests
url = "https://api.lux-core.io/api/v1/payments"
headers = {
"X-API-Key": "qp_test_sk_your_api_key_here",
"Content-Type": "application/json"
}
payload = {
"amount": 100000, # $1,000.00 UYU (amount in centésimos)
"currency": "UYU",
"method": "bank_transfer",
"type": "deposit",
"merchant_reference": "order_12345",
"customer": {
"name": "Juan Perez",
"email": "juan@example.com"
}
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
const axios = require('axios');
const response = await axios.post(
'https://api.lux-core.io/api/v1/payments',
{
amount: 100000, // $1,000.00 UYU (amount in centésimos)
currency: 'UYU',
method: 'bank_transfer',
type: 'deposit',
merchant_reference: 'order_12345',
customer: {
name: 'Juan Perez',
email: 'juan@example.com'
}
},
{
headers: {
'X-API-Key': 'qp_test_sk_your_api_key_here',
'Content-Type': 'application/json'
}
}
);
console.log(response.data);
curl -X POST "https://api.lux-core.io/api/v1/payments" \
-H "X-API-Key: qp_test_sk_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"amount": 100000,
"currency": "AUD",
"method": "bank_transfer",
"type": "deposit",
"merchant_reference": "order_12345",
"customer": {
"name": "James Smith",
"email": "james@example.com"
}
}'
import requests
url = "https://api.lux-core.io/api/v1/payments"
headers = {
"X-API-Key": "qp_test_sk_your_api_key_here",
"Content-Type": "application/json"
}
payload = {
"amount": 100000, # $1,000.00 AUD (amount in cents)
"currency": "AUD",
"method": "bank_transfer",
"type": "deposit",
"merchant_reference": "order_12345",
"customer": {
"name": "James Smith",
"email": "james@example.com"
}
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
const axios = require('axios');
const response = await axios.post(
'https://api.lux-core.io/api/v1/payments',
{
amount: 100000, // $1,000.00 AUD (amount in cents)
currency: 'AUD',
method: 'bank_transfer',
type: 'deposit',
merchant_reference: 'order_12345',
customer: {
name: 'James Smith',
email: 'james@example.com'
}
},
{
headers: {
'X-API-Key': 'qp_test_sk_your_api_key_here',
'Content-Type': 'application/json'
}
}
);
console.log(response.data);
Response
- ARS Response
- MXN Response
- UYU Response
- AUD Response
{
"transaction_id": "pay_1234567890_abcdefgh",
"status": "processing",
"amount": 100000,
"currency": "ARS",
"method": "bank_transfer",
"type": "deposit",
"merchant_reference": "order_12345",
"created_at": "2025-01-21T10:30:00Z",
"bank_details": {
"amount": "100000",
"purpose": "Payment pay_1234567890_abcdefgh",
"currency": "ARS",
"bank_name": "Banco Nacion",
"swift_code": null,
"account_holder": "LuxCore Platform S.A.",
"account_number": "0110012345678901234567"
}
}
{
"transaction_id": "pay_1234567890_abcdefgh",
"status": "processing",
"amount": 100000,
"currency": "MXN",
"method": "spei",
"type": "deposit",
"merchant_reference": "order_12345",
"created_at": "2025-01-21T10:30:00Z",
"bank_details": {
"amount": "100000",
"purpose": "Payment pay_1234567890_abcdefgh",
"currency": "MXN",
"bank_name": "STP",
"swift_code": null,
"account_holder": "LuxCore Platform S.A. de C.V.",
"account_number": "646180157000000001"
}
}
{
"transaction_id": "pay_1234567890_abcdefgh",
"status": "processing",
"amount": 100000,
"currency": "UYU",
"method": "bank_transfer",
"type": "deposit",
"merchant_reference": "order_12345",
"created_at": "2025-01-21T10:30:00Z",
"bank_details": {
"amount": "100000",
"purpose": "Payment pay_1234567890_abcdefgh",
"currency": "UYU",
"bank_name": "BROU",
"swift_code": null,
"account_holder": "LuxCore Platform S.A.",
"account_number": "001234567890"
}
}
{
"transaction_id": "pay_1234567890_abcdefgh",
"status": "processing",
"amount": 100000,
"currency": "AUD",
"method": "bank_transfer",
"type": "deposit",
"merchant_reference": "order_12345",
"created_at": "2026-02-18T10:30:00Z",
"bank_details": {
"amount": "100000",
"purpose": "Payment pay_1234567890_abcdefgh",
"currency": "AUD",
"bank_name": "Commonwealth Bank",
"swift_code": "CTBAAU2S",
"account_holder": "LuxCore Platform Pty Ltd",
"bsb": "062-000",
"account_number": "12345678"
}
}
Understanding the Response
| Field | Description |
|---|---|
transaction_id | Unique payment identifier. Use this to track the payment. |
status | Current payment status. Deposits start as processing, withdrawals as pending. |
bank_details | Bank details for the customer to complete the transfer (account number, holder, etc.) |
What’s Next?
Set up Webhooks
Receive real-time notifications when the payment completes
Payment Types
Learn about deposits, withdrawals, and payment pages
Test Your Integration
Use test mode to simulate different scenarios
Go Live
Switch to production when you’re ready
Common Issues
401 Unauthorized
401 Unauthorized
Make sure you’re including the
X-API-Key header with a valid API key.400 Bad Request
400 Bad Request
Check that all required fields are present and properly formatted. The
amount should be in minor units (centavos for MXN).Payment method unavailable
Payment method unavailable
Ensure the payment method is enabled for your merchant account in the dashboard.
