{
    "name": "SNAP QR MPM API Server",
    "version": "1.0.0",
    "endpoints": [
        {
            "method": "POST",
            "path": "/qr/generate",
            "description": "Generate QR code for payment",
            "body": {
                "amount": "string|object (required)",
                "merchantId": "string (required)",
                "terminalId": "string (required)",
                "partnerReferenceNo": "string (optional, auto-generated)",
                "validityPeriod": "string ISO8601 (optional)",
                "subMerchantId": "string (optional)",
                "storeId": "string (optional)",
                "additionalInfo": "object (optional)"
            }
        },
        {
            "method": "POST",
            "path": "/qr/query",
            "description": "Query QR payment status",
            "body": {
                "originalReferenceNo": "string (required)",
                "originalPartnerReferenceNo": "string (optional)",
                "amount": "string|object (required)",
                "merchantId": "string (required)",
                "serviceCode": "string (optional, default: 51)"
            }
        },
        {
            "method": "POST",
            "path": "/qr/refund",
            "description": "Refund QR payment",
            "body": {
                "originalReferenceNo": "string (required)",
                "originalPartnerReferenceNo": "string (required)",
                "refundAmount": "string|object (required)",
                "merchantId": "string (required)",
                "partnerRefundNo": "string (optional, auto-generated)",
                "reason": "string (optional)"
            }
        },
        {
            "method": "GET",
            "path": "/health",
            "description": "Health check endpoint"
        },
        {
            "method": "GET",
            "path": "/test/token",
            "description": "Test access token generation"
        }
    ]
}