Skip to content

EasyPay / ePay.bg — API Reference

ePay.bg / EasyPay — 19 operations across 11 areas, from the official docs (kb.epay.bg). WEB API endpoints take a base64 ENCODED payload + CHECKSUM. Interactive: the API page; full prose docs + diagrams: Full Docs.

Online Payment (1)

POST / — Card payment via ePay page (credit_paydirect)

POST to https://www.epay.bg/ with PAGE=credit_paydirect. Customer is redirected to ePay's payment page. Payload fields (encoded into ENCODED): see OnlinePaymentPayload model.

Payment via EasyPay (2)

GET /ezp/pay_bill.cgi — Simulate EasyPay-office payment (demo only)

Demo only. Fires STATUS=PAID to the merchant notification URL.

Param In Required
ACTION query True
IDN query True

GET /ezp/reg_bill.cgi — Register EasyPay payment (get 10-digit code)

Returns a 10-digit EasyPay code payable at an EasyPay office or ATM. Payload fields (encoded into ENCODED): see EasyPayBillPayload model.

Param In Required
ENCODED query True
CHECKSUM query True

Preauthorization (1)

POST /v3main/ — Preauthorization: register, finalize or reverse

Three phases share this endpoint (distinguished by the ENCODED payload): register (PreauthRegisterPayload), finalize (PreauthFinalizePayload), reverse (PreauthReversePayload).

Change expiring time (1)

GET /v3main — Change the expiry time of an obligation

Payload fields (encoded into ENCODED): see ChangeExpiryPayload model.

Param In Required
ENCODED query True
CHECKSUM query True

Bank transfer (1)

GET /send/send_vnbel.cgi — Order a bank transfer

Payload fields (encoded into ENCODED): see BankTransferPayload model.

Param In Required
ENCODED query True
CHECKSUM query True

Deposit slip (1)

GET /ezp/reg_vnbel.cgi — Register a deposit-slip payment request

Payload fields (encoded into ENCODED): see DepositSlipPayload model.

Param In Required
ENCODED query True
CHECKSUM query True

Money send (2)

GET /ezp/send.cgi — Money send via EasyPay (cash pickup)

Payload fields (encoded into ENCODED): see MoneySendEasyPayPayload model.

Param In Required
ENCODED query True
CHECKSUM query True

GET /send/send.cgi — Money send via ePay.bg

Payload fields (encoded into ENCODED): see MoneySendEpayPayload model.

Param In Required
ENCODED query True
CHECKSUM query True

Payment notification (1)

POST /{merchant_notify_url} — Payment notification (merchant-hosted)

ePay POSTs here on payment status change. Verify CHECKSUM and the RSA SIGNATURE. Respond with a line per invoice: INVOICE=STATUS (OK/ERR/NO). Payload fields (encoded into ENCODED): see NotificationPayload model.

Param In Required
merchant_notify_url path True

Billing API (2)

GET /pay/confirm — Payment / deposit notification (merchant-hosted)

Param In Required
IDN query True
MERCHANTID query True
TID query True
DATE query True
TOTAL query True
TYPE query True
INVOICES query False
CHECKSUM query True

GET /pay/init — Obligation / deposit check (merchant-hosted)

STATUS codes: 00=OK; 13=Invalid amount; 14=Invalid IDN; 62=No obligation; 80=Temporarily unavailable; 93=Invalid checksum; 94=Duplicate; 96=General error

Param In Required
IDN query True
MERCHANTID query True
TYPE query True
TID query False
TOTAL query False
CHECKSUM query True

One Touch API (6)

GET /xdev/api/api/code/get — Get pairing code / register device

Param In Required
APPID query True
DEVICEID query True
KEY query True
UTYPE query False
DEVICE_NAME query False
BRAND query False
OS query False
MODEL query False
OS_VERSION query False
PHONE query False

GET /xdev/api/api/token/get — Get access token from code

Param In Required
APPID query True
DEVICEID query True
CODE query True

GET /xdev/api/api/token/invalidate — Invalidate a token

Param In Required
APPID query True
DEVICEID query True
TOKEN query True

GET /xdev/api/payment/check — Check a payment before sending

Param In Required
APPID query True
DEVICEID query True
TOKEN query True
TYPE query True
ID query True
AMOUNT query True
RCPT query True
RCPT_TYPE query True
DESCRIPTION query False
REASON query False
PINS query False
SHOW query False

GET /xdev/api/payment/init — Initialize a payment

Param In Required
APPID query True
DEVICEID query True
TOKEN query True
TYPE query True
EXP query False

GET /xdev/api/payment/send/status — Send payment / get status

Param In Required
APPID query True
DEVICEID query True
TOKEN query True
TYPE query True
ID query True
AMOUNT query True
RCPT query True
RCPT_TYPE query True
DESCRIPTION query False
REASON query False
PINS query False
SHOW query False

One Touch No Reg API (1)

GET /xdev/api/api/payment/noreg/send/status — No-registration payment / status

CHECKSUM = hmac_sha1_hex over the sorted KEY VALUE lines with the app SECRET.

Param In Required
APPID query True
DEVICEID query True
ID query True
AMOUNT query True
RCPT query True
RCPT_TYPE query True
CHECKSUM query True
DESCRIPTION query False
REASON query False
SAVECARD query False