Skip to content

EasyPay / ePay.bg — Data Models

Schema field reference for the ePay WEB API + Billing payloads. Interactive: the API page; the disbursement flow: Money Send.

12 schemas. Types and field names are shown exactly as in the OpenAPI spec.

BankTransferPayload

ENCODED payload to order a bank transfer.

Field Type Required Description
MIN integer ✓ Customer Identification Number (CIN)
MEMAIL string ✓ Email of the merchant in the system
INVOICE string ✓ Unique request number up to 64 characters Accepted: numbers, Latin
RECIPIENT string ✓ Recipient of the order up to 35 characters Accepted: Cyrillic, Latin, numbers, spaces, dashes, commas, periods
IBAN string ✓ Recipient's valid IBAN
AMOUNT number ✓ Valid amount > 0.01 (eg: 22, 22.8, 22.80)
STATEMENT string ✓ Reason up to 70 characters Accepted: Cyrillic, Latin, numbers, spaces, dashes, commas, periods
CURRENCY string — Accepted currency is BGN ; if not supplied defaults to BGN
ENCODING string — encoding of RECIPIENT and STATEMENT ; only accepted with utf-8

BillingInitResponse

Field Type Required Description
STATUS string ✓ Enum: 00, 13, 14, 62, 80, 93, 94, 96
IDN string —
AMOUNT string — stotinki
VALIDTO string —
SHORTDESC string —
LONGDESC string —
INVOICES array[object] —

ChangeExpiryPayload

ENCODED payload to change the expiry of a 10-digit code / obligation.

Field Type Required Description
MIN integer ✓ Customer Identification Number (CIN)
INVOICE integer ✓ Invoice Number; unique to merchant
EXP_TIME string ✓ Payment End Date/Time; format DD.MM.YYYY[hh:mm[:ss]]

DepositSlipPayload

ENCODED payload for a deposit-slip payment request.

Field Type Required Description
MIN integer ✓ Merchant ID - Corresponds to the CIN in the merchant's profile in ePay.bg
INVOICE integer ✓ Invoice number; unique to the merchant
AMOUNT number ✓ Valid amount > 0.01 (eg: 22, 22.8, 22.80)
EXP_TIME string ✓ Final date/time for payment, up to 30 days after the date of the request; format DD.MM.YYYY [hh:mm [:ss]]
DESCR string — Description up to 100 characters; encoding CP1251
MERCHANT string ✓ Recipient of the order
IBAN string ✓ A valid IBAN of the recipient
BIC string ✓ BIC of the receiving bank
STATEMENT string ✓ Payment description
PSTATEMENT integer ✓ Payment code
OBLIG_PERSON string ✓ Name of the obligee; up to 26 characters
BULSTAT EGN LNC integer ✓ BULSTAT, EGN or LNC Only one of the three parameters is submitted!
DOC_NO integer ✓ Document type and number
DOC_DATE integer ✓ Document date: The parameter is submitted for document type - 2|3|6
DATE_BEGIN integer ✓ Start of period: The parameter is submitted for document type - 1|2|4|5
DATE_END integer ✓ End of period: The parameter is submitted for document type - 1|2|4|5

EasyPayBillPayload

Fields base64-encoded into ENCODED to register an EasyPay obligation (10-digit code).

Field Type Required Description
MIN integer ✓ Customer Identification Number (CIN)
EMAIL string — Email of the merchant in the system
INVOICE integer ✓ InvoiceNumber; unique to merchant
AMOUNT number ✓ Valid Amount > 0.01 (eg: 22, 22.8, 22.80)
CURRENCY string — Accepted currencies are BGN , USD or EUR ; if not provided it defaults to BGN
EXP_TIME string ✓ Payment End Date/Time; format DD.MM.YYYY[hh:mm[:ss]]
DESCR string — Description up to 100 characters; CP1251 characters if no other ENCODING
ENCODING string — encoding of DESCR parameter; only utf-8 is accepted, it can also be passed as an HTTP parameter

MoneySendEasyPayPayload

ENCODED payload to send money for cash pickup at EasyPay. Recipient identification is CONDITIONALLY required: supply RCPT_PID (national ID / ЕГН) and/or RCPT_ID_NO (personal document); if RCPT_ID_NO is given, RCPT_ID_DATE is also required. INVOICE must be unique — a given INVOICE can enter the system only once (retries return the same SYS_CODE, never a second transfer). Encode fields as newline-joined KEY=VALUE, then Base64 (RFC3548, EOL='').

Field Type Required Description
MIN integer ✓ Customer Identification Number (CIN)
INVOICE integer ✓ Invoice ID; numbers only
AMOUNT number ✓ Valid amount > 0.01 (eg: 22, 22.8, 22.80)
RCPT_NAME string ✓ Recipient name up to 100 characters; CP1251 characters if no other ENCODING is supplied
RCPT_PID integer — Recipient national ID (ЕГН). CONDITIONAL: supply RCPT_PID and/or a personal document (RCPT_ID_NO) — at least one is required.
RCPT_ID_NO integer — Recipient's personal document number (identity card/driver's license/passport). CONDITIONAL: supply RCPT_PID and/or RCPT_ID_NO — at least one is required. If supplied, RCPT_ID_DATE is also required.
RCPT_ID_DATE string — Issue date of recipient's personal document; format DD.MM.YYYY. Required only if RCPT_ID_NO is supplied.
RCPT_ADDRESS string — Recipient address up to 256 characters; CP1251 characters if no other ENCODING is supplied
RCPT_PHONE string — Recipient phone up to 16 characters (digits only; keep as string to preserve leading zeros, e.g. 029210850)
CURRENCY string — Currency code; defaults to BGN if omitted. DISCREPANCY: public kb.epay.bg lists BGN/USD/EUR, but EasyPay's disbursement integration doc (Zdravko, Jul 2026) states BGN only — confirm before relying on USD/EUR for payouts. · Enum: BGN, USD, EUR
DESCR string — Transfer description up to 100 characters; CP1251 characters if no other ENCODING is supplied
ENCODING string — utf-8 or CP1251; if not supplied, defaults to CP1251

MoneySendEpayPayload

ENCODED payload to send money to an ePay.bg account.

Field Type Required Description
MIN integer ✓ Merchant Customer Identification Number (CIN)
MEMAIL string ✓ Email of the merchant in the system
CIN integer ✓ Recipient's Customer Identification Number (CIN)
CEMAIL string ✓ Recipient's email in the system
INVOICE string ✓ Invoice number; unique to merchant
AMOUNT number ✓ Valid amount > 0.01 (eg: 22, 22.8, 22.80)
CURRENCY string — Accepted currencies are BGN , USD or EUR ; if not supplied defaults to BGN
DESCR string — Transfer description up to 100 characters
ENCODING string — encoding of DESCR

NotificationPayload

Fields ePay sends (inside ENCODED) to the merchant notification URL.

Field Type Required Description
INVOICE string ✓ Invoice number from the payment request
STATUS string ✓ Payment Status PAID , DENIED , EXPIRED
PAY_TIME string ✓ YYYYMMDDhhmmss Date/Hour/Sec of Payment
STAN integer ✓ [6 digits] Transaction Number
BCODE string ✓ [6 digits/letters] BORICA Authorization Code

OnlinePaymentPayload

Fields base64-encoded into ENCODED for card payment (PAGE=credit_paydirect).

Field Type Required Description
MIN integer ✓ Customer Identification Number (CIN)
EMAIL string — Email of the merchant in the system
INVOICE integer ✓ Invoice Number; unique to merchant
AMOUNT number ✓ Valid amount > 0.01 (eg: 22, 22.8, 22.80)
CURRENCY string — Accepted currencies are BGN , USD , or EUR ; if not provided it defaults to BGN
EXP_TIME string ✓ Payment end date/time; format DD.MM.YYYY[hh:mm[:ss]]
DESCR string — Description up to 100 characters; CP1251 characters if no other ENCODING
ENCODING string — Encoding of the DESCR parameter. Only utf-8 is accepted; can also be passed as an HTTP parameter

PreauthFinalizePayload

ENCODED payload to finalize/complete a preauthorization.

Field Type Required Description
MIN integer ✓ MIN from the original preauthorization request
INVOICE integer ✓ INVOICE from the original preauthorization request
ORIGINAL_AMOUNT number ✓ Amount from the preauthorization
CONFIRM_AMOUNT number ✓ Amount to be actually taken at confirmation; must be less than or equal to ORIGINAL_AMOUNT

PreauthRegisterPayload

ENCODED payload to open a preauthorization (PREAUTH=1).

Field Type Required Description
MIN integer ✓ Customer Identification Number (CIN)
EMAIL string — Email of the merchant in the system
INVOICE integer ✓ Invoice number; unique to the merchant
AMOUNT number ✓ Valid amount > 0.01 (eg: 22, 22.8, 22.80)
CURRENCY string — Accepted currencies are BGN , USD , or EUR ; if not provided it defaults to BGN
EXP_TIME string ✓ Payment end date/time; format DD.MM.YYYY[hh:mm[:ss]]
DESCR string — Description up to 100 characters; CP1251 characters if no other ENCODING
ENCODING string — Encoding of the DESCR parameter. Only utf-8 is accepted; can also be passed as an HTTP parameter
PREAUTH integer ✓ = 1 - requests payment by preauthorization

PreauthReversePayload

ENCODED payload to reverse a preauthorization.

Field Type Required Description
MIN integer ✓ MIN from the original preauthorization request
INVOICE integer ✓ INVOICE from the original preauthorization request
ORIGINAL_AMOUNT number ✓ Amount from the preauthorization
REV_AMOUNT number ✓ = ORIGINAL AMOUNT (Amount from the preauthorization)