{
    "schemes": [],
    "swagger": "2.0",
    "info": {
        "description": "",
        "title": "Zendit gateway API",
        "contact": {},
        "version": ""
    },
    "host": "",
    "basePath": "/v1",
    "paths": {
        "/balance": {
            "get": {
                "security": [
                    {
                        "ApiKey": []
                    }
                ],
                "tags": [
                    "Zendit"
                ],
                "summary": "Retrieve wallet balance",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/dto.BalanceResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    }
                }
            }
        },
        "/billpay/offers": {
            "get": {
                "security": [
                    {
                        "ApiKey": []
                    }
                ],
                "tags": [
                    "Zendit"
                ],
                "summary": "Get list of BillPay offers",
                "parameters": [
                    {
                        "type": "integer",
                        "name": "_limit",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "Example: Reusing common fields for filtering and pagination",
                        "name": "_offset",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "name": "brand",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "country",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "Africa",
                            "Asia",
                            "Caribbean",
                            "Central America",
                            "Eastern Europe",
                            "Global",
                            "Middle East and North Africa",
                            "North America",
                            "Oceania",
                            "South America",
                            "South Asia",
                            "Southeast Asia",
                            "Western Europe"
                        ],
                        "type": "string",
                        "x-enum-varnames": [
                            "RegionAfrica",
                            "RegionAsia",
                            "RegionCaribbean",
                            "RegionCentralAmerica",
                            "RegionEasternEurope",
                            "RegionGlobal",
                            "RegionMiddleEastAndNorthAfrica",
                            "RegionNorthAmerica",
                            "RegionOceania",
                            "RegionSouthAmerica",
                            "RegionSouthAsia",
                            "RegionSoutheastAsia",
                            "RegionWesternEurope"
                        ],
                        "name": "regions",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "subType",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/dto.BillPayOffersResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    }
                }
            }
        },
        "/billpay/offers/{offerId}": {
            "get": {
                "security": [
                    {
                        "ApiKey": []
                    }
                ],
                "tags": [
                    "Zendit"
                ],
                "summary": "Get a BillPay offer by the offer ID",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Get BillPay offer by id",
                        "name": "offerId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/dto.BillPayOffer"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    }
                }
            }
        },
        "/billpay/offers/{offerId}/bill": {
            "get": {
                "security": [
                    {
                        "ApiKey": []
                    }
                ],
                "tags": [
                    "Zendit"
                ],
                "summary": "Get a BillPay bill for a specific offer",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Offer ID",
                        "name": "offerId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Bill Identifier",
                        "name": "billIdentifier",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Account Number",
                        "name": "accountNumber",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/dto.BillPayBillResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    }
                }
            }
        },
        "/billpay/purchases": {
            "get": {
                "security": [
                    {
                        "ApiKey": []
                    }
                ],
                "tags": [
                    "Zendit"
                ],
                "summary": "Get list of BillPay purchases",
                "parameters": [
                    {
                        "type": "integer",
                        "name": "_limit",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "name": "_offset",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "name": "createdAt",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "ACCEPTED",
                            "PENDING",
                            "AUTHORIZED",
                            "IN_PROGRESS",
                            "DONE",
                            "FAILED"
                        ],
                        "type": "string",
                        "x-enum-varnames": [
                            "TransactionStatusAccepted",
                            "TransactionStatusPending",
                            "TransactionStatusAuthorized",
                            "TransactionStatusInProgress",
                            "TransactionStatusDone",
                            "TransactionStatusFailed"
                        ],
                        "name": "status",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/dto.BillPayPurchasesResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "ApiKey": []
                    }
                ],
                "tags": [
                    "Zendit"
                ],
                "summary": "Create a BillPay purchase",
                "parameters": [
                    {
                        "description": "Purchase input data",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/dto.BillPayPurchaseInput"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/dto.BillPayPurchaseResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    }
                }
            }
        },
        "/billpay/purchases/{transactionId}": {
            "get": {
                "security": [
                    {
                        "ApiKey": []
                    }
                ],
                "tags": [
                    "Zendit"
                ],
                "summary": "Get a BillPay purchase by the transaction ID",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Get BillPay purchase by id",
                        "name": "transactionId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/dto.BillPayPurchase"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    }
                }
            }
        },
        "/brands": {
            "get": {
                "security": [
                    {
                        "ApiKey": []
                    }
                ],
                "tags": [
                    "Zendit"
                ],
                "summary": "Get list of brands",
                "parameters": [
                    {
                        "type": "integer",
                        "name": "_limit",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "name": "_offset",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "name": "country",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/dto.BrandsResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    }
                }
            }
        },
        "/brands/{brand}": {
            "get": {
                "security": [
                    {
                        "ApiKey": []
                    }
                ],
                "tags": [
                    "Zendit"
                ],
                "summary": "Get a brand by the brand code",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Get brand by code",
                        "name": "brand",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/dto.BrandInfo"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    }
                }
            }
        },
        "/brands/{brand}/redemptionInstructions": {
            "get": {
                "security": [
                    {
                        "ApiKey": []
                    }
                ],
                "tags": [
                    "Zendit"
                ],
                "summary": "Get a brand redemption instruction by the brand code",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Redemption instruction by brand code",
                        "name": "brand",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "name": "country",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "name": "deliveryType",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "name": "language",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/dto.RedemptionInstructionInfo"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    }
                }
            }
        },
        "/esim/offers": {
            "get": {
                "security": [
                    {
                        "ApiKey": []
                    }
                ],
                "tags": [
                    "Zendit"
                ],
                "summary": "Get list of eSIM offers",
                "parameters": [
                    {
                        "type": "integer",
                        "name": "_limit",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "name": "_offset",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "name": "brand",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "country",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "Africa",
                            "Asia",
                            "Caribbean",
                            "Central America",
                            "Eastern Europe",
                            "Global",
                            "Middle East and North Africa",
                            "North America",
                            "Oceania",
                            "South America",
                            "South Asia",
                            "Southeast Asia",
                            "Western Europe"
                        ],
                        "type": "string",
                        "x-enum-varnames": [
                            "RegionAfrica",
                            "RegionAsia",
                            "RegionCaribbean",
                            "RegionCentralAmerica",
                            "RegionEasternEurope",
                            "RegionGlobal",
                            "RegionMiddleEastAndNorthAfrica",
                            "RegionNorthAmerica",
                            "RegionOceania",
                            "RegionSouthAmerica",
                            "RegionSouthAsia",
                            "RegionSoutheastAsia",
                            "RegionWesternEurope"
                        ],
                        "name": "regions",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "subType",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/dto.ESimOffersResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    }
                }
            }
        },
        "/esim/offers/{offerId}": {
            "get": {
                "security": [
                    {
                        "ApiKey": []
                    }
                ],
                "tags": [
                    "Zendit"
                ],
                "summary": "Get an eSIM offer by the offer ID",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Get an eSIM by id",
                        "name": "offerId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/dto.ESimOffer"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    }
                }
            }
        },
        "/esim/purchases": {
            "get": {
                "security": [
                    {
                        "ApiKey": []
                    }
                ],
                "tags": [
                    "Zendit"
                ],
                "summary": "Get list of eSim transactions",
                "parameters": [
                    {
                        "type": "integer",
                        "name": "_limit",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "name": "_offset",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "name": "createdAt",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "ACCEPTED",
                            "PENDING",
                            "AUTHORIZED",
                            "IN_PROGRESS",
                            "DONE",
                            "FAILED"
                        ],
                        "type": "string",
                        "x-enum-varnames": [
                            "TransactionStatusAccepted",
                            "TransactionStatusPending",
                            "TransactionStatusAuthorized",
                            "TransactionStatusInProgress",
                            "TransactionStatusDone",
                            "TransactionStatusFailed"
                        ],
                        "name": "status",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/dto.ESimPurchasesResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "ApiKey": []
                    }
                ],
                "tags": [
                    "Zendit"
                ],
                "summary": "Create transaction for purchase",
                "parameters": [
                    {
                        "description": "Purchase input data",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/dto.ESimPurchaseMakeInput"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/dto.ESimPurchaseResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    }
                }
            }
        },
        "/esim/purchases/{transactionId}": {
            "get": {
                "security": [
                    {
                        "ApiKey": []
                    }
                ],
                "tags": [
                    "Zendit"
                ],
                "summary": "Get eSim transaction by id",
                "parameters": [
                    {
                        "type": "string",
                        "description": "transaction id",
                        "name": "transactionId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/dto.ESimPurchase"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    }
                }
            }
        },
        "/esim/purchases/{transactionId}/qrcode": {
            "get": {
                "security": [
                    {
                        "ApiKey": []
                    }
                ],
                "produces": [
                    "image/png",
                    "application/json"
                ],
                "tags": [
                    "Zendit"
                ],
                "summary": "Get eSim QR code by transaction id",
                "parameters": [
                    {
                        "type": "string",
                        "description": "transaction id",
                        "name": "transactionId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Response for PNG content type",
                        "schema": {
                            "type": "file"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    }
                }
            }
        },
        "/esim/purchases/{transactionId}/refund": {
            "get": {
                "security": [
                    {
                        "ApiKey": []
                    }
                ],
                "tags": [
                    "Zendit"
                ],
                "summary": "Get status of refund transaction",
                "parameters": [
                    {
                        "type": "string",
                        "description": "transaction id",
                        "name": "transactionId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/dto.ESimRefundStatus"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "ApiKey": []
                    }
                ],
                "tags": [
                    "Zendit"
                ],
                "summary": "Refund eSim purchase by transaction id",
                "parameters": [
                    {
                        "type": "string",
                        "description": "transaction id",
                        "name": "transactionId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/dto.ESimRefund"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    }
                }
            }
        },
        "/esim/{iccId}/plans": {
            "get": {
                "security": [
                    {
                        "ApiKey": []
                    }
                ],
                "tags": [
                    "Zendit"
                ],
                "summary": "Get list of eSim plans",
                "parameters": [
                    {
                        "type": "string",
                        "description": "eSIM Plans input data",
                        "name": "iccId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/dto.ESIMPlansResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    }
                }
            }
        },
        "/promos": {
            "get": {
                "security": [
                    {
                        "ApiKey": []
                    }
                ],
                "tags": [
                    "Zendit"
                ],
                "summary": "Get list of promotions",
                "parameters": [
                    {
                        "type": "integer",
                        "name": "_limit",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "name": "_offset",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "name": "brand",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "country",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "language",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "Africa",
                            "Asia",
                            "Caribbean",
                            "Central America",
                            "Eastern Europe",
                            "Global",
                            "Middle East and North Africa",
                            "North America",
                            "Oceania",
                            "South America",
                            "South Asia",
                            "Southeast Asia",
                            "Western Europe"
                        ],
                        "type": "string",
                        "x-enum-varnames": [
                            "RegionAfrica",
                            "RegionAsia",
                            "RegionCaribbean",
                            "RegionCentralAmerica",
                            "RegionEasternEurope",
                            "RegionGlobal",
                            "RegionMiddleEastAndNorthAfrica",
                            "RegionNorthAmerica",
                            "RegionOceania",
                            "RegionSouthAmerica",
                            "RegionSouthAsia",
                            "RegionSoutheastAsia",
                            "RegionWesternEurope"
                        ],
                        "name": "region",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "active",
                            "expired",
                            "pending"
                        ],
                        "type": "string",
                        "x-enum-varnames": [
                            "PromoStatusActive",
                            "PromoStatusExpired",
                            "PromoStatusPending"
                        ],
                        "name": "status",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/dto.PromosResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    }
                }
            }
        },
        "/promos/{promoId}": {
            "get": {
                "security": [
                    {
                        "ApiKey": []
                    }
                ],
                "tags": [
                    "Zendit"
                ],
                "summary": "Get promo by id",
                "parameters": [
                    {
                        "type": "string",
                        "description": "promo id",
                        "name": "promoId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/dto.Promo"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    }
                }
            }
        },
        "/reports/transactions": {
            "post": {
                "security": [
                    {
                        "ApiKey": []
                    }
                ],
                "tags": [
                    "Zendit"
                ],
                "summary": "Requests transactions reports",
                "parameters": [
                    {
                        "description": "Report input data",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/dto.ReportTransactionsPeriod"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/dto.ReportTransactions"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    }
                }
            }
        },
        "/reports/transactions/{reportId}": {
            "get": {
                "security": [
                    {
                        "ApiKey": []
                    }
                ],
                "tags": [
                    "Zendit"
                ],
                "summary": "Get transactions report by ID",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Report ID",
                        "name": "reportId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/dto.ReportTransactions"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    }
                }
            }
        },
        "/reports/transactions/{reportId}/{file}": {
            "get": {
                "security": [
                    {
                        "ApiKey": []
                    }
                ],
                "produces": [
                    "application/octet-stream"
                ],
                "tags": [
                    "Zendit"
                ],
                "summary": "Download report file",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Report ID",
                        "name": "reportId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "File",
                        "name": "file",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "File",
                        "schema": {
                            "type": "file"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    }
                }
            }
        },
        "/tools/phonenumberlookup/{msisdn}": {
            "get": {
                "security": [
                    {
                        "ApiKey": []
                    }
                ],
                "tags": [
                    "Zendit"
                ],
                "summary": "Get phone number info",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Phone number",
                        "name": "msisdn",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/dto.PhoneNumberLookupResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    }
                }
            }
        },
        "/topups/offers": {
            "get": {
                "security": [
                    {
                        "ApiKey": []
                    }
                ],
                "tags": [
                    "Zendit"
                ],
                "summary": "Get list of topup offers",
                "parameters": [
                    {
                        "type": "integer",
                        "name": "_limit",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "name": "_offset",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "name": "brand",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "country",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "Africa",
                            "Asia",
                            "Caribbean",
                            "Central America",
                            "Eastern Europe",
                            "Global",
                            "Middle East and North Africa",
                            "North America",
                            "Oceania",
                            "South America",
                            "South Asia",
                            "Southeast Asia",
                            "Western Europe"
                        ],
                        "type": "string",
                        "x-enum-varnames": [
                            "RegionAfrica",
                            "RegionAsia",
                            "RegionCaribbean",
                            "RegionCentralAmerica",
                            "RegionEasternEurope",
                            "RegionGlobal",
                            "RegionMiddleEastAndNorthAfrica",
                            "RegionNorthAmerica",
                            "RegionOceania",
                            "RegionSouthAmerica",
                            "RegionSouthAsia",
                            "RegionSoutheastAsia",
                            "RegionWesternEurope"
                        ],
                        "name": "regions",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "subType",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/dto.TopupOffersResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    }
                }
            }
        },
        "/topups/offers/{offerId}": {
            "get": {
                "security": [
                    {
                        "ApiKey": []
                    }
                ],
                "tags": [
                    "Zendit"
                ],
                "summary": "Get a topup offer by the offer ID",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Get topup by id",
                        "name": "offerId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/dto.TopupOffer"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    }
                }
            }
        },
        "/topups/purchases": {
            "get": {
                "security": [
                    {
                        "ApiKey": []
                    }
                ],
                "tags": [
                    "Zendit"
                ],
                "summary": "Get list of topup transactions",
                "parameters": [
                    {
                        "type": "integer",
                        "name": "_limit",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "name": "_offset",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "name": "createdAt",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "ACCEPTED",
                            "PENDING",
                            "AUTHORIZED",
                            "IN_PROGRESS",
                            "DONE",
                            "FAILED"
                        ],
                        "type": "string",
                        "x-enum-varnames": [
                            "TransactionStatusAccepted",
                            "TransactionStatusPending",
                            "TransactionStatusAuthorized",
                            "TransactionStatusInProgress",
                            "TransactionStatusDone",
                            "TransactionStatusFailed"
                        ],
                        "name": "status",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/dto.TopupPurchasesResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "ApiKey": []
                    }
                ],
                "tags": [
                    "Zendit"
                ],
                "summary": "Create transaction for purchase",
                "parameters": [
                    {
                        "description": "Purchase input data",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/dto.TopupPurchaseMakeInput"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/dto.TopupPurchaseResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    }
                }
            }
        },
        "/topups/purchases/{transactionId}": {
            "get": {
                "security": [
                    {
                        "ApiKey": []
                    }
                ],
                "tags": [
                    "Zendit"
                ],
                "summary": "Get topup transaction by id",
                "parameters": [
                    {
                        "type": "string",
                        "description": "transaction id",
                        "name": "transactionId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/dto.TopupPurchase"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    }
                }
            }
        },
        "/transactions": {
            "get": {
                "security": [
                    {
                        "ApiKey": []
                    }
                ],
                "tags": [
                    "Zendit"
                ],
                "summary": "Get list of transactions",
                "parameters": [
                    {
                        "type": "integer",
                        "name": "_limit",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "name": "_offset",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "name": "createdAt",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "TOPUP",
                            "ESIM",
                            "VOUCHER",
                            "BILL_PAY",
                            "WALLET_RECHARGE",
                            "REFUND",
                            "BULK_CHECKOUT"
                        ],
                        "type": "string",
                        "x-enum-varnames": [
                            "ProductTypeTopup",
                            "ProductTypeESIM",
                            "ProductTypeVoucher",
                            "ProductTypeBillPay",
                            "ProductTypeWalletRecharge",
                            "ProductTypeRefund",
                            "ProductTypeBulkCheckout"
                        ],
                        "name": "productType",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "ACCEPTED",
                            "PENDING",
                            "AUTHORIZED",
                            "IN_PROGRESS",
                            "DONE",
                            "FAILED"
                        ],
                        "type": "string",
                        "x-enum-varnames": [
                            "TransactionStatusAccepted",
                            "TransactionStatusPending",
                            "TransactionStatusAuthorized",
                            "TransactionStatusInProgress",
                            "TransactionStatusDone",
                            "TransactionStatusFailed"
                        ],
                        "name": "status",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "CREDIT",
                            "DEBIT"
                        ],
                        "type": "string",
                        "x-enum-varnames": [
                            "Credit",
                            "Debit"
                        ],
                        "name": "type",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/dto.TransactionsResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    }
                }
            }
        },
        "/transactions/{transactionId}": {
            "get": {
                "security": [
                    {
                        "ApiKey": []
                    }
                ],
                "tags": [
                    "Zendit"
                ],
                "summary": "Get transaction by id",
                "parameters": [
                    {
                        "type": "string",
                        "description": "transaction id",
                        "name": "transactionId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/dto.Transaction"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    }
                }
            }
        },
        "/vouchers/offers": {
            "get": {
                "security": [
                    {
                        "ApiKey": []
                    }
                ],
                "tags": [
                    "Zendit"
                ],
                "summary": "Get list of voucher offers",
                "parameters": [
                    {
                        "type": "integer",
                        "name": "_limit",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "name": "_offset",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "name": "brand",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "country",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "Africa",
                            "Asia",
                            "Caribbean",
                            "Central America",
                            "Eastern Europe",
                            "Global",
                            "Middle East and North Africa",
                            "North America",
                            "Oceania",
                            "South America",
                            "South Asia",
                            "Southeast Asia",
                            "Western Europe"
                        ],
                        "type": "string",
                        "x-enum-varnames": [
                            "RegionAfrica",
                            "RegionAsia",
                            "RegionCaribbean",
                            "RegionCentralAmerica",
                            "RegionEasternEurope",
                            "RegionGlobal",
                            "RegionMiddleEastAndNorthAfrica",
                            "RegionNorthAmerica",
                            "RegionOceania",
                            "RegionSouthAmerica",
                            "RegionSouthAsia",
                            "RegionSoutheastAsia",
                            "RegionWesternEurope"
                        ],
                        "name": "regions",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "subType",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/dto.VoucherOffersResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    }
                }
            }
        },
        "/vouchers/offers/{offerId}": {
            "get": {
                "security": [
                    {
                        "ApiKey": []
                    }
                ],
                "tags": [
                    "Zendit"
                ],
                "summary": "Get a voucher offer by the offer ID",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Get voucher by id",
                        "name": "offerId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/dto.VoucherOffer"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    }
                }
            }
        },
        "/vouchers/purchases": {
            "get": {
                "security": [
                    {
                        "ApiKey": []
                    }
                ],
                "tags": [
                    "Zendit"
                ],
                "summary": "Get list of transactions",
                "parameters": [
                    {
                        "type": "integer",
                        "name": "_limit",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "name": "_offset",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "name": "createdAt",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "ACCEPTED",
                            "PENDING",
                            "AUTHORIZED",
                            "IN_PROGRESS",
                            "DONE",
                            "FAILED"
                        ],
                        "type": "string",
                        "x-enum-varnames": [
                            "TransactionStatusAccepted",
                            "TransactionStatusPending",
                            "TransactionStatusAuthorized",
                            "TransactionStatusInProgress",
                            "TransactionStatusDone",
                            "TransactionStatusFailed"
                        ],
                        "name": "status",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/dto.VoucherPurchasesResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "ApiKey": []
                    }
                ],
                "tags": [
                    "Zendit"
                ],
                "summary": "Create transaction for purchase",
                "parameters": [
                    {
                        "description": "Purchase input data",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/dto.VoucherPurchaseInput"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/dto.VoucherPurchaseResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    }
                }
            }
        },
        "/vouchers/purchases/{transactionId}": {
            "get": {
                "security": [
                    {
                        "ApiKey": []
                    }
                ],
                "tags": [
                    "Zendit"
                ],
                "summary": "Get purchase transaction by id",
                "parameters": [
                    {
                        "type": "string",
                        "description": "transaction id",
                        "name": "transactionId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/dto.VoucherPurchase"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/dto.ResponseError"
                        }
                    }
                }
            }
        }
    },
    "definitions": {
        "dto.BalanceResponse": {
            "type": "object",
            "required": [
                "availableBalance",
                "currency",
                "currencyDivisor"
            ],
            "properties": {
                "availableBalance": {
                    "type": "integer"
                },
                "currency": {
                    "type": "string"
                },
                "currencyDivisor": {
                    "type": "integer"
                }
            }
        },
        "dto.BillPayBillResponse": {
            "type": "object",
            "properties": {
                "cost": {
                    "type": "integer"
                },
                "costCurrency": {
                    "type": "string"
                },
                "costCurrencyDivisor": {
                    "type": "integer"
                },
                "costFee": {
                    "type": "integer"
                },
                "costFeePct": {
                    "type": "integer"
                },
                "costFeeTotal": {
                    "type": "integer"
                },
                "costTotal": {
                    "type": "integer"
                },
                "createdAt": {
                    "type": "string"
                },
                "price": {
                    "type": "integer"
                },
                "priceCurrency": {
                    "type": "string"
                },
                "priceCurrencyDivisor": {
                    "type": "integer"
                },
                "priceFee": {
                    "type": "integer"
                },
                "priceFx": {
                    "type": "number"
                },
                "priceType": {
                    "$ref": "#/definitions/dto.PriceType"
                },
                "send": {
                    "type": "integer"
                },
                "sendCurrency": {
                    "type": "string"
                },
                "sendCurrencyDivisor": {
                    "type": "integer"
                }
            }
        },
        "dto.BillPayOffer": {
            "type": "object",
            "required": [
                "billRetrievalRequiredFields",
                "brand",
                "brandName",
                "cost",
                "country",
                "createdAt",
                "cutoffTime",
                "cutoffTimezone",
                "deliverySpeedSeconds",
                "enabled",
                "notes",
                "offerId",
                "price",
                "priceType",
                "processingDays",
                "processingOnHolidays",
                "productType",
                "regions",
                "requiredFields",
                "send",
                "shortNotes",
                "subTypes",
                "supportsBillRetrieval",
                "supportsLatePayments",
                "supportsOverpayment",
                "supportsUnderpayment",
                "updatedAt"
            ],
            "properties": {
                "billRetrievalRequiredFields": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "brand": {
                    "type": "string"
                },
                "brandName": {
                    "type": "string"
                },
                "cost": {
                    "$ref": "#/definitions/dto.Cost"
                },
                "country": {
                    "type": "string"
                },
                "createdAt": {
                    "type": "string"
                },
                "cutoffTime": {
                    "type": "string"
                },
                "cutoffTimezone": {
                    "type": "string"
                },
                "deliverySpeedSeconds": {
                    "type": "integer"
                },
                "enabled": {
                    "description": "Common fields (similar to ESimOffer or VoucherOffer)",
                    "type": "boolean"
                },
                "notes": {
                    "type": "string"
                },
                "offerId": {
                    "type": "string"
                },
                "price": {
                    "$ref": "#/definitions/dto.Price"
                },
                "priceType": {
                    "$ref": "#/definitions/dto.PriceType"
                },
                "processingDays": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "processingOnHolidays": {
                    "type": "boolean"
                },
                "productType": {
                    "$ref": "#/definitions/dto.ProductType"
                },
                "regions": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "requiredFields": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "send": {
                    "$ref": "#/definitions/dto.Zend"
                },
                "shortNotes": {
                    "type": "string"
                },
                "subTypes": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "supportsBillRetrieval": {
                    "type": "boolean"
                },
                "supportsLatePayments": {
                    "type": "boolean"
                },
                "supportsOverpayment": {
                    "type": "boolean"
                },
                "supportsUnderpayment": {
                    "type": "boolean"
                },
                "updatedAt": {
                    "type": "string"
                }
            }
        },
        "dto.BillPayOffersResponse": {
            "type": "object",
            "required": [
                "limit",
                "list",
                "offset",
                "total"
            ],
            "properties": {
                "limit": {
                    "type": "integer"
                },
                "list": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/dto.BillPayOffer"
                    }
                },
                "offset": {
                    "type": "integer"
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "dto.BillPayPurchase": {
            "type": "object",
            "required": [
                "brand",
                "brandName",
                "cost",
                "costBase",
                "costCurrency",
                "costCurrencyDivisor",
                "costFee",
                "country",
                "createdAt",
                "fields",
                "log",
                "notes",
                "offerId",
                "price",
                "priceBase",
                "priceCurrency",
                "priceCurrencyDivisor",
                "priceFee",
                "priceType",
                "productType",
                "recipient",
                "send",
                "sendCurrency",
                "sendCurrencyDivisor",
                "sender",
                "shortNotes",
                "status",
                "subTypes",
                "transactionId",
                "updatedAt"
            ],
            "properties": {
                "brand": {
                    "type": "string"
                },
                "brandName": {
                    "type": "string"
                },
                "cost": {
                    "type": "integer"
                },
                "costBase": {
                    "type": "integer"
                },
                "costCurrency": {
                    "type": "string"
                },
                "costCurrencyDivisor": {
                    "type": "integer"
                },
                "costFee": {
                    "type": "integer"
                },
                "country": {
                    "type": "string"
                },
                "createdAt": {
                    "type": "string"
                },
                "error": {
                    "$ref": "#/definitions/dto.Error"
                },
                "fields": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/dto.PurchaseField"
                    }
                },
                "log": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/dto.TransactionLogItem"
                    }
                },
                "notes": {
                    "type": "string"
                },
                "offerId": {
                    "type": "string"
                },
                "price": {
                    "type": "integer"
                },
                "priceBase": {
                    "type": "integer"
                },
                "priceCurrency": {
                    "type": "string"
                },
                "priceCurrencyDivisor": {
                    "type": "integer"
                },
                "priceFee": {
                    "type": "integer"
                },
                "priceType": {
                    "$ref": "#/definitions/dto.PriceType"
                },
                "productType": {
                    "$ref": "#/definitions/dto.ProductType"
                },
                "recipient": {
                    "$ref": "#/definitions/dto.Recipient"
                },
                "regions": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "send": {
                    "type": "integer"
                },
                "sendCurrency": {
                    "type": "string"
                },
                "sendCurrencyDivisor": {
                    "type": "integer"
                },
                "sender": {
                    "$ref": "#/definitions/dto.Sender"
                },
                "shortNotes": {
                    "type": "string"
                },
                "status": {
                    "$ref": "#/definitions/dto.TransactionStatus"
                },
                "subTypes": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "transactionId": {
                    "type": "string"
                },
                "updatedAt": {
                    "type": "string"
                },
                "value": {
                    "$ref": "#/definitions/dto.PurchaseValue"
                }
            }
        },
        "dto.BillPayPurchaseInput": {
            "type": "object",
            "required": [
                "fields",
                "offerId",
                "recipient",
                "sender",
                "transactionId"
            ],
            "properties": {
                "fields": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/dto.PurchaseField"
                    }
                },
                "offerId": {
                    "type": "string"
                },
                "recipient": {
                    "$ref": "#/definitions/dto.Recipient"
                },
                "sender": {
                    "$ref": "#/definitions/dto.Sender"
                },
                "transactionId": {
                    "type": "string"
                },
                "value": {
                    "$ref": "#/definitions/dto.PurchaseValue"
                }
            }
        },
        "dto.BillPayPurchaseResponse": {
            "type": "object",
            "required": [
                "status",
                "transactionId"
            ],
            "properties": {
                "status": {
                    "$ref": "#/definitions/dto.TransactionStatus"
                },
                "transactionId": {
                    "type": "string"
                }
            }
        },
        "dto.BillPayPurchasesResponse": {
            "type": "object",
            "required": [
                "limit",
                "list",
                "offset",
                "total"
            ],
            "properties": {
                "limit": {
                    "type": "integer"
                },
                "list": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/dto.BillPayPurchase"
                    }
                },
                "offset": {
                    "type": "integer"
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "dto.BrandInfo": {
            "type": "object",
            "required": [
                "brand",
                "brandBigImage",
                "brandColor",
                "brandGiftImage",
                "brandInfoPdf",
                "brandLogo",
                "brandLogoExtension",
                "brandName",
                "description",
                "inputMasks",
                "redemptionInstructions",
                "requiredFieldsLabels"
            ],
            "properties": {
                "brand": {
                    "type": "string"
                },
                "brandBigImage": {
                    "type": "string"
                },
                "brandColor": {
                    "type": "string"
                },
                "brandGiftImage": {
                    "type": "string"
                },
                "brandInfoPdf": {
                    "type": "string"
                },
                "brandLogo": {
                    "type": "string"
                },
                "brandLogoExtension": {
                    "type": "string"
                },
                "brandName": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "inputMasks": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/dto.InputMask"
                    }
                },
                "redemptionInstructions": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/dto.RedemptionInstruction"
                    }
                },
                "requiredFieldsLabels": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/dto.RequiredFieldLabel"
                    }
                }
            }
        },
        "dto.BrandsResponse": {
            "type": "object",
            "required": [
                "limit",
                "list",
                "offset",
                "total"
            ],
            "properties": {
                "limit": {
                    "type": "integer"
                },
                "list": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/dto.OfferBrand"
                    }
                },
                "offset": {
                    "type": "integer"
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "dto.Confirmation": {
            "type": "object",
            "required": [
                "confirmationNumber",
                "externalReferenceId",
                "transactionTime"
            ],
            "properties": {
                "confirmationNumber": {
                    "type": "string"
                },
                "externalReferenceId": {
                    "type": "string"
                },
                "transactionTime": {
                    "type": "string"
                }
            }
        },
        "dto.Cost": {
            "type": "object",
            "required": [
                "currency",
                "currencyDivisor",
                "discount",
                "fee",
                "feePct"
            ],
            "properties": {
                "currency": {
                    "type": "string"
                },
                "currencyDivisor": {
                    "type": "integer"
                },
                "discount": {
                    "type": "number"
                },
                "fee": {
                    "type": "integer"
                },
                "feePct": {
                    "type": "number"
                },
                "fixed": {
                    "type": "integer"
                },
                "fx": {
                    "type": "number"
                },
                "max": {
                    "type": "integer"
                },
                "min": {
                    "type": "integer"
                }
            }
        },
        "dto.ESIMPlan": {
            "type": "object",
            "required": [
                "description",
                "iccid",
                "initialDataGB",
                "offerId",
                "remainingDataGB",
                "status",
                "unlimited"
            ],
            "properties": {
                "description": {
                    "type": "string"
                },
                "endAt": {
                    "type": "string"
                },
                "iccid": {
                    "type": "string"
                },
                "initialDataGB": {
                    "type": "number"
                },
                "offerId": {
                    "type": "string"
                },
                "remainingDataGB": {
                    "type": "number"
                },
                "startAt": {
                    "type": "string"
                },
                "status": {
                    "type": "string",
                    "enum": [
                        "ACTIVE",
                        "QUEUED"
                    ]
                },
                "unlimited": {
                    "type": "boolean"
                }
            }
        },
        "dto.ESIMPlansResponse": {
            "type": "object",
            "required": [
                "firstInstalledAt",
                "list",
                "total"
            ],
            "properties": {
                "firstInstalledAt": {
                    "type": "string"
                },
                "list": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/dto.ESIMPlan"
                    }
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "dto.ESimConfirmation": {
            "type": "object",
            "required": [
                "activationCode",
                "externalReferenceId",
                "iccid",
                "redemptionInstructions",
                "smdpAddress"
            ],
            "properties": {
                "activationCode": {
                    "type": "string"
                },
                "externalReferenceId": {
                    "type": "string"
                },
                "iccid": {
                    "type": "string"
                },
                "redemptionInstructions": {
                    "type": "string"
                },
                "smdpAddress": {
                    "type": "string"
                }
            }
        },
        "dto.ESimNetwork": {
            "type": "object",
            "required": [
                "brand",
                "brandName",
                "dataSpeeds"
            ],
            "properties": {
                "brand": {
                    "type": "string"
                },
                "brandName": {
                    "type": "string"
                },
                "dataSpeeds": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "dto.ESimOffer": {
            "type": "object",
            "required": [
                "brand",
                "brandName",
                "cost",
                "country",
                "createdAt",
                "dataGB",
                "dataSpeeds",
                "dataUnlimited",
                "durationDays",
                "enabled",
                "notes",
                "offerId",
                "price",
                "priceType",
                "productType",
                "regions",
                "roaming",
                "shortNotes",
                "smsNumber",
                "smsUnlimited",
                "subTypes",
                "updatedAt",
                "voiceMinutes",
                "voiceUnlimited"
            ],
            "properties": {
                "brand": {
                    "type": "string"
                },
                "brandName": {
                    "type": "string"
                },
                "cost": {
                    "$ref": "#/definitions/dto.Cost"
                },
                "country": {
                    "type": "string"
                },
                "createdAt": {
                    "type": "string"
                },
                "dataGB": {
                    "type": "number"
                },
                "dataSpeeds": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "dataUnlimited": {
                    "type": "boolean"
                },
                "durationDays": {
                    "type": "integer"
                },
                "enabled": {
                    "type": "boolean"
                },
                "notes": {
                    "type": "string"
                },
                "offerId": {
                    "type": "string"
                },
                "price": {
                    "$ref": "#/definitions/dto.Price"
                },
                "priceType": {
                    "$ref": "#/definitions/dto.PriceType"
                },
                "productType": {
                    "$ref": "#/definitions/dto.ProductType"
                },
                "regions": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "roaming": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/dto.ESimRoaming"
                    }
                },
                "shortNotes": {
                    "type": "string"
                },
                "smsNumber": {
                    "type": "integer"
                },
                "smsUnlimited": {
                    "type": "boolean"
                },
                "subTypes": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "updatedAt": {
                    "type": "string"
                },
                "voiceMinutes": {
                    "type": "integer"
                },
                "voiceUnlimited": {
                    "type": "boolean"
                }
            }
        },
        "dto.ESimOffersResponse": {
            "type": "object",
            "required": [
                "limit",
                "list",
                "offset",
                "total"
            ],
            "properties": {
                "limit": {
                    "type": "integer"
                },
                "list": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/dto.ESimOffer"
                    }
                },
                "offset": {
                    "type": "integer"
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "dto.ESimPurchase": {
            "type": "object",
            "required": [
                "brand",
                "brandName",
                "cost",
                "costBase",
                "costCurrency",
                "costCurrencyDivisor",
                "costFee",
                "country",
                "createdAt",
                "dataGB",
                "dataSpeeds",
                "dataUnlimited",
                "durationDays",
                "log",
                "notes",
                "offerId",
                "price",
                "priceBase",
                "priceCurrency",
                "priceCurrencyDivisor",
                "priceFee",
                "priceType",
                "productType",
                "regions",
                "roaming",
                "shortNotes",
                "smsNumber",
                "smsUnlimited",
                "status",
                "subTypes",
                "transactionId",
                "updatedAt",
                "voiceMinutes",
                "voiceUnlimited"
            ],
            "properties": {
                "brand": {
                    "type": "string"
                },
                "brandName": {
                    "type": "string"
                },
                "confirmation": {
                    "$ref": "#/definitions/dto.ESimConfirmation"
                },
                "cost": {
                    "type": "integer"
                },
                "costBase": {
                    "type": "integer"
                },
                "costCurrency": {
                    "type": "string"
                },
                "costCurrencyDivisor": {
                    "type": "integer"
                },
                "costFee": {
                    "type": "integer"
                },
                "country": {
                    "type": "string"
                },
                "createdAt": {
                    "type": "string"
                },
                "dataGB": {
                    "type": "number"
                },
                "dataSpeeds": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "dataUnlimited": {
                    "type": "boolean"
                },
                "durationDays": {
                    "type": "integer"
                },
                "error": {
                    "$ref": "#/definitions/dto.Error"
                },
                "log": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/dto.TransactionLogItem"
                    }
                },
                "notes": {
                    "type": "string"
                },
                "offerId": {
                    "type": "string"
                },
                "price": {
                    "type": "integer"
                },
                "priceBase": {
                    "type": "integer"
                },
                "priceCurrency": {
                    "type": "string"
                },
                "priceCurrencyDivisor": {
                    "type": "integer"
                },
                "priceFee": {
                    "type": "integer"
                },
                "priceType": {
                    "$ref": "#/definitions/dto.PriceType"
                },
                "productType": {
                    "$ref": "#/definitions/dto.ProductType"
                },
                "refund": {
                    "$ref": "#/definitions/dto.ESimRefund"
                },
                "regions": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "roaming": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/dto.ESimPurchaseRoaming"
                    }
                },
                "shortNotes": {
                    "type": "string"
                },
                "smsNumber": {
                    "type": "integer"
                },
                "smsUnlimited": {
                    "type": "boolean"
                },
                "status": {
                    "$ref": "#/definitions/dto.TransactionStatus"
                },
                "subTypes": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "transactionId": {
                    "type": "string"
                },
                "updatedAt": {
                    "type": "string"
                },
                "value": {
                    "$ref": "#/definitions/dto.PurchaseValue"
                },
                "voiceMinutes": {
                    "type": "integer"
                },
                "voiceUnlimited": {
                    "type": "boolean"
                }
            }
        },
        "dto.ESimPurchaseMakeInput": {
            "type": "object",
            "required": [
                "offerId",
                "transactionId"
            ],
            "properties": {
                "iccid": {
                    "type": "string"
                },
                "offerId": {
                    "type": "string"
                },
                "transactionId": {
                    "type": "string"
                }
            }
        },
        "dto.ESimPurchaseResponse": {
            "type": "object",
            "required": [
                "status",
                "transactionId"
            ],
            "properties": {
                "status": {
                    "$ref": "#/definitions/dto.TransactionStatus"
                },
                "transactionId": {
                    "type": "string"
                }
            }
        },
        "dto.ESimPurchaseRoaming": {
            "type": "object",
            "required": [
                "country",
                "dataSpeeds"
            ],
            "properties": {
                "country": {
                    "type": "string"
                },
                "dataSpeeds": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "dto.ESimPurchasesResponse": {
            "type": "object",
            "required": [
                "limit",
                "list",
                "offset",
                "total"
            ],
            "properties": {
                "limit": {
                    "type": "integer"
                },
                "list": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/dto.ESimPurchase"
                    }
                },
                "offset": {
                    "type": "integer"
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "dto.ESimQRCode": {
            "type": "object",
            "required": [
                "imageBase64"
            ],
            "properties": {
                "imageBase64": {
                    "type": "string"
                }
            }
        },
        "dto.ESimRefund": {
            "type": "object",
            "required": [
                "status"
            ],
            "properties": {
                "status": {
                    "$ref": "#/definitions/dto.TransactionStatus"
                }
            }
        },
        "dto.ESimRefundStatus": {
            "type": "object",
            "required": [
                "amount",
                "createdAt",
                "currency",
                "currencyDivisor",
                "log",
                "productType",
                "refundedTransactionId",
                "status",
                "transactionId",
                "type",
                "updatedAt"
            ],
            "properties": {
                "amount": {
                    "type": "integer"
                },
                "createdAt": {
                    "type": "string"
                },
                "currency": {
                    "type": "string"
                },
                "currencyDivisor": {
                    "type": "integer"
                },
                "error": {
                    "$ref": "#/definitions/dto.Error"
                },
                "log": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/dto.TransactionLogItem"
                    }
                },
                "productType": {
                    "$ref": "#/definitions/dto.ProductType"
                },
                "refundedTransactionId": {
                    "type": "string"
                },
                "status": {
                    "$ref": "#/definitions/dto.TransactionStatus"
                },
                "transactionId": {
                    "type": "string"
                },
                "type": {
                    "$ref": "#/definitions/dto.TransactionType"
                },
                "updatedAt": {
                    "type": "string"
                }
            }
        },
        "dto.ESimRoaming": {
            "type": "object",
            "required": [
                "country",
                "dataSpeeds",
                "networks"
            ],
            "properties": {
                "country": {
                    "type": "string"
                },
                "dataSpeeds": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "networks": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/dto.ESimNetwork"
                    }
                }
            }
        },
        "dto.Error": {
            "type": "object",
            "required": [
                "code",
                "description",
                "message"
            ],
            "properties": {
                "code": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "message": {
                    "type": "string"
                }
            }
        },
        "dto.HomeAddress": {
            "type": "object",
            "required": [
                "city",
                "country",
                "line1",
                "line2",
                "subdivision",
                "zip"
            ],
            "properties": {
                "city": {
                    "type": "string"
                },
                "country": {
                    "type": "string"
                },
                "line1": {
                    "type": "string"
                },
                "line2": {
                    "type": "string"
                },
                "subdivision": {
                    "type": "string"
                },
                "zip": {
                    "type": "string"
                }
            }
        },
        "dto.InputMask": {
            "type": "object",
            "properties": {
                "inputMask": {
                    "type": "string"
                },
                "requiredField": {
                    "type": "string"
                }
            }
        },
        "dto.OfferBrand": {
            "type": "object",
            "required": [
                "brand",
                "brandName"
            ],
            "properties": {
                "brand": {
                    "type": "string"
                },
                "brandName": {
                    "type": "string"
                }
            }
        },
        "dto.PhoneNumberLookupResponse": {
            "type": "object",
            "required": [
                "brand",
                "country",
                "mobileCountryCode",
                "mobileNetworkCode",
                "msisdn"
            ],
            "properties": {
                "brand": {
                    "type": "string"
                },
                "country": {
                    "type": "string"
                },
                "mobileCountryCode": {
                    "type": "string"
                },
                "mobileNetworkCode": {
                    "type": "string"
                },
                "msisdn": {
                    "type": "string"
                }
            }
        },
        "dto.Price": {
            "type": "object",
            "required": [
                "currency",
                "currencyDivisor",
                "fee"
            ],
            "properties": {
                "currency": {
                    "type": "string"
                },
                "currencyDivisor": {
                    "type": "integer"
                },
                "fee": {
                    "type": "integer"
                },
                "fixed": {
                    "type": "integer"
                },
                "fx": {
                    "type": "number"
                },
                "increment": {
                    "type": "integer"
                },
                "margin": {
                    "type": "number"
                },
                "max": {
                    "type": "integer"
                },
                "min": {
                    "type": "integer"
                },
                "suggestedFixed": {
                    "type": "integer"
                },
                "suggestedFx": {
                    "type": "number"
                }
            }
        },
        "dto.PriceType": {
            "type": "string",
            "enum": [
                "FIXED",
                "RANGE"
            ],
            "x-enum-varnames": [
                "PriceTypeFixed",
                "PriceTypeRange"
            ]
        },
        "dto.ProductType": {
            "type": "string",
            "enum": [
                "TOPUP",
                "ESIM",
                "VOUCHER",
                "BILL_PAY",
                "WALLET_RECHARGE",
                "REFUND",
                "BULK_CHECKOUT"
            ],
            "x-enum-varnames": [
                "ProductTypeTopup",
                "ProductTypeESIM",
                "ProductTypeVoucher",
                "ProductTypeBillPay",
                "ProductTypeWalletRecharge",
                "ProductTypeRefund",
                "ProductTypeBulkCheckout"
            ]
        },
        "dto.Promo": {
            "type": "object",
            "properties": {
                "brand": {
                    "$ref": "#/definitions/dto.OfferBrand"
                },
                "country": {
                    "type": "string"
                },
                "createdAt": {
                    "type": "string"
                },
                "dataBonusGB": {
                    "type": "number"
                },
                "dataMultiplier": {
                    "type": "number"
                },
                "description": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/dto.PromoDescription"
                    }
                },
                "endAt": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "maxValue": {
                    "type": "integer"
                },
                "minValue": {
                    "type": "integer"
                },
                "offerIds": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "regions": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "smsBonusNumber": {
                    "type": "integer"
                },
                "smsMultiplier": {
                    "type": "number"
                },
                "startAt": {
                    "type": "string"
                },
                "status": {
                    "$ref": "#/definitions/dto.PromoStatus"
                },
                "updatedAt": {
                    "type": "string"
                },
                "valueBonus": {
                    "type": "integer"
                },
                "valueMultiplier": {
                    "type": "number"
                },
                "voiceBonusMinutes": {
                    "type": "integer"
                },
                "voiceMultiplier": {
                    "type": "number"
                }
            }
        },
        "dto.PromoDescription": {
            "type": "object",
            "properties": {
                "description": {
                    "type": "string"
                },
                "language": {
                    "type": "string"
                },
                "terms": {
                    "type": "string"
                }
            }
        },
        "dto.PromoStatus": {
            "type": "string",
            "enum": [
                "active",
                "expired",
                "pending"
            ],
            "x-enum-varnames": [
                "PromoStatusActive",
                "PromoStatusExpired",
                "PromoStatusPending"
            ]
        },
        "dto.PromosResponse": {
            "type": "object",
            "properties": {
                "limit": {
                    "type": "integer"
                },
                "list": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/dto.Promo"
                    }
                },
                "offset": {
                    "type": "integer"
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "dto.PurchaseField": {
            "type": "object",
            "required": [
                "key",
                "value"
            ],
            "properties": {
                "key": {
                    "type": "string"
                },
                "value": {
                    "type": "string"
                }
            }
        },
        "dto.PurchaseValue": {
            "type": "object",
            "required": [
                "type",
                "value"
            ],
            "properties": {
                "type": {
                    "enum": [
                        "COST",
                        "PRICE",
                        "ZEND"
                    ],
                    "allOf": [
                        {
                            "$ref": "#/definitions/dto.ValueType"
                        }
                    ]
                },
                "value": {
                    "type": "integer"
                }
            }
        },
        "dto.Recipient": {
            "type": "object",
            "required": [
                "firstName",
                "homeAddress",
                "lastName"
            ],
            "properties": {
                "dateOfBirth": {
                    "type": "string"
                },
                "email": {
                    "type": "string"
                },
                "firstName": {
                    "type": "string"
                },
                "gender": {
                    "type": "string"
                },
                "homeAddress": {
                    "$ref": "#/definitions/dto.HomeAddress"
                },
                "lastName": {
                    "type": "string"
                },
                "middleName": {
                    "type": "string"
                },
                "mothersMaidenName": {
                    "type": "string"
                },
                "nationality": {
                    "type": "string"
                },
                "occupation": {
                    "type": "string"
                },
                "phone": {
                    "type": "string"
                }
            }
        },
        "dto.RedemptionInstruction": {
            "type": "object",
            "properties": {
                "country": {
                    "type": "string"
                },
                "deliveryType": {
                    "type": "string"
                },
                "language": {
                    "type": "string"
                },
                "link": {
                    "type": "string"
                }
            }
        },
        "dto.RedemptionInstructionInfo": {
            "type": "object",
            "required": [
                "country",
                "deliveryType",
                "language",
                "redemptionInstructions",
                "redemptionVideo",
                "terms"
            ],
            "properties": {
                "country": {
                    "type": "string"
                },
                "deliveryType": {
                    "type": "string"
                },
                "language": {
                    "type": "string"
                },
                "redemptionInstructions": {
                    "type": "string"
                },
                "redemptionVideo": {
                    "type": "string"
                },
                "terms": {
                    "type": "string"
                }
            }
        },
        "dto.Region": {
            "type": "string",
            "enum": [
                "Africa",
                "Asia",
                "Caribbean",
                "Central America",
                "Eastern Europe",
                "Global",
                "Middle East and North Africa",
                "North America",
                "Oceania",
                "South America",
                "South Asia",
                "Southeast Asia",
                "Western Europe"
            ],
            "x-enum-varnames": [
                "RegionAfrica",
                "RegionAsia",
                "RegionCaribbean",
                "RegionCentralAmerica",
                "RegionEasternEurope",
                "RegionGlobal",
                "RegionMiddleEastAndNorthAfrica",
                "RegionNorthAmerica",
                "RegionOceania",
                "RegionSouthAmerica",
                "RegionSouthAsia",
                "RegionSoutheastAsia",
                "RegionWesternEurope"
            ]
        },
        "dto.ReportFile": {
            "type": "object",
            "required": [
                "downloadUrl",
                "name"
            ],
            "properties": {
                "downloadUrl": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                }
            }
        },
        "dto.ReportLogItem": {
            "type": "object",
            "required": [
                "message",
                "recordedAt",
                "status"
            ],
            "properties": {
                "message": {
                    "type": "string"
                },
                "recordedAt": {
                    "type": "string"
                },
                "status": {
                    "$ref": "#/definitions/dto.ReportStatus"
                }
            }
        },
        "dto.ReportStatus": {
            "type": "string",
            "enum": [
                "REQUESTED",
                "IN_PROGRESS",
                "READY",
                "FAILED"
            ],
            "x-enum-varnames": [
                "ReportStatusRequested",
                "ReportStatusInProgress",
                "ReportStatusReady",
                "ReportStatusFailed"
            ]
        },
        "dto.ReportTransactions": {
            "type": "object",
            "required": [
                "createdAt",
                "log",
                "period",
                "reportId",
                "status",
                "updatedAt"
            ],
            "properties": {
                "createdAt": {
                    "type": "string"
                },
                "error": {
                    "$ref": "#/definitions/dto.Error"
                },
                "file": {
                    "$ref": "#/definitions/dto.ReportFile"
                },
                "log": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/dto.ReportLogItem"
                    }
                },
                "period": {
                    "$ref": "#/definitions/dto.ReportTransactionsPeriod"
                },
                "reportId": {
                    "type": "string"
                },
                "status": {
                    "$ref": "#/definitions/dto.ReportStatus"
                },
                "updatedAt": {
                    "type": "string"
                }
            }
        },
        "dto.ReportTransactionsPeriod": {
            "type": "object",
            "required": [
                "endLt",
                "startGte"
            ],
            "properties": {
                "endLt": {
                    "type": "string"
                },
                "startGte": {
                    "type": "string"
                }
            }
        },
        "dto.RequiredFieldLabel": {
            "type": "object",
            "properties": {
                "label": {
                    "type": "string"
                },
                "requiredField": {
                    "type": "string"
                }
            }
        },
        "dto.ResponseError": {
            "type": "object",
            "required": [
                "errorCode",
                "fields",
                "message"
            ],
            "properties": {
                "errorCode": {
                    "type": "string"
                },
                "fields": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "message": {
                    "type": "string"
                }
            }
        },
        "dto.Sender": {
            "type": "object",
            "required": [
                "dateOfBirth",
                "firstName",
                "homeAddress",
                "lastName",
                "phone"
            ],
            "properties": {
                "dateOfBirth": {
                    "type": "string"
                },
                "email": {
                    "type": "string"
                },
                "employerAddress": {
                    "type": "string"
                },
                "employerName": {
                    "type": "string"
                },
                "firstName": {
                    "type": "string"
                },
                "gender": {
                    "type": "string"
                },
                "homeAddress": {
                    "$ref": "#/definitions/dto.HomeAddress"
                },
                "lastName": {
                    "type": "string"
                },
                "middleName": {
                    "type": "string"
                },
                "mothersMaidenName": {
                    "type": "string"
                },
                "nationality": {
                    "type": "string"
                },
                "occupation": {
                    "type": "string"
                },
                "phone": {
                    "type": "string"
                },
                "relationToRecipient": {
                    "type": "string"
                },
                "sourceOfFunds": {
                    "type": "string"
                }
            }
        },
        "dto.TopupOffer": {
            "type": "object",
            "required": [
                "brand",
                "brandName",
                "cost",
                "country",
                "createdAt",
                "dataGB",
                "dataUnlimited",
                "durationDays",
                "enabled",
                "notes",
                "offerId",
                "price",
                "priceType",
                "productType",
                "regions",
                "send",
                "shortNotes",
                "smsNumber",
                "smsUnlimited",
                "subTypes",
                "updatedAt",
                "voiceMinutes",
                "voiceUnlimited"
            ],
            "properties": {
                "brand": {
                    "type": "string"
                },
                "brandName": {
                    "type": "string"
                },
                "cost": {
                    "$ref": "#/definitions/dto.Cost"
                },
                "country": {
                    "type": "string"
                },
                "createdAt": {
                    "type": "string"
                },
                "dataGB": {
                    "type": "number"
                },
                "dataUnlimited": {
                    "type": "boolean"
                },
                "durationDays": {
                    "type": "integer"
                },
                "enabled": {
                    "type": "boolean"
                },
                "notes": {
                    "type": "string"
                },
                "offerId": {
                    "type": "string"
                },
                "price": {
                    "$ref": "#/definitions/dto.Price"
                },
                "priceType": {
                    "$ref": "#/definitions/dto.PriceType"
                },
                "productType": {
                    "$ref": "#/definitions/dto.ProductType"
                },
                "regions": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "send": {
                    "$ref": "#/definitions/dto.Zend"
                },
                "shortNotes": {
                    "type": "string"
                },
                "smsNumber": {
                    "type": "integer"
                },
                "smsUnlimited": {
                    "type": "boolean"
                },
                "subTypes": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "updatedAt": {
                    "type": "string"
                },
                "voiceMinutes": {
                    "type": "integer"
                },
                "voiceUnlimited": {
                    "type": "boolean"
                }
            }
        },
        "dto.TopupOffersResponse": {
            "type": "object",
            "required": [
                "limit",
                "list",
                "offset",
                "total"
            ],
            "properties": {
                "limit": {
                    "type": "integer"
                },
                "list": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/dto.TopupOffer"
                    }
                },
                "offset": {
                    "type": "integer"
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "dto.TopupPurchase": {
            "type": "object",
            "required": [
                "brand",
                "brandName",
                "cost",
                "costBase",
                "costCurrency",
                "costCurrencyDivisor",
                "costFee",
                "country",
                "createdAt",
                "dataGB",
                "dataUnlimited",
                "durationDays",
                "log",
                "notes",
                "offerId",
                "price",
                "priceBase",
                "priceCurrency",
                "priceCurrencyDivisor",
                "priceFee",
                "priceType",
                "productType",
                "recipientPhoneNumber",
                "send",
                "sendCurrency",
                "sendCurrencyDivisor",
                "sender",
                "shortNotes",
                "smsNumber",
                "smsUnlimited",
                "status",
                "subTypes",
                "transactionId",
                "updatedAt",
                "voiceMinutes",
                "voiceUnlimited"
            ],
            "properties": {
                "brand": {
                    "type": "string"
                },
                "brandName": {
                    "type": "string"
                },
                "confirmation": {
                    "$ref": "#/definitions/dto.Confirmation"
                },
                "cost": {
                    "type": "integer"
                },
                "costBase": {
                    "type": "integer"
                },
                "costCurrency": {
                    "type": "string"
                },
                "costCurrencyDivisor": {
                    "type": "integer"
                },
                "costFee": {
                    "type": "integer"
                },
                "country": {
                    "type": "string"
                },
                "createdAt": {
                    "type": "string"
                },
                "dataGB": {
                    "type": "number"
                },
                "dataUnlimited": {
                    "type": "boolean"
                },
                "durationDays": {
                    "type": "integer"
                },
                "error": {
                    "$ref": "#/definitions/dto.Error"
                },
                "log": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/dto.TransactionLogItem"
                    }
                },
                "notes": {
                    "type": "string"
                },
                "offerId": {
                    "type": "string"
                },
                "price": {
                    "type": "integer"
                },
                "priceBase": {
                    "type": "integer"
                },
                "priceCurrency": {
                    "type": "string"
                },
                "priceCurrencyDivisor": {
                    "type": "integer"
                },
                "priceFee": {
                    "type": "integer"
                },
                "priceType": {
                    "$ref": "#/definitions/dto.PriceType"
                },
                "productType": {
                    "$ref": "#/definitions/dto.ProductType"
                },
                "recipientPhoneNumber": {
                    "type": "string"
                },
                "regions": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "send": {
                    "type": "integer"
                },
                "sendCurrency": {
                    "type": "string"
                },
                "sendCurrencyDivisor": {
                    "type": "integer"
                },
                "sender": {
                    "$ref": "#/definitions/dto.TopupSender"
                },
                "shortNotes": {
                    "type": "string"
                },
                "smsNumber": {
                    "type": "integer"
                },
                "smsUnlimited": {
                    "type": "boolean"
                },
                "status": {
                    "$ref": "#/definitions/dto.TransactionStatus"
                },
                "subTypes": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "transactionId": {
                    "type": "string"
                },
                "updatedAt": {
                    "type": "string"
                },
                "value": {
                    "$ref": "#/definitions/dto.PurchaseValue"
                },
                "voiceMinutes": {
                    "type": "integer"
                },
                "voiceUnlimited": {
                    "type": "boolean"
                }
            }
        },
        "dto.TopupPurchaseMakeInput": {
            "type": "object",
            "required": [
                "offerId",
                "recipientPhoneNumber",
                "transactionId"
            ],
            "properties": {
                "offerId": {
                    "type": "string"
                },
                "recipientPhoneNumber": {
                    "type": "string"
                },
                "sender": {
                    "$ref": "#/definitions/dto.TopupSender"
                },
                "transactionId": {
                    "type": "string"
                },
                "value": {
                    "$ref": "#/definitions/dto.PurchaseValue"
                }
            }
        },
        "dto.TopupPurchaseResponse": {
            "type": "object",
            "required": [
                "status",
                "transactionId"
            ],
            "properties": {
                "status": {
                    "$ref": "#/definitions/dto.TransactionStatus"
                },
                "transactionId": {
                    "type": "string"
                }
            }
        },
        "dto.TopupPurchasesResponse": {
            "type": "object",
            "required": [
                "limit",
                "list",
                "offset",
                "total"
            ],
            "properties": {
                "limit": {
                    "type": "integer"
                },
                "list": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/dto.TopupPurchase"
                    }
                },
                "offset": {
                    "type": "integer"
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "dto.TopupSender": {
            "type": "object",
            "properties": {
                "country": {
                    "type": "string"
                },
                "phoneNumber": {
                    "type": "string"
                }
            }
        },
        "dto.Transaction": {
            "type": "object",
            "required": [
                "amount",
                "createdAt",
                "currency",
                "currencyDivisor",
                "log",
                "productType",
                "status",
                "transactionId",
                "type",
                "updatedAt"
            ],
            "properties": {
                "amount": {
                    "type": "integer"
                },
                "createdAt": {
                    "type": "string"
                },
                "currency": {
                    "type": "string"
                },
                "currencyDivisor": {
                    "type": "integer"
                },
                "error": {
                    "$ref": "#/definitions/dto.Error"
                },
                "log": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/dto.TransactionLogItem"
                    }
                },
                "productType": {
                    "$ref": "#/definitions/dto.ProductType"
                },
                "status": {
                    "$ref": "#/definitions/dto.TransactionStatus"
                },
                "transactionId": {
                    "description": "client operate with clientTransactionId",
                    "type": "string"
                },
                "type": {
                    "$ref": "#/definitions/dto.TransactionType"
                },
                "updatedAt": {
                    "type": "string"
                }
            }
        },
        "dto.TransactionLogItem": {
            "type": "object",
            "required": [
                "dateTime",
                "status",
                "statusMessage"
            ],
            "properties": {
                "dateTime": {
                    "type": "string"
                },
                "status": {
                    "$ref": "#/definitions/dto.TransactionStatus"
                },
                "statusMessage": {
                    "type": "string"
                }
            }
        },
        "dto.TransactionStatus": {
            "type": "string",
            "enum": [
                "ACCEPTED",
                "PENDING",
                "AUTHORIZED",
                "IN_PROGRESS",
                "DONE",
                "FAILED"
            ],
            "x-enum-varnames": [
                "TransactionStatusAccepted",
                "TransactionStatusPending",
                "TransactionStatusAuthorized",
                "TransactionStatusInProgress",
                "TransactionStatusDone",
                "TransactionStatusFailed"
            ]
        },
        "dto.TransactionType": {
            "type": "string",
            "enum": [
                "CREDIT",
                "DEBIT"
            ],
            "x-enum-varnames": [
                "Credit",
                "Debit"
            ]
        },
        "dto.TransactionsResponse": {
            "type": "object",
            "required": [
                "limit",
                "list",
                "offset",
                "total"
            ],
            "properties": {
                "limit": {
                    "type": "integer"
                },
                "list": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/dto.Transaction"
                    }
                },
                "offset": {
                    "type": "integer"
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "dto.ValueType": {
            "type": "string",
            "enum": [
                "ZEND",
                "PRICE",
                "COST"
            ],
            "x-enum-varnames": [
                "ValueTypeZend",
                "ValueTypePrice",
                "ValueTypeCost"
            ]
        },
        "dto.VoucherOffer": {
            "type": "object",
            "required": [
                "brand",
                "brandName",
                "cost",
                "country",
                "createdAt",
                "deliveryType",
                "enabled",
                "notes",
                "offerId",
                "price",
                "priceType",
                "productType",
                "regions",
                "requiredFields",
                "send",
                "shortNotes",
                "subTypes",
                "updatedAt"
            ],
            "properties": {
                "brand": {
                    "type": "string"
                },
                "brandName": {
                    "type": "string"
                },
                "cost": {
                    "$ref": "#/definitions/dto.Cost"
                },
                "country": {
                    "type": "string"
                },
                "createdAt": {
                    "type": "string"
                },
                "deliveryType": {
                    "type": "string"
                },
                "enabled": {
                    "type": "boolean"
                },
                "notes": {
                    "type": "string"
                },
                "offerId": {
                    "type": "string"
                },
                "price": {
                    "$ref": "#/definitions/dto.Price"
                },
                "priceType": {
                    "$ref": "#/definitions/dto.PriceType"
                },
                "productType": {
                    "$ref": "#/definitions/dto.ProductType"
                },
                "regions": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "requiredFields": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "send": {
                    "$ref": "#/definitions/dto.Zend"
                },
                "shortNotes": {
                    "type": "string"
                },
                "subTypes": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "updatedAt": {
                    "type": "string"
                }
            }
        },
        "dto.VoucherOffersResponse": {
            "type": "object",
            "required": [
                "limit",
                "list",
                "offset",
                "total"
            ],
            "properties": {
                "limit": {
                    "type": "integer"
                },
                "list": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/dto.VoucherOffer"
                    }
                },
                "offset": {
                    "type": "integer"
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "dto.VoucherPurchase": {
            "type": "object",
            "required": [
                "brand",
                "brandName",
                "cost",
                "costBase",
                "costCurrency",
                "costCurrencyDivisor",
                "costFee",
                "country",
                "createdAt",
                "fields",
                "log",
                "notes",
                "offerId",
                "price",
                "priceBase",
                "priceCurrency",
                "priceCurrencyDivisor",
                "priceFee",
                "priceType",
                "productType",
                "send",
                "sendCurrency",
                "sendCurrencyDivisor",
                "shortNotes",
                "status",
                "subTypes",
                "transactionId",
                "updatedAt"
            ],
            "properties": {
                "brand": {
                    "type": "string"
                },
                "brandName": {
                    "type": "string"
                },
                "confirmation": {
                    "$ref": "#/definitions/dto.Confirmation"
                },
                "cost": {
                    "type": "integer"
                },
                "costBase": {
                    "type": "integer"
                },
                "costCurrency": {
                    "type": "string"
                },
                "costCurrencyDivisor": {
                    "type": "integer"
                },
                "costFee": {
                    "type": "integer"
                },
                "country": {
                    "type": "string"
                },
                "createdAt": {
                    "type": "string"
                },
                "error": {
                    "$ref": "#/definitions/dto.Error"
                },
                "fields": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/dto.PurchaseField"
                    }
                },
                "log": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/dto.TransactionLogItem"
                    }
                },
                "notes": {
                    "type": "string"
                },
                "offerId": {
                    "type": "string"
                },
                "price": {
                    "type": "integer"
                },
                "priceBase": {
                    "type": "integer"
                },
                "priceCurrency": {
                    "type": "string"
                },
                "priceCurrencyDivisor": {
                    "type": "integer"
                },
                "priceFee": {
                    "type": "integer"
                },
                "priceType": {
                    "$ref": "#/definitions/dto.PriceType"
                },
                "productType": {
                    "$ref": "#/definitions/dto.ProductType"
                },
                "receipt": {
                    "$ref": "#/definitions/dto.VoucherReceipt"
                },
                "regions": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "send": {
                    "type": "integer"
                },
                "sendCurrency": {
                    "type": "string"
                },
                "sendCurrencyDivisor": {
                    "type": "integer"
                },
                "shortNotes": {
                    "type": "string"
                },
                "status": {
                    "$ref": "#/definitions/dto.TransactionStatus"
                },
                "subTypes": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "transactionId": {
                    "type": "string"
                },
                "updatedAt": {
                    "type": "string"
                },
                "value": {
                    "$ref": "#/definitions/dto.PurchaseValue"
                }
            }
        },
        "dto.VoucherPurchaseInput": {
            "type": "object",
            "required": [
                "fields",
                "offerId",
                "transactionId"
            ],
            "properties": {
                "fields": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/dto.PurchaseField"
                    }
                },
                "offerId": {
                    "type": "string"
                },
                "transactionId": {
                    "type": "string"
                },
                "value": {
                    "$ref": "#/definitions/dto.PurchaseValue"
                }
            }
        },
        "dto.VoucherPurchaseResponse": {
            "type": "object",
            "required": [
                "status",
                "transactionId"
            ],
            "properties": {
                "status": {
                    "$ref": "#/definitions/dto.TransactionStatus"
                },
                "transactionId": {
                    "type": "string"
                }
            }
        },
        "dto.VoucherPurchasesResponse": {
            "type": "object",
            "required": [
                "limit",
                "list",
                "offset",
                "total"
            ],
            "properties": {
                "limit": {
                    "type": "integer"
                },
                "list": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/dto.VoucherPurchase"
                    }
                },
                "offset": {
                    "type": "integer"
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "dto.VoucherReceipt": {
            "type": "object",
            "required": [
                "accountId",
                "confirmationNumber",
                "currency",
                "currencyDivisor",
                "deliveryType",
                "epin",
                "expiresAt",
                "instructions",
                "notes",
                "recipientCustomerServiceNumber",
                "redemptionUrl",
                "send",
                "senderCustomerServiceNumber",
                "terms",
                "voucherId"
            ],
            "properties": {
                "accountId": {
                    "type": "string"
                },
                "confirmationNumber": {
                    "type": "string"
                },
                "currency": {
                    "description": "The 3-letter ISO currency code for the send",
                    "type": "string"
                },
                "currencyDivisor": {
                    "type": "integer"
                },
                "deliveryType": {
                    "type": "string"
                },
                "epin": {
                    "type": "string"
                },
                "expiresAt": {
                    "type": "string"
                },
                "instructions": {
                    "type": "string"
                },
                "notes": {
                    "description": "Additional message information about the voucher",
                    "type": "string"
                },
                "recipientCustomerServiceNumber": {
                    "type": "string"
                },
                "redemptionUrl": {
                    "type": "string"
                },
                "send": {
                    "description": "The value delivered by the voucher",
                    "type": "integer"
                },
                "senderCustomerServiceNumber": {
                    "type": "string"
                },
                "terms": {
                    "type": "string"
                },
                "voucherId": {
                    "type": "string"
                }
            }
        },
        "dto.Zend": {
            "type": "object",
            "required": [
                "currency",
                "currencyDivisor"
            ],
            "properties": {
                "currency": {
                    "type": "string"
                },
                "currencyDivisor": {
                    "type": "integer"
                },
                "fixed": {
                    "type": "integer"
                },
                "fx": {
                    "type": "number"
                },
                "max": {
                    "type": "integer"
                },
                "min": {
                    "type": "integer"
                }
            }
        }
    },
    "securityDefinitions": {
        "ApiKey": {
            "description": "You need to insert you token in the following format \"Bearer YOUR_TOKEN\"",
            "type": "apiKey",
            "name": "Authorization",
            "in": "header"
        }
    }
}