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) |