πŸ‡¬πŸ‡§ EN β†’ Login

Build on Payblis

  1. 1 Create a merchant account (sandbox + live API keys).
  2. 2 Set your USDC Polygon wallet in Settings β†’ Crypto Wallet.
  3. 3 POST /api/sandbox/payment/create β†’ open checkout_url.
  4. 4 POST /api/sandbox/payment/{RefOrder}/complete to simulate success.

Open the API Console β†’

Authentication

X-API-Key: YOUR_API_KEY

Sandbox key β†’ /api/sandbox/… Β· Live key β†’ /api/…. Do not pass ?environment=.

All POST requests also need the secret key (sk_…):

X-Payblis-Timestamp: <unix seconds>
X-Payblis-Signature: <hmac-sha256 hex of "timestamp.body">
X-Payblis-Nonce: <unique per request>

Empty body β†’ sign timestamp + '.'. In the console, set API key + secret under Environment (auto-signed on Send).

Webhooks

Payblis POSTs JSON to ipnURL (or your default webhook URL). Verify with HMAC-SHA256 of the body without the signature field.

X-Payblis-Signature: <hex hmac-sha256>

Payment events: payment.completed, payment.failed, payment.cancelled, payment.expired. Compact payload: event, merchant_reference, amount, currency, status, environment, signature.

After a successful live PayGate settlement, you also receive settlement.completed with net crypto amount, wallet, network, txid, and environment.

POST your endpoint Outbound

Payment webhook fields

FieldTypeDescription
eventstringe.g. payment.completed
merchant_referencestringYour order reference (RefOrder at create)
amountstringFiat amount (2 decimals), e.g. "14.17"
currencystringOriginal fiat currency (EUR / USD / CAD)
statusstringSUCCESS, FAILED, CANCELLED, or EXPIRED
environmentstringsandbox / live
signaturestringHMAC hex
{
  "event": "payment.completed",
  "merchant_reference": "Order-xxxxxxx",
  "amount": "14.17",
  "currency": "USD",
  "status": "SUCCESS",
  "environment": "sandbox",
  "signature": "…"
}

settlement.completed fields

FieldTypeDescription
eventstringsettlement.completed
merchant_referencestringLinked payment order (RefOrder)
amount_cryptostringNet crypto amount credited to your wallet
crypto_currencystringe.g. USDC
wallet_addressstringDestination payout wallet
networkstringpolygon
txid_outstringOutbound chain transaction id
environmentstringsandbox / live
signaturestringHMAC hex
{
  "event": "settlement.completed",
  "merchant_reference": "Order-xxxxxxx",
  "amount_crypto": "9.5",
  "crypto_currency": "USDC",
  "wallet_address": "0x…",
  "network": "polygon",
  "txid_out": "…",
  "environment": "live",
  "signature": "…"
}

Base URL

Production
https://payblis.com

Local: http://localhost:8888/payblis_app Β· Paths: /api/sandbox/… or /api/…

Payments

POST /api/payment/create Auth

Returns RefOrder + checkout_url. Sandbox: /api/sandbox/payment/create.

Body

FieldTypeDescription
amountnumberFiat amount (> 0)
currencystringEUR, USD, CAD
product_namestringProduct label
methodstringOptional. Preselects the checkout method tab. Alias: payment_method. See Payment methods.
providerstringOptional. Provider slug.
RefOrderstringUnique order reference
Customer_EmailstringBuyer email
Customer_NamestringFirst name
Customer_LastNamestringLast name
countrystringISO country
store_namestringStore name
urlOKurlSuccess redirect
urlKOurlFailure redirect
ipnURLurlWebhook URL
Payment methods

Codes accepted by method / payment_method on create. The checkout shows the same list (methods without a routed provider for that session are hidden).

Available methods

CodeCheckout labelNotes
credit_cardsCredit cardsVisa, Mastercard, Amex
apple_payApple PayPay with Apple Pay
google_payGoogle PayPay with Google Pay
paypalPayPalPay with PayPal
revolut_payRevolut PayPay with Revolut
bank_transferBank transferSEPA, wire transfer
open_bankingOpen bankingInstant bank payment
cash_appCash AppPay with Cash App
idealiDEALPay with iDEAL
klarnaKlarnaPay later with Klarna

If method is set, checkout opens on that tab when a provider is available for it; the buyer can still switch. Omit method to let the buyer choose (first available method is selected by default).

If provider is set, checkout shows only that provider. Create fails with code: provider_not_available (or provider_not_found) and a reason such as currency_not_supported, amount_outside_limits, amount_outside_currency_limits, country_not_supported, method_not_supported, or provider_disabled_by_merchant.

GET /api/payment/{RefOrder} Auth

RefOrder, amount, status, environment, timestamps.

GET /api/payment/{RefOrder}/status Auth

RefOrder + status.

POST /api/payment/{RefOrder}/cancel Auth

Cancel a non-terminal payment. Requires HMAC headers.

GET /api/transactions Auth

Query

FieldTypeDescription
pageintegerDefault 1
per_pageintegerDefault 20, max 100
statusstringOptional filter
qstringSearch RefOrder / email

Balance

GET /api/balance Auth

Pending / in-settlement / paid-out.

Sandbox tools

POST /api/sandbox/payment/{RefOrder}/complete Auth

Mark sandbox payment completed. HMAC required.

POST /api/sandbox/payment/{RefOrder}/fail Auth

Mark sandbox payment failed. HMAC required.

POST /api/webhook/test Auth

Send webhook.test to your URL. Body: optional url, event.