Skip to content

Reference

Basic Schemas

ErrorResult dataclass

Bases: BaseSchema

Error response for queries.

Source code in merchant001_sdk/core/data/schemas/responses/error.py
@dataclass(kw_only=True)
class ErrorResult(BaseSchema):
    """Error response for queries."""

    status_code: http.HTTPStatus = field()
    message: str | None = field(default=None)
    error: str | None = field(default=None)

    @property
    def data(self) -> dict[str, t.Any]:
        """data.

        Args:

        Returns:
            dict[str, t.Any]:
        """
        return {"status_code": self.status_code, "error": self.error, "message": self.message}

data() property

data.

Returns:

Type Description
dict[str, t.Any]

dict[str, t.Any]:

Source code in merchant001_sdk/core/data/schemas/responses/error.py
@property
def data(self) -> dict[str, t.Any]:
    """data.

    Args:

    Returns:
        dict[str, t.Any]:
    """
    return {"status_code": self.status_code, "error": self.error, "message": self.message}

RawResult dataclass

Bases: BaseSchema

Raw json result.

Source code in merchant001_sdk/core/data/schemas/responses/raw.py
@dataclass(frozen=True, kw_only=True)
class RawResult(BaseSchema):
    """Raw json result."""

    status_code: http.HTTPStatus = field()
    body: t.Any | None = field(default=None)
    content_type: str | None = field(default=None)

    def get_json(self) -> dict[str, t.Any]:
        """get_json.

        Args:

        Returns:
            dict[str, t.Any]:
        """
        return json.loads(self.body)

    @property
    def data(self) -> dict[str, t.Any]:
        """data.

        Args:

        Returns:
            dict[str, t.Any]:
        """
        return {"status_code": self.status_code, "body": self.body, "content_type": self.content_type}

data() property

data.

Returns:

Type Description
dict[str, t.Any]

dict[str, t.Any]:

Source code in merchant001_sdk/core/data/schemas/responses/raw.py
@property
def data(self) -> dict[str, t.Any]:
    """data.

    Args:

    Returns:
        dict[str, t.Any]:
    """
    return {"status_code": self.status_code, "body": self.body, "content_type": self.content_type}

get_json()

get_json.

Returns:

Type Description
dict[str, t.Any]

dict[str, t.Any]:

Source code in merchant001_sdk/core/data/schemas/responses/raw.py
def get_json(self) -> dict[str, t.Any]:
    """get_json.

    Args:

    Returns:
        dict[str, t.Any]:
    """
    return json.loads(self.body)

Queries Schemas

MerchantHealthcheck dataclass

Bases: BaseSchema

Response data of test request to verify the validity of the token

Source code in merchant001_sdk/core/data/schemas/responses/healthcheck.py
@dataclass(frozen=True, kw_only=True)
class MerchantHealthcheck(BaseSchema):
    """Response data of test request to verify the validity of the token"""

    success: bool = field()

    @property
    def data(self) -> dict[str, bool]:
        """data.

        Args:

        Returns:
            dict[str, bool]:
        """
        return {
            "success": self.success,
        }

data() property

data.

Returns:

Type Description
dict[str, bool]

dict[str, bool]:

Source code in merchant001_sdk/core/data/schemas/responses/healthcheck.py
@property
def data(self) -> dict[str, bool]:
    """data.

    Args:

    Returns:
        dict[str, bool]:
    """
    return {
        "success": self.success,
    }

PaymentMethod dataclass

Bases: BaseSchema

Method and type are needed when creating a transaction or setting a payment method later.

Source code in merchant001_sdk/core/data/schemas/responses/payment_method.py
@dataclass(frozen=True, kw_only=True)
class PaymentMethod(BaseSchema):
    """Method and type are needed when creating a transaction or setting a payment method later."""

    type: str = field()
    name: str = field()
    method: str = field()
    imageUrl: str = field()

    @property
    def data(self) -> dict[str, str | str | None]:
        """data.

        Args:

        Returns:
            dict[str, str | str | None]:
        """
        return {"type": self.type, "name": self.name, "method": self.method, "imageUrl": self.imageUrl}

data() property

data.

Returns:

Type Description
dict[str, str | str | None]

dict[str, str | str | None]:

Source code in merchant001_sdk/core/data/schemas/responses/payment_method.py
@property
def data(self) -> dict[str, str | str | None]:
    """data.

    Args:

    Returns:
        dict[str, str | str | None]:
    """
    return {"type": self.type, "name": self.name, "method": self.method, "imageUrl": self.imageUrl}

PaymentMethodType dataclass

Bases: BaseSchema

Method and type are needed when creating a transaction or setting a payment method later.

Source code in merchant001_sdk/core/data/schemas/responses/payment_method.py
@dataclass(frozen=True, kw_only=True)
class PaymentMethodType(BaseSchema):
    """Method and type are needed when creating a transaction or setting a payment method later."""

    type: str = field()
    methods: list[PaymentMethod | str] = field(default_factory=list)

    @property
    def data(self) -> dict[str, str | list[dict[str, str | str | None]]]:
        """data.

        Args:

        Returns:
            dict[str, str | list[dict[str, str | str | None]]]:
        """
        return {"type": self.type, "methods": [m.data if isinstance(m, PaymentMethod) else m for m in self.methods]}  # type: ignore

data() property

data.

Returns:

Type Description
dict[str, str | list[dict[str, str | str | None]]]

dict[str, str | list[dict[str, str | str | None]]]:

Source code in merchant001_sdk/core/data/schemas/responses/payment_method.py
@property
def data(self) -> dict[str, str | list[dict[str, str | str | None]]]:
    """data.

    Args:

    Returns:
        dict[str, str | list[dict[str, str | str | None]]]:
    """
    return {"type": self.type, "methods": [m.data if isinstance(m, PaymentMethod) else m for m in self.methods]}  # type: ignore

PaymentMethodRate dataclass

Bases: BaseSchema

Data of current rate for payment method.

Source code in merchant001_sdk/core/data/schemas/responses/rate.py
@dataclass(frozen=True, kw_only=True)
class PaymentMethodRate(BaseSchema):
    """Data of current rate for payment method."""

    method: str = field()
    rate: float = field()

    @property
    def data(self) -> dict[str, str | float]:
        """data.

        Args:

        Returns:
            dict[str, str | float]:
        """
        return {"method": self.method, "rate": self.rate}

data() property

data.

Returns:

Type Description
dict[str, str | float]

dict[str, str | float]:

Source code in merchant001_sdk/core/data/schemas/responses/rate.py
@property
def data(self) -> dict[str, str | float]:
    """data.

    Args:

    Returns:
        dict[str, str | float]:
    """
    return {"method": self.method, "rate": self.rate}

CreatedTransaction dataclass

Bases: BaseSchema

Returns for created transaction.

Source code in merchant001_sdk/core/data/schemas/responses/transaction.py
@dataclass(frozen=True, kw_only=True)
class CreatedTransaction(BaseSchema):
    """Returns for created transaction."""

    id: str = field()
    userId: str = field()

    pricing: dict[str, TransactionPricing] = field()
    selectedProvider: TransactionSelectedProvider = field()

    status: str | None = field(default=None)
    direction: str | None = field(default=None)

    fee: float | None = field(default=None)
    amountWithFee: float | None = field(default=None)
    currentPaymentFee: float | None = field(default=None)

    outcomeAddress: str | None = field(default=None)

    paymentUrl: str | None = field(default=None)
    redirectUrl: str | None = field(default=None)
    cancelUrl: str | None = field(default=None)

    isPartnerFee: bool = field(default=False)

    customProperties: t.Any | None = field(default=None)
    createdAt: t.Any | None = field(default=None)
    updatedAt: t.Any | None = field(default=None)
    expiredAt: t.Any | None = field(default=None)
    providerId: str | None = field(default=None)

    @property
    def data(self) -> dict[str, str | float | None | bool | dict[str, t.Any]]:
        """data.

        Args:

        Returns:
            dict[str, str | float | None | bool | dict[str, t.Any]]:
        """
        return {
            "id": self.id,
            "userId": self.userId,
            "status": self.status,
            "pricing": {k: v.data for k, v in self.pricing.items()},
            "selectedProvider": self.selectedProvider.data,
            "fee": self.fee,
            "currentPaymentFee": self.currentPaymentFee,
            "outcomeAddress": self.outcomeAddress,
            "redirectUrl": self.redirectUrl,
            "cancelUrl": self.cancelUrl,
            "isPartnerFee": self.isPartnerFee,
        }

data() property

data.

Returns:

Type Description
dict[str, str | float | None | bool | dict[str, t.Any]]

dict[str, str | float | None | bool | dict[str, t.Any]]:

Source code in merchant001_sdk/core/data/schemas/responses/transaction.py
@property
def data(self) -> dict[str, str | float | None | bool | dict[str, t.Any]]:
    """data.

    Args:

    Returns:
        dict[str, str | float | None | bool | dict[str, t.Any]]:
    """
    return {
        "id": self.id,
        "userId": self.userId,
        "status": self.status,
        "pricing": {k: v.data for k, v in self.pricing.items()},
        "selectedProvider": self.selectedProvider.data,
        "fee": self.fee,
        "currentPaymentFee": self.currentPaymentFee,
        "outcomeAddress": self.outcomeAddress,
        "redirectUrl": self.redirectUrl,
        "cancelUrl": self.cancelUrl,
        "isPartnerFee": self.isPartnerFee,
    }

GettedTransaction dataclass

Bases: BaseSchema

Full already exist transaction data and status of transaction.

Source code in merchant001_sdk/core/data/schemas/responses/transaction.py
@dataclass(frozen=True, kw_only=True)
class GettedTransaction(BaseSchema):
    """Full already exist transaction data and status of transaction."""

    status: str = field()
    transaction: Transaction = field()

    @property
    def data(self) -> dict[str, str | dict[str, t.Any]]:
        """data.

        Args:

        Returns:
            dict[str, str | dict[str, t.Any]]:
        """
        return {"status": self.status, "transaction": self.transaction.data}

data() property

data.

Returns:

Type Description
dict[str, str | dict[str, t.Any]]

dict[str, str | dict[str, t.Any]]:

Source code in merchant001_sdk/core/data/schemas/responses/transaction.py
@property
def data(self) -> dict[str, str | dict[str, t.Any]]:
    """data.

    Args:

    Returns:
        dict[str, str | dict[str, t.Any]]:
    """
    return {"status": self.status, "transaction": self.transaction.data}

GettedTransactionRequisite dataclass

Bases: BaseSchema

Trasnaction view of requisite.

Source code in merchant001_sdk/core/data/schemas/responses/transaction.py
@dataclass(frozen=True, kw_only=True)
class GettedTransactionRequisite(BaseSchema):
    """Trasnaction view of requisite."""

    requisite: Requisite = field()
    transaction: Transaction = field()

    @property
    def data(self) -> dict[str, str | dict[str, t.Any]]:
        """data.

        Args:

        Returns:
            dict[str, str | dict[str, t.Any]]:
        """
        return {"requisite": self.requisite.data, "transaction": self.transaction.data}

data() property

data.

Returns:

Type Description
dict[str, str | dict[str, t.Any]]

dict[str, str | dict[str, t.Any]]:

Source code in merchant001_sdk/core/data/schemas/responses/transaction.py
@property
def data(self) -> dict[str, str | dict[str, t.Any]]:
    """data.

    Args:

    Returns:
        dict[str, str | dict[str, t.Any]]:
    """
    return {"requisite": self.requisite.data, "transaction": self.transaction.data}

Requisite dataclass

Bases: BaseSchema

Requisite data.

Source code in merchant001_sdk/core/data/schemas/responses/transaction.py
@dataclass(frozen=True, kw_only=True)
class Requisite(BaseSchema):
    """Requisite data."""

    accountNumber: str = field()
    accountName: str = field()
    method: str = field()
    type: str = field()
    imageUrl: str = field()
    id: str = field()

    @property
    def data(self) -> dict[str, str | dict[str, t.Any]]:
        """data.

        Args:

        Returns:
            dict[str, str | dict[str, t.Any]]:
        """
        return {
            "accountNumber": self.accountNumber,
            "accountName": self.accountName,
            "method": self.method,
            "type": self.type,
            "imageUrl": self.imageUrl,
            "id": self.id,
        }

data() property

data.

Returns:

Type Description
dict[str, str | dict[str, t.Any]]

dict[str, str | dict[str, t.Any]]:

Source code in merchant001_sdk/core/data/schemas/responses/transaction.py
@property
def data(self) -> dict[str, str | dict[str, t.Any]]:
    """data.

    Args:

    Returns:
        dict[str, str | dict[str, t.Any]]:
    """
    return {
        "accountNumber": self.accountNumber,
        "accountName": self.accountName,
        "method": self.method,
        "type": self.type,
        "imageUrl": self.imageUrl,
        "id": self.id,
    }

Transaction dataclass

Bases: BaseSchema

Full transaction schema.

Source code in merchant001_sdk/core/data/schemas/responses/transaction.py
@dataclass(frozen=True, kw_only=True)
class Transaction(BaseSchema):
    """Full transaction schema."""

    userId: str = field()

    status: str = field()

    pricing: dict[str, TransactionPricing] = field()
    selectedProvider: TransactionSelectedProvider = field()

    direction: str | None = field(default=None)
    id: str | None = field(default=None)
    outcomeAddress: str | None = field(default=None)
    isPartnerFee: bool = field(default=False)

    fee: float | None = field(default=False)
    currentPaymentFee: float | None = field(default=False)
    amountWithFee: float | None = field(default=False)

    paymentUrl: str | None = field(default=None)
    redirectUrl: str | None = field(default=None)
    cancelUrl: str | None = field(default=None)

    customProperties: t.Any | None = field(default=None)
    createdAt: t.Any | None = field(default=None)
    updatedAt: t.Any | None = field(default=None)
    expiredAt: t.Any | None = field(default=None)
    providerId: str | None = field(default=None)

    @property
    def data(self) -> dict[str, str | float | None | bool | dict[str, t.Any]]:
        """data.

        Args:

        Returns:
            dict[str, str | float | None | bool | dict[str, t.Any]]:
        """
        return {
            "userId": self.userId,
            "status": self.status,
            "pricing": {k: v.data for k, v in self.pricing.items()},
            "selectedProvider": self.selectedProvider.data,
            "redirectUrl": self.redirectUrl,
            "cancelUrl": self.cancelUrl,
            "isPartnerFee": self.isPartnerFee,
            "fee": self.fee,
            "currentPaymentFee": self.currentPaymentFee,
        }

data() property

data.

Returns:

Type Description
dict[str, str | float | None | bool | dict[str, t.Any]]

dict[str, str | float | None | bool | dict[str, t.Any]]:

Source code in merchant001_sdk/core/data/schemas/responses/transaction.py
@property
def data(self) -> dict[str, str | float | None | bool | dict[str, t.Any]]:
    """data.

    Args:

    Returns:
        dict[str, str | float | None | bool | dict[str, t.Any]]:
    """
    return {
        "userId": self.userId,
        "status": self.status,
        "pricing": {k: v.data for k, v in self.pricing.items()},
        "selectedProvider": self.selectedProvider.data,
        "redirectUrl": self.redirectUrl,
        "cancelUrl": self.cancelUrl,
        "isPartnerFee": self.isPartnerFee,
        "fee": self.fee,
        "currentPaymentFee": self.currentPaymentFee,
    }

TransactionPricing dataclass

Bases: BaseSchema

Transaction price amount (value) and currency.

Source code in merchant001_sdk/core/data/schemas/responses/transaction.py
@dataclass(frozen=True, kw_only=True)
class TransactionPricing(BaseSchema):
    """Transaction price amount (value) and currency."""

    amount: float = field()
    currency: str = field()

    @property
    def data(self) -> dict[str, str | float]:
        """data.

        Args:

        Returns:
            dict[str, str | float]:
        """
        return {
            "amount": self.amount,
            "currency": self.currency,
        }

data() property

data.

Returns:

Type Description
dict[str, str | float]

dict[str, str | float]:

Source code in merchant001_sdk/core/data/schemas/responses/transaction.py
@property
def data(self) -> dict[str, str | float]:
    """data.

    Args:

    Returns:
        dict[str, str | float]:
    """
    return {
        "amount": self.amount,
        "currency": self.currency,
    }

TransactionSelectedProvider dataclass

Bases: BaseSchema

Transaction payment's method and type.

Source code in merchant001_sdk/core/data/schemas/responses/transaction.py
@dataclass(frozen=True, kw_only=True)
class TransactionSelectedProvider(BaseSchema):
    """Transaction payment's method and type."""

    type: str | None = field(default=None)
    method: str | None = field(default=None)

    @property
    def data(self) -> dict[str, str | None]:
        """data.

        Args:

        Returns:
            dict[str, str | None]:
        """
        return {
            "type": self.type,
            "method": self.method,
        }

data() property

data.

Returns:

Type Description
dict[str, str | None]

dict[str, str | None]:

Source code in merchant001_sdk/core/data/schemas/responses/transaction.py
@property
def data(self) -> dict[str, str | None]:
    """data.

    Args:

    Returns:
        dict[str, str | None]:
    """
    return {
        "type": self.type,
        "method": self.method,
    }