Skip to main content
The Accelebit Payments API is a server-to-server gateway — your backend sends card and billing details directly to the API and receives a payment result in real time. This guide walks you through the full flow: getting your API keys, creating a customer, submitting a test payment, and handling the response.
1

Get your API keys

Sign in to the Accelebit Dashboard and navigate to Developers > API Keys. You will see two types of keys:
Key typePrefixUse
Secret keysmtgw_sk_Server-side API calls. Never expose this in client-side code.
Public keysmtgw_pk_Identifies your account in client-side contexts. Not used for API calls.
All API requests require your secret key in the X-API-Key header. During development, use a test key (prefixed smtgw_sk_test_) — it will never trigger real charges.
2

Create a customer

Before processing payments, create a customer record. The externalId field is your own identifier for this customer — for example, your internal user ID.
curl -X POST https://api.gateway.accelebit.com/v1/customers \
  -H "Content-Type: application/json" \
  -H "X-API-Key: smtgw_sk_test_your_secret_key" \
  -H "Idempotency-Key: cust_$(uuidgen)" \
  -d '{
    "externalId": "user_12345",
    "email": "jane@example.com"
  }'
Save the returned id — you will pass it as customerId in the next step.
3

Create a test payment

Send a POST /v1/payments request with the card details, billing address, and the customer ID from the previous step. Pass amounts as decimal strings (for example, "55.00", not the integer 5500).
curl -X POST https://api.gateway.accelebit.com/v1/payments \
  -H "Content-Type: application/json" \
  -H "X-API-Key: smtgw_sk_test_your_secret_key" \
  -H "Idempotency-Key: pay_$(uuidgen)" \
  -d '{
    "amount": "55.00",
    "currency": "EUR",
    "paymentMethod": "card",
    "customerId": "user_12345",
    "card": {
      "number": "4111111111111111",
      "expiryMonth": "12",
      "expiryYear": "28",
      "cvv": "123",
      "holderName": "Jane Doe"
    },
    "billing": {
      "firstName": "Jane",
      "lastName": "Doe",
      "email": "jane@example.com",
      "phone": "+35699123456",
      "country": "MT",
      "address": "123 Main Street",
      "city": "Valletta",
      "postalCode": "VLT 1000"
    },
    "returnUrl": "https://yoursite.com/payment/callback",
    "merchantRef": "order_98765"
  }'
A "status": "captured" response means the payment was authorised and captured successfully.
If the response contains "threeDsRequired": true, the cardholder must complete a 3D Secure challenge before the payment can be captured. Follow the redirect instructions in the 3D Secure guide to complete the flow.
4

Handle webhooks

Configure a webhook endpoint in the Dashboard to receive real-time payment notifications. When a payment completes, Accelebit sends a payment.captured or payment.failed event to your endpoint:
{
  "event": "payment.captured",
  "data": {
    "transactionId": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
    "merchantId": "your_merchant_id",
    "status": "captured",
    "amount": 5500,
    "currency": "EUR"
  },
  "timestamp": "2026-04-09T12:01:01.000Z"
}
Use webhooks rather than polling to update your order state reliably. See Webhooks for signature verification and retry behavior.
5

Check payment status

You can query the current status of any payment at any time using its id:
curl https://api.gateway.accelebit.com/v1/payments/f47ac10b-58cc-4372-a567-0e02b2c3d479 \
  -H "X-API-Key: smtgw_sk_test_your_secret_key"
This is useful for reconciliation or to confirm a payment’s final state after a webhook event.

Next steps

Authentication

Understand API key types, key management, idempotency, and rate limits.

Server-to-server guide

Complete integration walkthrough including 3D Secure handling.

Webhooks

Set up signature verification and understand retry behavior.