ebarimt_pos_sdk.resources package
Subpackages
Submodules
ebarimt_pos_sdk.resources.resource module
Module contents
Endpoints of Ebarimt as resources.
- class ebarimt_pos_sdk.resources.BankAccountsResource(*, sync: SyncTransport, async_: AsyncTransport, headers: Headers | Mapping[str, str] | Mapping[bytes, bytes] | Sequence[tuple[str, str]] | Sequence[tuple[bytes, bytes]] | None = None)[source]
Bases:
BaseResource
- class ebarimt_pos_sdk.resources.BarCodeType(*values)[source]
Bases:
str,EnumBarcode standard used to identify the item.
- GS1 = 'GS1'
- ISBN = 'ISBN'
- UNDEFINED = 'UNDEFINED'
- class ebarimt_pos_sdk.resources.BranchInfo(*, branchCode: str, branchName: str, subBranchCode: str, subBranchName: str)[source]
Bases:
BaseEbarimtModel- branch_code: str
- branch_name: str
- model_config = {'alias_generator': <function alias_generator>, 'extra': 'ignore', 'validate_by_alias': True, 'validate_by_name': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- sub_branch_code: str
- sub_branch_name: str
- class ebarimt_pos_sdk.resources.BunaResource(*, sync: SyncTransport, async_: AsyncTransport, headers: Headers | Mapping[str, str] | Mapping[bytes, bytes] | Sequence[tuple[str, str]] | Sequence[tuple[bytes, bytes]] | None = None)[source]
Bases:
BaseResourceБҮНА (Бараа, Үйлчилгээний Нэгдсэн Ангилал) classification lookup.
Wraps
GET /api/info/check/barcode/v2[/{code}...]. The endpoint is hierarchical: callread()(no segments) to get the top-level "Салбар" list, then drill down by passing the code at each level as the next segment. Codes nest as prefixes:read() -> Салбар read("0") -> Дэд салбар of "0" read("0", "01") -> Бүлэг of "01" read("0", "01", "011") -> Анги read("0", "01", "011",
"0111") -> Дэд анги
- read("0", "01", "011",
"0111", "01111") -> БҮНА код
- read("0", "01", "011",
"0111", "01111", "0111100") -> Баркод list
Note on the OpenAPI spec: the path template is documented as
{p4}/{p5}/{p1}/{p2}/{p3}/{p6}with all six segments — that is a Stoplight modeling artifact, not the real call shape. The live API is variable-depth (0..6 segments) and segments go in logical top-down order, as verified directly against the production server:GET https://api.ebarimt.mn/api/info/check/barcode/v2 -> Салбар GET https://api.ebarimt.mn/api/info/check/barcode/v2/9 -> drills "9"
Each segment is just the code of the level you are expanding; the parameter names p1..p6 in the spec are labels for "depth N" in logical order (p1=Салбар, p2=Дэд салбар, …, p6=БҮНА код), regardless of how they appear in the URL template.
- async aread(*segments: str, headers: Headers | Mapping[str, str] | Mapping[bytes, bytes] | Sequence[tuple[str, str]] | Sequence[tuple[bytes, bytes]] | None = None) GetBunaResponse[source]
- read(*segments: str, headers: Headers | Mapping[str, str] | Mapping[bytes, bytes] | Sequence[tuple[str, str]] | Sequence[tuple[bytes, bytes]] | None = None) GetBunaResponse[source]
- class ebarimt_pos_sdk.resources.CreateReceiptRequest(*, branchNo: str, totalAmount: Decimal | int | float, merchantTin: str, posNo: str, type: ReceiptType | Literal['B2C_RECEIPT', 'B2B_RECEIPT', 'B2C_INVOICE', 'B2B_INVOICE'], totalVAT: Decimal | int | float | None = None, totalCityTax: Decimal | int | float | None = None, districtCode: str | None = None, customerTin: str | None = None, consumerNo: str | None = None, inactiveId: str | None = None, invoiceId: str | None = None, reportMonth: str | None = None, data: dict[str, Any] | None = None, payments: list[Payment] | None = None, billIdSuffix: str, receipts: list[SubReceipt])[source]
Bases:
_CreateReceiptBaseRequest payload for creating a new receipt.
- bill_id_suffix: str
- model_config = {'alias_generator': <function alias_generator>, 'extra': 'ignore', 'validate_by_alias': True, 'validate_by_name': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- receipts: list[SubReceipt]
- class ebarimt_pos_sdk.resources.CreateReceiptResponse(*, branchNo: str, totalAmount: Decimal | int | float, merchantTin: str, posNo: str, type: ReceiptType | Literal['B2C_RECEIPT', 'B2B_RECEIPT', 'B2C_INVOICE', 'B2B_INVOICE'], totalVAT: Decimal | int | float | None = None, totalCityTax: Decimal | int | float | None = None, districtCode: str | None = None, customerTin: str | None = None, consumerNo: str | None = None, inactiveId: str | None = None, invoiceId: str | None = None, reportMonth: str | None = None, data: dict[str, Any] | None = None, payments: list[Payment] | None = None, id: str, version: str, posId: int, status: ReceiptCreateStatus | Literal['SUCCESS', 'ERROR', 'PAYMENT'], qrData: str, lottery: str, date: datetime, easy: bool, receipts: list[SubReceiptResponse])[source]
Bases:
_CreateReceiptBaseResponse returned after receipt creation.
- date: datetime
- easy: bool
- id: str
- lottery: str
- model_config = {'alias_generator': <function alias_generator>, 'extra': 'ignore', 'validate_by_alias': True, 'validate_by_name': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- pos_id: int
- qr_data: str
- receipts: list[SubReceiptResponse]
- status: _ReceiptCreateStatus
- version: str
- class ebarimt_pos_sdk.resources.DeleteReceiptRequest(*, id: str, date: datetime | None = None)[source]
Bases:
BaseEbarimtModelRequest payload for deleting an existing receipt.
- date: datetime | None
- id: str
- model_config = {'alias_generator': <function alias_generator>, 'extra': 'ignore', 'validate_by_alias': True, 'validate_by_name': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class ebarimt_pos_sdk.resources.DistrictCodeResource(*, sync: SyncTransport, async_: AsyncTransport, headers: Headers | Mapping[str, str] | Mapping[bytes, bytes] | Sequence[tuple[str, str]] | Sequence[tuple[bytes, bytes]] | None = None)[source]
Bases:
BaseResource- async aread(*, headers: Headers | Mapping[str, str] | Mapping[bytes, bytes] | Sequence[tuple[str, str]] | Sequence[tuple[bytes, bytes]] | None = None) GetDistrictCodeResponse[source]
- read(*, headers: Headers | Mapping[str, str] | Mapping[bytes, bytes] | Sequence[tuple[str, str]] | Sequence[tuple[bytes, bytes]] | None = None) GetDistrictCodeResponse[source]
- class ebarimt_pos_sdk.resources.GetBunaResponse(root: RootModelRootType = PydanticUndefined)[source]
Bases:
RootModel[list[list[str]]]Hierarchical БҮНА (Бараа, Үйлчилгээний Нэгдсэн Ангилал) lookup.
The response is a JSON array of rows. Each row is itself an array of strings whose shape depends on the level returned:
Classification rows (Салбар / Дэд салбар / Бүлэг / Анги / Дэд анги / БҮНА код):
[code, name]Barcode rows (leaf level):
[barcode, name, registered_date]
Per the SDK's "validate structure, not policy" rule we only assert that each row is a list of strings — interpretation is left to the caller.
- model_config = {}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class ebarimt_pos_sdk.resources.GetDistrictCodeResponse(*, msg: str, status: int, data: list[BranchInfo])[source]
Bases:
BaseEbarimtModel- data: list[BranchInfo]
- model_config = {'alias_generator': <function alias_generator>, 'extra': 'ignore', 'validate_by_alias': True, 'validate_by_name': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- msg: str
- status: int
- class ebarimt_pos_sdk.resources.GetInfoResponse(*, msg: str, status: int, data: MerchantInfo | None = None)[source]
Bases:
BaseEbarimtModel- data: MerchantInfo | None
- model_config = {'alias_generator': <function alias_generator>, 'extra': 'ignore', 'validate_by_alias': True, 'validate_by_name': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- msg: str
- status: int
- class ebarimt_pos_sdk.resources.GetProductTaxCodeResponse(*, msg: str, status: int, data: list[ProductTaxCode])[source]
Bases:
BaseEbarimtModel- data: list[ProductTaxCode]
- model_config = {'alias_generator': <function alias_generator>, 'extra': 'ignore', 'validate_by_alias': True, 'validate_by_name': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- msg: str
- status: int
- class ebarimt_pos_sdk.resources.GetTinInfoResponse(*, msg: str, status: int, data: str)[source]
Bases:
BaseEbarimtModel- data: str
- model_config = {'alias_generator': <function alias_generator>, 'extra': 'ignore', 'validate_by_alias': True, 'validate_by_name': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- msg: str
- status: int
- class ebarimt_pos_sdk.resources.InfoResource(*, sync: SyncTransport, async_: AsyncTransport, headers: Headers | Mapping[str, str] | Mapping[bytes, bytes] | Sequence[tuple[str, str]] | Sequence[tuple[bytes, bytes]] | None = None)[source]
Bases:
BaseResource
- class ebarimt_pos_sdk.resources.Item(*, name: str, measureUnit: str, qty: Decimal | int | float, unitPrice: Decimal | int | float, totalAmount: Decimal | int | float, barCode: str | None = None, barCodeType: BarCodeType | Literal['UNDEFINED', 'GS1', 'ISBN'] | None = None, classificationCode: str | None = None, taxProductCode: str | None = None, totalVAT: Decimal | int | float | None = None, totalCityTax: Decimal | int | float | None = None, data: ReceiptItemData | None = None)[source]
Bases:
BaseEbarimtModelSingle product or service included in a receipt.
- bar_code: str | None
- bar_code_type: _BarCodeType | None
- classification_code: str | None
- data: ReceiptItemData | None
- measure_unit: str
- model_config = {'alias_generator': <function alias_generator>, 'extra': 'ignore', 'validate_by_alias': True, 'validate_by_name': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: str
- qty: Number
- tax_product_code: str | None
- total_amount: Number
- total_city_tax: Number | None
- total_vat: Number | None
- unit_price: Number
- class ebarimt_pos_sdk.resources.MerchantInfoResource(*, sync: SyncTransport, async_: AsyncTransport, headers: Headers | Mapping[str, str] | Mapping[bytes, bytes] | Sequence[tuple[str, str]] | Sequence[tuple[bytes, bytes]] | None = None)[source]
Bases:
BaseResource- async aread(tin: str, *, headers: Headers | Mapping[str, str] | Mapping[bytes, bytes] | Sequence[tuple[str, str]] | Sequence[tuple[bytes, bytes]] | None = None) GetInfoResponse[source]
- read(tin: str, *, headers: Headers | Mapping[str, str] | Mapping[bytes, bytes] | Sequence[tuple[str, str]] | Sequence[tuple[bytes, bytes]] | None = None) GetInfoResponse[source]
- class ebarimt_pos_sdk.resources.Payment(*, code: PaymentCode | Literal['CASH', 'PAYMENT_CARD'], status: PaymentStatus | Literal['PAID', 'PAY', 'REVERSED', 'ERROR'], paidAmount: Decimal | int | float, exchangeCode: str | None = None, data: PaymentCardData | None = None)[source]
Bases:
BaseEbarimtModelPayment information associated with a receipt.
- code: _PaymentCode
- data: PaymentCardData | None
- exchange_code: str | None
- model_config = {'alias_generator': <function alias_generator>, 'extra': 'ignore', 'validate_by_alias': True, 'validate_by_name': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- paid_amount: Number
- status: _PaymentStatus
- class ebarimt_pos_sdk.resources.PaymentCardData(*, terminalID: str, rrn: str, maskedCardNumber: str, easy: bool, bankCode: str | None = None)[source]
Bases:
BaseEbarimtModelCard payment metadata when using PAYMENT_CARD.
- bank_code: str | None
- easy: bool
- masked_card_number: str
- model_config = {'alias_generator': <function alias_generator>, 'extra': 'ignore', 'validate_by_alias': True, 'validate_by_name': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- rrn: str
- terminal_id: str
- class ebarimt_pos_sdk.resources.PaymentCode(*values)[source]
Bases:
str,EnumPayment method used for the transaction.
- CASH = 'CASH'
- PAYMENT_CARD = 'PAYMENT_CARD'
- class ebarimt_pos_sdk.resources.PaymentStatus(*values)[source]
Bases:
str,EnumCurrent status of the payment.
- ERROR = 'ERROR'
- PAID = 'PAID'
- PAY = 'PAY'
- REVERSED = 'REVERSED'
- class ebarimt_pos_sdk.resources.ProductTaxCode(*, startDate: datetime, endDate: datetime | None = None, taxProductCode: str, taxProductName: str, taxTypeCode: int, taxTypeName: TaxType)[source]
Bases:
BaseEbarimtModel- end_date: datetime | None
- model_config = {'alias_generator': <function alias_generator>, 'extra': 'ignore', 'validate_by_alias': True, 'validate_by_name': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- start_date: datetime
- tax_product_code: str
- tax_product_name: str
- tax_type_code: int
- class ebarimt_pos_sdk.resources.ProductTaxCodeResource(*, sync: SyncTransport, async_: AsyncTransport, headers: Headers | Mapping[str, str] | Mapping[bytes, bytes] | Sequence[tuple[str, str]] | Sequence[tuple[bytes, bytes]] | None = None)[source]
Bases:
BaseResource- async aread(*, headers: Headers | Mapping[str, str] | Mapping[bytes, bytes] | Sequence[tuple[str, str]] | Sequence[tuple[bytes, bytes]] | None = None) GetProductTaxCodeResponse[source]
- read(*, headers: Headers | Mapping[str, str] | Mapping[bytes, bytes] | Sequence[tuple[str, str]] | Sequence[tuple[bytes, bytes]] | None = None) GetProductTaxCodeResponse[source]
- class ebarimt_pos_sdk.resources.ReceiptCreateStatus(*values)[source]
Bases:
str,EnumResult status returned after creating a receipt.
- ERROR = 'ERROR'
- PAYMENT = 'PAYMENT'
- SUCCESS = 'SUCCESS'
- class ebarimt_pos_sdk.resources.ReceiptItemData(*, lotNo: str | None = None, stockQR: list[str] | None = None)[source]
Bases:
BaseEbarimtModelitems[].data Note: docs show lotNo + stockQR, but examples also show nested "data": {"stockQR":[...]} sometimes. This model follows the schema: lotNo, stockQR directly under data.
- lotNo: str | None
- model_config = {'alias_generator': <function alias_generator>, 'extra': 'ignore', 'validate_by_alias': True, 'validate_by_name': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- stockQR: list[str] | None
- class ebarimt_pos_sdk.resources.ReceiptResource(*, sync: SyncTransport, async_: AsyncTransport, headers: Headers | Mapping[str, str] | Mapping[bytes, bytes] | Sequence[tuple[str, str]] | Sequence[tuple[bytes, bytes]] | None = None)[source]
Bases:
BaseResource- async acreate(payload: CreateReceiptRequest | dict[str, Any], *, headers: Headers | Mapping[str, str] | Mapping[bytes, bytes] | Sequence[tuple[str, str]] | Sequence[tuple[bytes, bytes]] | None = None) CreateReceiptResponse[source]
- async adelete(payload: DeleteReceiptRequest | dict[str, Any], *, headers: Headers | Mapping[str, str] | Mapping[bytes, bytes] | Sequence[tuple[str, str]] | Sequence[tuple[bytes, bytes]] | None = None) None[source]
- create(payload: CreateReceiptRequest | dict[str, Any], *, headers: Headers | Mapping[str, str] | Mapping[bytes, bytes] | Sequence[tuple[str, str]] | Sequence[tuple[bytes, bytes]] | None = None) CreateReceiptResponse[source]
- delete(payload: DeleteReceiptRequest | dict[str, Any], *, headers: Headers | Mapping[str, str] | Mapping[bytes, bytes] | Sequence[tuple[str, str]] | Sequence[tuple[bytes, bytes]] | None = None) None[source]
- class ebarimt_pos_sdk.resources.ReceiptType(*values)[source]
Bases:
str,EnumType of receipt or invoice issued to consumer or business.
- B2B_INVOICE = 'B2B_INVOICE'
- B2B_RECEIPT = 'B2B_RECEIPT'
- B2C_INVOICE = 'B2C_INVOICE'
- B2C_RECEIPT = 'B2C_RECEIPT'
- class ebarimt_pos_sdk.resources.SendDataResource(*, sync: SyncTransport, async_: AsyncTransport, headers: Headers | Mapping[str, str] | Mapping[bytes, bytes] | Sequence[tuple[str, str]] | Sequence[tuple[bytes, bytes]] | None = None)[source]
Bases:
BaseResource
- class ebarimt_pos_sdk.resources.SubReceipt(*, totalAmount: Decimal | int | float, taxType: TaxType | Literal['VAT_ABLE', 'VAT_FREE', 'VAT_ZERO', 'NOT_VAT'], merchantTin: str, items: list[Item], totalVAT: Decimal | int | float | None = None, totalCityTax: Decimal | int | float | None = None, customerTin: str | None = None, bankAccountNo: str | None = None, iBan: str | None = None, invoiceId: str | None = None, data: dict[str, Any] | None = None)[source]
Bases:
BaseEbarimtModelSub-receipt containing items, tax info, and seller details.
- bank_account_no: str | None
- customer_tin: str | None
- data: dict[str, Any] | None
- iban: str | None
- invoice_id: str | None
- merchant_tin: str
- model_config = {'alias_generator': <function alias_generator>, 'extra': 'ignore', 'validate_by_alias': True, 'validate_by_name': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- tax_type: _TaxType
- total_amount: Number
- total_city_tax: Number | None
- total_vat: Number | None
- class ebarimt_pos_sdk.resources.TaxType(*values)[source]
Bases:
str,EnumVAT applicability of the receipt items.
- NO_VAT = 'NO_VAT'
- VAT_ABLE = 'VAT_ABLE'
- VAT_FREE = 'VAT_FREE'
- VAT_ZERO = 'VAT_ZERO'
- class ebarimt_pos_sdk.resources.TinInfoResource(*, sync: SyncTransport, async_: AsyncTransport, headers: Headers | Mapping[str, str] | Mapping[bytes, bytes] | Sequence[tuple[str, str]] | Sequence[tuple[bytes, bytes]] | None = None)[source]
Bases:
BaseResource- async aread(reg_no: str, *, headers: Headers | Mapping[str, str] | Mapping[bytes, bytes] | Sequence[tuple[str, str]] | Sequence[tuple[bytes, bytes]] | None = None) GetTinInfoResponse[source]
- read(reg_no: str, *, headers: Headers | Mapping[str, str] | Mapping[bytes, bytes] | Sequence[tuple[str, str]] | Sequence[tuple[bytes, bytes]] | None = None) GetTinInfoResponse[source]