DEVELOPER ZONE
One API for every payment
you need to move.
JSON in, JSON out. Standard HTTP verbs and response codes, a sandbox that mirrors live, and webhooks you can trust as the source of truth.
Go live in three steps
Get your credentials
Your merchant_id, merchant_site_id and merchant-token live under My Account → Integration settings in the control panel.
Call the sandbox
Point your integration at the sandbox base URL and run test transactions with the Demo provider — no impact on live data or banking networks.
Listen for notifications
Expose a notification_link endpoint and confirm the final transaction result from the server-to-server webhook, not the browser redirect.
AUTHENTICATION
Your first payment request
Requests are authenticated with an API key sent in the merchant-token header. Every call also carries your merchant_id and merchant_site_id, and V2 create calls require a unique Idempotency-Key so a retry never charges twice.
curl -X POST https://devsilo.xyz/api/v2/payment/create \
-H "merchant-token: $SLIKAIR_MERCHANT_TOKEN" \
-H "Idempotency-Key: 550e8400-e29b-41d4-a716-446655440000" \
-H "Content-Type: application/json" \
-d '{
"merchant_id": "9e07802d51264b02b4b3ef09dfb94219",
"merchant_site_id": "1234",
"payment_method": "credit_card",
"amount": 99.99,
"currency": "EUR",
"country": "NLD",
"email": "john@example.com",
"first_name": "John",
"last_name": "Doe",
"device_ip": "192.168.1.1",
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"notification_link": "https://example.com/webhook",
"success_url": "https://example.com/success",
"pending_url": "https://example.com/pending",
"fail_url": "https://example.com/fail",
"back_url": "https://example.com/back"
}'API REFERENCE
Endpoints at a glance
https://devsilo.xyz/api/v2Structured payment sessions, card tokenization with merchant-signed JWTs, payouts and typed notifications.
Payment sessions
Create and track a customer payment across every method you have enabled.
- POST
/payment/createCreate Payment - POST
/payment/get-statusGet Payment Status
Tokenization
Vault card data with a merchant-signed EdDSA JWT, then charge the stored token.
- POST
/payment/create/tokenizationTokenize Card - POST
/payment/create/tokenPay With Token
Payouts
Send funds back to the consumer with no reference to a previous transaction.
- POST
/payouts/createCreate Payout - POST
/payouts/get-statusGet Payout Status
Webhooks
Server-to-server notifications delivered to your notification_link.
- POST
v2_payin_notificationPay-in notification - POST
v2_tokenization_notificationTokenization notification
One field switches the method
The payment_method value determines which fields are required on the request. Add a method without rebuilding your integration.
Direct Merchant Notifications
When slikair receives the bank's response, it posts the outcome to your endpoint. Redirect pages can be lost — the DMN is the reliable signal that a deposit completed, so reconcile against it before you release goods or credit an account.
Reason codes
Failed transactions carry a machine-readable reason code alongside human-readable text. Branch on the reason code, quote the numeric error code to support, and treat unknown values gracefully — new codes ship over time.
INVALID_REQUESTINVALID_PARAMSMISSING_PARAMSNO_ROUTE_AVAILABLEPAYMENT_METHOD_NOT_ENABLEDUNSUPPORTED_COUNTRYUNSUPPORTED_CURRENCYINVALID_CARD_DATATHREE_DS_FAILEDRISK_BLOCKEDINSUFFICIENT_FUNDSDO_NOT_HONOREXPIRED_CARDGATEWAY_TIMEOUTStatus code reference
PAYMENTS
| 100 | Pending redirect |
| 101 | Pending |
| 200 | Success |
| 302 | Declined due to risk decision |
| 500 | Provider declined |
| 502 | Unauthorized |
| 510 | Missing params |
| 511 | Invalid checksum |
PAYOUTS
| P100 | Payout initiated |
| P101 | Payout processing |
| P200 | Payout succeeded |
| C403 | Merchant payout wallet is missing |
| C405 | Insufficient balance in the wallet |
| C501 | General gateway declined |
Start building on slikair.
Grab sandbox credentials, run your first test transaction today, and talk to an integration engineer when you are ready for live.