from pathlib import Path import zipfile base = Path("/mnt/data/zepay_one_click_payout_page") base.mkdir(parents=True, exist_ok=True) php_code = r''' Zepay One Click Payout

One Click Payout Page

Endpoint fixed hai. Aap transaction ID, amount, account, IFSC, name, bank aur remark edit karke button click करोगे to payout request जाएगी.

Payout Form

Fixed URL:

https://api.zepay.money/api/v1/payout

Beneficiary

Request Preview

API me exactly ye URL, headers aur body jayegi.

Generated Header

Content-Type: application/json
Authorization: Bearer YOUR_TOKEN

JSON Body

{
    "client_ref": "TXNREF832475893",
    "amount": "103",
    "mode": "IMPS",
    "beneficiary": {
        "name": "Amit Sagar",
        "account": "8150434140",
        "ifsc": "KKBK0005219",
        "bank": "KOTAK BANK LTD"
    },
    "remark": "EVYAPAR PAY"
}

cURL Preview

curl --location 'https://api.zepay.money/api/v1/payout' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_TOKEN' \
--data '{
    "client_ref": "TXNREF832475893",
    "amount": "103",
    "mode": "IMPS",
    "beneficiary": {
        "name": "Amit Sagar",
        "account": "8150434140",
        "ifsc": "KKBK0005219",
        "bank": "KOTAK BANK LTD"
    },
    "remark": "EVYAPAR PAY"
}'

Latest Logs

Time HTTP Txn ID Amount Account Full Log
2026-06-05 17:49:39 500 15554595955554 101 8150434140
View
{
    "type": "payout",
    "request_url": "https://api.zepay.money/api/v1/payout",
    "request_headers": {
        "Content-Type": "application/json",
        "Authorization": "Bearer oBCPW********************0wyUc"
    },
    "request_body": {
        "client_ref": "15554595955554",
        "amount": "101",
        "mode": "IMPS",
        "beneficiary": {
            "name": "Amit Sagar",
            "account": "8150434140",
            "ifsc": "KKBK0005219",
            "bank": "KOTAK BANK LTD"
        },
        "remark": "EVYAPAR PAY"
    },
    "request_body_raw": "{\"client_ref\":\"15554595955554\",\"amount\":\"101\",\"mode\":\"IMPS\",\"beneficiary\":{\"name\":\"Amit Sagar\",\"account\":\"8150434140\",\"ifsc\":\"KKBK0005219\",\"bank\":\"KOTAK BANK LTD\"},\"remark\":\"EVYAPAR PAY\"}",
    "http_code": 500,
    "curl_errno": 0,
    "curl_error": "",
    "response_headers_raw": "HTTP/2 500 \r\nserver: nginx\r\ndate: Fri, 05 Jun 2026 12:19:39 GMT\r\ncontent-type: text/html; charset=utf-8\r\naccess-control-allow-origin: *\r\naccess-control-allow-methods: GET, PUT, POST, DELETE, OPTIONS\r\naccess-control-allow-headers: Content-Type, X-Auth-Token, Origin\r\ncache-control: no-cache, private\r\npragma: no-cache\r\nexpires: -1\r\nx-ratelimit-limit: 60\r\nx-ratelimit-remaining: 59\r\n\r\n",
    "response_raw": "<!doctype html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n    <title>Internal Server Error | ZEPAY Fintech</title>\n        <link rel=\"icon\" type=\"image/png\" href=\"https://api.zepay.money/assets/images/zepay-favicon.png\">\n    <link rel=\"shortcut icon\" href=\"https://api.zepay.money/assets/images/zepay-favicon.png\">\n    <style>\n        * {\n            box-sizing: border-box;\n        }\n\n        body {\n            min-height: 100vh;\n            margin: 0;\n            color: #101638;\n            font-family: Inter, \"Segoe UI\", Arial, sans-serif;\n            background:\n                radial-gradient(circle at 15% 15%, rgba(90, 53, 242, 0.16), transparent 28%),\n                radial-gradient(circle at 85% 20%, rgba(22, 119, 242, 0.14), transparent 32%),\n                #f7faff;\n        }\n\n        .error-page {\n            min-height: 100vh;\n            display: grid;\n            place-items: center;\n            padding: 28px;\n        }\n\n        .error-card {\n            width: min(760px, 100%);\n            border: 1px solid #dfe6f5;\n            border-radius: 18px;\n            overflow: hidden;\n            background: rgba(255, 255, 255, 0.96);\n            box-shadow: 0 28px 80px rgba(33, 43, 84, 0.14);\n        }\n\n        .error-head {\n            min-height: 92px;\n            display: flex;\n            align-items: center;\n            justify-content: space-between;\n            gap: 16px;\n            padding: 22px 28px;\n            color: #ffffff;\n            background: linear-gradient(135deg, #5a35f2 0%, #1677f2 100%);\n        }\n\n        .error-brand {\n            display: flex;\n            align-items: center;\n            gap: 14px;\n            min-width: 0;\n        }\n\n        .error-logo {\n            width: 160px !important;\n            height: 40px !important;\n            max-width: 160px !important;\n            max-height: 40px !important;\n            display: block;\n            object-fit: contain;\n        }\n\n        .error-brand strong,\n        .error-brand span {\n            display: block;\n            white-space: nowrap;\n            overflow: hidden;\n            text-overflow: ellipsis;\n        }\n\n        .error-brand strong {\n            font-size: 24px;\n            line-height: 1;\n            letter-spacing: 0;\n        }\n\n        .error-brand span {\n            margin-top: 5px;\n            color: rgba(255, 255, 255, 0.78);\n            font-size: 12px;\n            font-weight: 800;\n            letter-spacing: 7px;\n            text-transform: uppercase;\n        }\n\n        .error-code {\n            min-width: 92px;\n            padding: 10px 14px;\n            border-radius: 999px;\n            text-align: center;\n            font-size: 22px;\n            font-weight: 900;\n            background: rgba(255, 255, 255, 0.16);\n            border: 1px solid rgba(255, 255, 255, 0.28);\n        }\n\n        .error-body {\n            padding: 34px 34px 30px;\n        }\n\n        .error-kicker {\n            display: inline-flex;\n            align-items: center;\n            gap: 8px;\n            min-height: 34px;\n            padding: 7px 12px;\n            border-radius: 999px;\n            color: #5a35f2;\n            font-size: 12px;\n            font-weight: 900;\n            background: rgba(90, 53, 242, 0.1);\n        }\n\n        .error-kicker:before {\n            content: \"!\";\n            width: 18px;\n            height: 18px;\n            border-radius: 50%;\n            display: grid;\n            place-items: center;\n            color: #ffffff;\n            background: linear-gradient(135deg, #5a35f2, #1677f2);\n        }\n\n        h1 {\n            margin: 18px 0 10px;\n            color: #07103a;\n            font-size: clamp(28px, 4vw, 44px);\n            line-height: 1.08;\n            font-weight: 900;\n            letter-spacing: 0;\n        }\n\n        p {\n            margin: 0;\n            max-width: 580px;\n            color: #647091;\n            font-size: 16px;\n            line-height: 1.65;\n            font-weight: 650;\n        }\n\n        .error-ref {\n            margin-top: 18px;\n            width: fit-content;\n            max-width: 100%;\n            padding: 10px 14px;\n            border: 1px solid #dfe6f5;\n            border-radius: 10px;\n            color: #465278;\n            font-size: 14px;\n            font-weight: 800;\n            background: #f8fbff;\n            word-break: break-word;\n        }\n\n        .error-actions {\n            margin-top: 28px;\n            display: flex;\n            flex-wrap: wrap;\n            gap: 12px;\n        }\n\n        .error-button {\n            min-height: 46px;\n            border: 0;\n            border-radius: 10px;\n            display: inline-flex;\n            align-items: center;\n            justify-content: center;\n            gap: 10px;\n            padding: 0 18px;\n            color: #ffffff;\n            font-size: 14px;\n            font-weight: 900;\n            text-decoration: none;\n            background: linear-gradient(135deg, #5a35f2 0%, #1677f2 100%);\n            box-shadow: 0 14px 28px rgba(90, 53, 242, 0.22);\n        }\n\n        .error-button:hover,\n        .error-button:focus {\n            color: #ffffff;\n            transform: translateY(-1px);\n        }\n\n        @media (max-width: 640px) {\n            .error-page {\n                padding: 16px;\n            }\n\n            .error-head {\n                align-items: flex-start;\n                flex-direction: column;\n                padding: 20px;\n            }\n\n            .error-body {\n                padding: 24px 20px;\n            }\n\n            .error-brand strong {\n                font-size: 21px;\n            }\n\n            .error-brand span {\n                letter-spacing: 5px;\n            }\n\n            .error-button {\n                width: 100%;\n            }\n        }\n    </style>\n</head>\n<body>\n    <main class=\"error-page\">\n        <section class=\"error-card\" aria-labelledby=\"error-title\">\n            <div class=\"error-head\">\n                <div class=\"error-brand\">\n                    <img\r\n    src=\"https://api.zepay.money/assets/images/zepay-logo.png\"\r\n    alt=\"ZEPAY\"\r\n    width=\"160\"\r\n    height=\"40\"\r\n    class=\"zepay-logo-img zepay-logo-img--error error-logo\"\r\n    style=\"width:160px;height:40px;max-width:160px;max-height:40px;object-fit:contain;display:block;\"\r\n>\r\n                </div>\n                <div class=\"error-code\">500</div>\n            </div>\n            <div class=\"error-body\">\n                <div class=\"error-kicker\">Request status</div>\n                <h1 id=\"error-title\">Internal Server Error</h1>\n                                    <p>Whoops, something went wrong on our servers.</p>\n                                                                    <div class=\"error-actions\">\n                        <a class=\"error-button\" href=\"https://api.zepay.money/dashboard\">Go To Dashboard</a>\n                    </div>\n                            </div>\n        </section>\n    </main>\n    </body>\n</html>\n",
    "response_json": null,
    "_recorded_at": "2026-06-05 17:49:39"
}
2026-06-05 17:44:06 500 15554595955554 101 8150434140
View
{
    "type": "payout",
    "request_url": "https://api.zepay.money/api/v1/payout",
    "request_headers": {
        "Content-Type": "application/json",
        "Authorization": "Bearer oBCPW********************0wyUc"
    },
    "request_body": {
        "client_ref": "15554595955554",
        "amount": "101",
        "mode": "IMPS",
        "beneficiary": {
            "name": "Amit Sagar",
            "account": "8150434140",
            "ifsc": "KKBK0005219",
            "bank": "KOTAK BANK LTD"
        },
        "remark": "EVYAPAR PAY"
    },
    "request_body_raw": "{\"client_ref\":\"15554595955554\",\"amount\":\"101\",\"mode\":\"IMPS\",\"beneficiary\":{\"name\":\"Amit Sagar\",\"account\":\"8150434140\",\"ifsc\":\"KKBK0005219\",\"bank\":\"KOTAK BANK LTD\"},\"remark\":\"EVYAPAR PAY\"}",
    "http_code": 500,
    "curl_errno": 0,
    "curl_error": "",
    "response_headers_raw": "HTTP/2 500 \r\nserver: nginx\r\ndate: Fri, 05 Jun 2026 12:14:06 GMT\r\ncontent-type: text/html; charset=utf-8\r\naccess-control-allow-origin: *\r\naccess-control-allow-methods: GET, PUT, POST, DELETE, OPTIONS\r\naccess-control-allow-headers: Content-Type, X-Auth-Token, Origin\r\ncache-control: no-cache, private\r\npragma: no-cache\r\nexpires: -1\r\nx-ratelimit-limit: 60\r\nx-ratelimit-remaining: 59\r\n\r\n",
    "response_raw": "<!doctype html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n    <title>Internal Server Error | ZEPAY Fintech</title>\n        <link rel=\"icon\" type=\"image/png\" href=\"https://api.zepay.money/assets/images/zepay-favicon.png\">\n    <link rel=\"shortcut icon\" href=\"https://api.zepay.money/assets/images/zepay-favicon.png\">\n    <style>\n        * {\n            box-sizing: border-box;\n        }\n\n        body {\n            min-height: 100vh;\n            margin: 0;\n            color: #101638;\n            font-family: Inter, \"Segoe UI\", Arial, sans-serif;\n            background:\n                radial-gradient(circle at 15% 15%, rgba(90, 53, 242, 0.16), transparent 28%),\n                radial-gradient(circle at 85% 20%, rgba(22, 119, 242, 0.14), transparent 32%),\n                #f7faff;\n        }\n\n        .error-page {\n            min-height: 100vh;\n            display: grid;\n            place-items: center;\n            padding: 28px;\n        }\n\n        .error-card {\n            width: min(760px, 100%);\n            border: 1px solid #dfe6f5;\n            border-radius: 18px;\n            overflow: hidden;\n            background: rgba(255, 255, 255, 0.96);\n            box-shadow: 0 28px 80px rgba(33, 43, 84, 0.14);\n        }\n\n        .error-head {\n            min-height: 92px;\n            display: flex;\n            align-items: center;\n            justify-content: space-between;\n            gap: 16px;\n            padding: 22px 28px;\n            color: #ffffff;\n            background: linear-gradient(135deg, #5a35f2 0%, #1677f2 100%);\n        }\n\n        .error-brand {\n            display: flex;\n            align-items: center;\n            gap: 14px;\n            min-width: 0;\n        }\n\n        .error-logo {\n            width: 160px !important;\n            height: 40px !important;\n            max-width: 160px !important;\n            max-height: 40px !important;\n            display: block;\n            object-fit: contain;\n        }\n\n        .error-brand strong,\n        .error-brand span {\n            display: block;\n            white-space: nowrap;\n            overflow: hidden;\n            text-overflow: ellipsis;\n        }\n\n        .error-brand strong {\n            font-size: 24px;\n            line-height: 1;\n            letter-spacing: 0;\n        }\n\n        .error-brand span {\n            margin-top: 5px;\n            color: rgba(255, 255, 255, 0.78);\n            font-size: 12px;\n            font-weight: 800;\n            letter-spacing: 7px;\n            text-transform: uppercase;\n        }\n\n        .error-code {\n            min-width: 92px;\n            padding: 10px 14px;\n            border-radius: 999px;\n            text-align: center;\n            font-size: 22px;\n            font-weight: 900;\n            background: rgba(255, 255, 255, 0.16);\n            border: 1px solid rgba(255, 255, 255, 0.28);\n        }\n\n        .error-body {\n            padding: 34px 34px 30px;\n        }\n\n        .error-kicker {\n            display: inline-flex;\n            align-items: center;\n            gap: 8px;\n            min-height: 34px;\n            padding: 7px 12px;\n            border-radius: 999px;\n            color: #5a35f2;\n            font-size: 12px;\n            font-weight: 900;\n            background: rgba(90, 53, 242, 0.1);\n        }\n\n        .error-kicker:before {\n            content: \"!\";\n            width: 18px;\n            height: 18px;\n            border-radius: 50%;\n            display: grid;\n            place-items: center;\n            color: #ffffff;\n            background: linear-gradient(135deg, #5a35f2, #1677f2);\n        }\n\n        h1 {\n            margin: 18px 0 10px;\n            color: #07103a;\n            font-size: clamp(28px, 4vw, 44px);\n            line-height: 1.08;\n            font-weight: 900;\n            letter-spacing: 0;\n        }\n\n        p {\n            margin: 0;\n            max-width: 580px;\n            color: #647091;\n            font-size: 16px;\n            line-height: 1.65;\n            font-weight: 650;\n        }\n\n        .error-ref {\n            margin-top: 18px;\n            width: fit-content;\n            max-width: 100%;\n            padding: 10px 14px;\n            border: 1px solid #dfe6f5;\n            border-radius: 10px;\n            color: #465278;\n            font-size: 14px;\n            font-weight: 800;\n            background: #f8fbff;\n            word-break: break-word;\n        }\n\n        .error-actions {\n            margin-top: 28px;\n            display: flex;\n            flex-wrap: wrap;\n            gap: 12px;\n        }\n\n        .error-button {\n            min-height: 46px;\n            border: 0;\n            border-radius: 10px;\n            display: inline-flex;\n            align-items: center;\n            justify-content: center;\n            gap: 10px;\n            padding: 0 18px;\n            color: #ffffff;\n            font-size: 14px;\n            font-weight: 900;\n            text-decoration: none;\n            background: linear-gradient(135deg, #5a35f2 0%, #1677f2 100%);\n            box-shadow: 0 14px 28px rgba(90, 53, 242, 0.22);\n        }\n\n        .error-button:hover,\n        .error-button:focus {\n            color: #ffffff;\n            transform: translateY(-1px);\n        }\n\n        @media (max-width: 640px) {\n            .error-page {\n                padding: 16px;\n            }\n\n            .error-head {\n                align-items: flex-start;\n                flex-direction: column;\n                padding: 20px;\n            }\n\n            .error-body {\n                padding: 24px 20px;\n            }\n\n            .error-brand strong {\n                font-size: 21px;\n            }\n\n            .error-brand span {\n                letter-spacing: 5px;\n            }\n\n            .error-button {\n                width: 100%;\n            }\n        }\n    </style>\n</head>\n<body>\n    <main class=\"error-page\">\n        <section class=\"error-card\" aria-labelledby=\"error-title\">\n            <div class=\"error-head\">\n                <div class=\"error-brand\">\n                    <img\r\n    src=\"https://api.zepay.money/assets/images/zepay-logo.png\"\r\n    alt=\"ZEPAY\"\r\n    width=\"160\"\r\n    height=\"40\"\r\n    class=\"zepay-logo-img zepay-logo-img--error error-logo\"\r\n    style=\"width:160px;height:40px;max-width:160px;max-height:40px;object-fit:contain;display:block;\"\r\n>\r\n                </div>\n                <div class=\"error-code\">500</div>\n            </div>\n            <div class=\"error-body\">\n                <div class=\"error-kicker\">Request status</div>\n                <h1 id=\"error-title\">Internal Server Error</h1>\n                                    <p>Whoops, something went wrong on our servers.</p>\n                                                                    <div class=\"error-actions\">\n                        <a class=\"error-button\" href=\"https://api.zepay.money/dashboard\">Go To Dashboard</a>\n                    </div>\n                            </div>\n        </section>\n    </main>\n    </body>\n</html>\n",
    "response_json": null,
    "_recorded_at": "2026-06-05 17:44:06"
}
2026-06-05 17:01:45 500 155545959555 101 8150434140
View
{
    "type": "payout",
    "request_url": "https://api.zepay.money/api/v1/payout",
    "request_headers": {
        "Content-Type": "application/json",
        "Authorization": "Bearer oBCPW********************0wyUc"
    },
    "request_body": {
        "client_ref": "155545959555",
        "amount": "101",
        "mode": "IMPS",
        "beneficiary": {
            "name": "Amit Sagar",
            "account": "8150434140",
            "ifsc": "KKBK0005219",
            "bank": "KOTAK BANK LTD"
        },
        "remark": "EVYAPAR PAY"
    },
    "request_body_raw": "{\"client_ref\":\"155545959555\",\"amount\":\"101\",\"mode\":\"IMPS\",\"beneficiary\":{\"name\":\"Amit Sagar\",\"account\":\"8150434140\",\"ifsc\":\"KKBK0005219\",\"bank\":\"KOTAK BANK LTD\"},\"remark\":\"EVYAPAR PAY\"}",
    "http_code": 500,
    "curl_errno": 0,
    "curl_error": "",
    "response_headers_raw": "HTTP/2 500 \r\nserver: nginx\r\ndate: Fri, 05 Jun 2026 11:31:45 GMT\r\ncontent-type: text/html; charset=utf-8\r\naccess-control-allow-origin: *\r\naccess-control-allow-methods: GET, PUT, POST, DELETE, OPTIONS\r\naccess-control-allow-headers: Content-Type, X-Auth-Token, Origin\r\ncache-control: no-cache, private\r\npragma: no-cache\r\nexpires: -1\r\nx-ratelimit-limit: 60\r\nx-ratelimit-remaining: 59\r\n\r\n",
    "response_raw": "<!doctype html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n    <title>Internal Server Error | ZEPAY Fintech</title>\n        <link rel=\"icon\" type=\"image/png\" href=\"https://api.zepay.money/assets/images/zepay-favicon.png\">\n    <link rel=\"shortcut icon\" href=\"https://api.zepay.money/assets/images/zepay-favicon.png\">\n    <style>\n        * {\n            box-sizing: border-box;\n        }\n\n        body {\n            min-height: 100vh;\n            margin: 0;\n            color: #101638;\n            font-family: Inter, \"Segoe UI\", Arial, sans-serif;\n            background:\n                radial-gradient(circle at 15% 15%, rgba(90, 53, 242, 0.16), transparent 28%),\n                radial-gradient(circle at 85% 20%, rgba(22, 119, 242, 0.14), transparent 32%),\n                #f7faff;\n        }\n\n        .error-page {\n            min-height: 100vh;\n            display: grid;\n            place-items: center;\n            padding: 28px;\n        }\n\n        .error-card {\n            width: min(760px, 100%);\n            border: 1px solid #dfe6f5;\n            border-radius: 18px;\n            overflow: hidden;\n            background: rgba(255, 255, 255, 0.96);\n            box-shadow: 0 28px 80px rgba(33, 43, 84, 0.14);\n        }\n\n        .error-head {\n            min-height: 92px;\n            display: flex;\n            align-items: center;\n            justify-content: space-between;\n            gap: 16px;\n            padding: 22px 28px;\n            color: #ffffff;\n            background: linear-gradient(135deg, #5a35f2 0%, #1677f2 100%);\n        }\n\n        .error-brand {\n            display: flex;\n            align-items: center;\n            gap: 14px;\n            min-width: 0;\n        }\n\n        .error-logo {\n            width: 160px !important;\n            height: 40px !important;\n            max-width: 160px !important;\n            max-height: 40px !important;\n            display: block;\n            object-fit: contain;\n        }\n\n        .error-brand strong,\n        .error-brand span {\n            display: block;\n            white-space: nowrap;\n            overflow: hidden;\n            text-overflow: ellipsis;\n        }\n\n        .error-brand strong {\n            font-size: 24px;\n            line-height: 1;\n            letter-spacing: 0;\n        }\n\n        .error-brand span {\n            margin-top: 5px;\n            color: rgba(255, 255, 255, 0.78);\n            font-size: 12px;\n            font-weight: 800;\n            letter-spacing: 7px;\n            text-transform: uppercase;\n        }\n\n        .error-code {\n            min-width: 92px;\n            padding: 10px 14px;\n            border-radius: 999px;\n            text-align: center;\n            font-size: 22px;\n            font-weight: 900;\n            background: rgba(255, 255, 255, 0.16);\n            border: 1px solid rgba(255, 255, 255, 0.28);\n        }\n\n        .error-body {\n            padding: 34px 34px 30px;\n        }\n\n        .error-kicker {\n            display: inline-flex;\n            align-items: center;\n            gap: 8px;\n            min-height: 34px;\n            padding: 7px 12px;\n            border-radius: 999px;\n            color: #5a35f2;\n            font-size: 12px;\n            font-weight: 900;\n            background: rgba(90, 53, 242, 0.1);\n        }\n\n        .error-kicker:before {\n            content: \"!\";\n            width: 18px;\n            height: 18px;\n            border-radius: 50%;\n            display: grid;\n            place-items: center;\n            color: #ffffff;\n            background: linear-gradient(135deg, #5a35f2, #1677f2);\n        }\n\n        h1 {\n            margin: 18px 0 10px;\n            color: #07103a;\n            font-size: clamp(28px, 4vw, 44px);\n            line-height: 1.08;\n            font-weight: 900;\n            letter-spacing: 0;\n        }\n\n        p {\n            margin: 0;\n            max-width: 580px;\n            color: #647091;\n            font-size: 16px;\n            line-height: 1.65;\n            font-weight: 650;\n        }\n\n        .error-ref {\n            margin-top: 18px;\n            width: fit-content;\n            max-width: 100%;\n            padding: 10px 14px;\n            border: 1px solid #dfe6f5;\n            border-radius: 10px;\n            color: #465278;\n            font-size: 14px;\n            font-weight: 800;\n            background: #f8fbff;\n            word-break: break-word;\n        }\n\n        .error-actions {\n            margin-top: 28px;\n            display: flex;\n            flex-wrap: wrap;\n            gap: 12px;\n        }\n\n        .error-button {\n            min-height: 46px;\n            border: 0;\n            border-radius: 10px;\n            display: inline-flex;\n            align-items: center;\n            justify-content: center;\n            gap: 10px;\n            padding: 0 18px;\n            color: #ffffff;\n            font-size: 14px;\n            font-weight: 900;\n            text-decoration: none;\n            background: linear-gradient(135deg, #5a35f2 0%, #1677f2 100%);\n            box-shadow: 0 14px 28px rgba(90, 53, 242, 0.22);\n        }\n\n        .error-button:hover,\n        .error-button:focus {\n            color: #ffffff;\n            transform: translateY(-1px);\n        }\n\n        @media (max-width: 640px) {\n            .error-page {\n                padding: 16px;\n            }\n\n            .error-head {\n                align-items: flex-start;\n                flex-direction: column;\n                padding: 20px;\n            }\n\n            .error-body {\n                padding: 24px 20px;\n            }\n\n            .error-brand strong {\n                font-size: 21px;\n            }\n\n            .error-brand span {\n                letter-spacing: 5px;\n            }\n\n            .error-button {\n                width: 100%;\n            }\n        }\n    </style>\n</head>\n<body>\n    <main class=\"error-page\">\n        <section class=\"error-card\" aria-labelledby=\"error-title\">\n            <div class=\"error-head\">\n                <div class=\"error-brand\">\n                    <img\r\n    src=\"https://api.zepay.money/assets/images/zepay-logo.png\"\r\n    alt=\"ZEPAY\"\r\n    width=\"160\"\r\n    height=\"40\"\r\n    class=\"zepay-logo-img zepay-logo-img--error error-logo\"\r\n    style=\"width:160px;height:40px;max-width:160px;max-height:40px;object-fit:contain;display:block;\"\r\n>\r\n                </div>\n                <div class=\"error-code\">500</div>\n            </div>\n            <div class=\"error-body\">\n                <div class=\"error-kicker\">Request status</div>\n                <h1 id=\"error-title\">Internal Server Error</h1>\n                                    <p>Whoops, something went wrong on our servers.</p>\n                                                                    <div class=\"error-actions\">\n                        <a class=\"error-button\" href=\"https://api.zepay.money/dashboard\">Go To Dashboard</a>\n                    </div>\n                            </div>\n        </section>\n    </main>\n    </body>\n</html>\n",
    "response_json": null,
    "_recorded_at": "2026-06-05 17:01:45"
}
2026-06-05 17:00:54 401 1555459595 103 8150434140
View
{
    "type": "payout",
    "request_url": "https://api.zepay.money/api/v1/payout",
    "request_headers": {
        "Content-Type": "application/json",
        "Authorization": "Bearer https***************************t.php"
    },
    "request_body": {
        "client_ref": "1555459595",
        "amount": "103",
        "mode": "IMPS",
        "beneficiary": {
            "name": "Amit Sagar",
            "account": "8150434140",
            "ifsc": "KKBK0005219",
            "bank": "KOTAK BANK LTD"
        },
        "remark": "EVYAPAR PAY"
    },
    "request_body_raw": "{\"client_ref\":\"1555459595\",\"amount\":\"103\",\"mode\":\"IMPS\",\"beneficiary\":{\"name\":\"Amit Sagar\",\"account\":\"8150434140\",\"ifsc\":\"KKBK0005219\",\"bank\":\"KOTAK BANK LTD\"},\"remark\":\"EVYAPAR PAY\"}",
    "http_code": 401,
    "curl_errno": 0,
    "curl_error": "",
    "response_headers_raw": "HTTP/2 401 \r\nserver: nginx\r\ndate: Fri, 05 Jun 2026 11:30:54 GMT\r\ncontent-type: application/json\r\naccess-control-allow-origin: *\r\naccess-control-allow-methods: GET, PUT, POST, DELETE, OPTIONS\r\naccess-control-allow-headers: Content-Type, X-Auth-Token, Origin\r\ncache-control: private, must-revalidate\r\nx-ratelimit-limit: 60\r\nx-ratelimit-remaining: 59\r\npragma: no-cache\r\nexpires: -1\r\n\r\n",
    "response_raw": "{\"success\":false,\"code\":\"AUTH_TOKEN_INVALID\",\"message\":\"Invalid API token.\"}",
    "response_json": {
        "success": false,
        "code": "AUTH_TOKEN_INVALID",
        "message": "Invalid API token."
    },
    "_recorded_at": "2026-06-05 17:00:54"
}
2026-06-05 17:00:13 401 TXNREF8324758930 103 8150434140
View
{
    "type": "payout",
    "request_url": "https://api.zepay.money/api/v1/payout",
    "request_headers": {
        "Content-Type": "application/json",
        "Authorization": "Bearer https***************************t.php"
    },
    "request_body": {
        "client_ref": "TXNREF8324758930",
        "amount": "103",
        "mode": "IMPS",
        "beneficiary": {
            "name": "Amit Sagar",
            "account": "8150434140",
            "ifsc": "KKBK0005219",
            "bank": "KOTAK BANK LTD"
        },
        "remark": "EVYAPAR PAY"
    },
    "request_body_raw": "{\"client_ref\":\"TXNREF8324758930\",\"amount\":\"103\",\"mode\":\"IMPS\",\"beneficiary\":{\"name\":\"Amit Sagar\",\"account\":\"8150434140\",\"ifsc\":\"KKBK0005219\",\"bank\":\"KOTAK BANK LTD\"},\"remark\":\"EVYAPAR PAY\"}",
    "http_code": 401,
    "curl_errno": 0,
    "curl_error": "",
    "response_headers_raw": "HTTP/2 401 \r\nserver: nginx\r\ndate: Fri, 05 Jun 2026 11:30:13 GMT\r\ncontent-type: application/json\r\naccess-control-allow-origin: *\r\naccess-control-allow-methods: GET, PUT, POST, DELETE, OPTIONS\r\naccess-control-allow-headers: Content-Type, X-Auth-Token, Origin\r\ncache-control: private, must-revalidate\r\nx-ratelimit-limit: 60\r\nx-ratelimit-remaining: 59\r\npragma: no-cache\r\nexpires: -1\r\n\r\n",
    "response_raw": "{\"success\":false,\"code\":\"AUTH_TOKEN_INVALID\",\"message\":\"Invalid API token.\"}",
    "response_json": {
        "success": false,
        "code": "AUTH_TOKEN_INVALID",
        "message": "Invalid API token."
    },
    "_recorded_at": "2026-06-05 17:00:13"
}

Security: Is page ko public folder me open mat chhodna. PAGE_PASSWORD set kar sakte ho. Live token ko file me hardcode karne se pehle risk samajh lo.

''' readme = """Zepay One Click Payout Page =========================== File: - zepay_one_click_payout.php What this page does: - Fixed payout URL: POST https://api.zepay.money/api/v1/payout - Sends exactly two headers: Content-Type: application/json Authorization: Bearer TOKEN - Editable fields: client_ref / transaction ID amount mode beneficiary name beneficiary account beneficiary IFSC beneficiary bank remark - One button: Send Payout Transaction - Shows: request preview cURL preview API response cURL error raw headers logs Security: - Keep this page in private/admin folder. - Set PAGE_PASSWORD in PHP file if needed. - The API token is not hardcoded by default. - If you want fixed token in code, open PHP file and set: define('DEFAULT_API_TOKEN', 'YOUR_TOKEN_HERE'); Warning: - If valid token/IP/beneficiary are active, clicking send can make a real payout. """ php_path = base / "zepay_one_click_payout.php" readme_path = base / "README.txt" php_path.write_text(php_code, encoding="utf-8") readme_path.write_text(readme, encoding="utf-8") zip_path = Path("/mnt/data/zepay_one_click_payout_page.zip") if zip_path.exists(): zip_path.unlink() with zipfile.ZipFile(zip_path, "w", zipfile.ZIP_DEFLATED) as z: z.write(php_path, "zepay_one_click_payout.php") z.write(readme_path, "README.txt") zip_path