{
    "openapi": "3.1.0",
    "info": {
        "title": "Camoo Hosting Reseller API",
        "version": "1.0.0",
        "description": "Reference documentation and REST contract for the Camoo.Hosting reseller platform.\n\n### Authentication\nProtected endpoints require an `Authorization: Bearer <access_token>` header. Obtain a 30-minute access token by authenticating at `POST /auth`.\n\n### Formats\n- Request payloads: `multipart/form-data`\n- Response format: `application/json`\n- Base URL: `https://api.camoo.hosting/v1`",
        "contact": {
            "name": "CAMOO SARL Support",
            "email": "support@camoo.sarl",
            "url": "https://www.camoo.hosting/contact"
        },
        "license": {
            "name": "GPL-3.0+",
            "url": "https://www.gnu.org/licenses/gpl-3.0.html"
        }
    },
    "servers": [
        {
            "url": "https://api.camoo.hosting/v1",
            "description": "Production API Gateway"
        }
    ],
    "security": [
        {
            "BearerAuth": []
        }
    ],
    "tags": [
        {
            "name": "Authentication",
            "description": "Reseller account credentials and session access tokens."
        },
        {
            "name": "Domains",
            "description": "Domain search, registration, renewals, transfers, and security."
        },
        {
            "name": "Contacts",
            "description": "Manage registrant, administrative, billing, and technical contacts."
        },
        {
            "name": "Customers",
            "description": "Reseller customer account management and SSO login."
        },
        {
            "name": "Subdomains",
            "description": "Sub-domain DNS record provisioning and deletion."
        },
        {
            "name": "DNS",
            "description": "DNS zone activation and custom resource record management."
        },
        {
            "name": "Tariffs",
            "description": "Reseller pricing catalog and currency tariffs."
        },
        {
            "name": "Payments",
            "description": "Mobile money and online payment settlement verification."
        },
        {
            "name": "Orders",
            "description": "Online and offline checkout order creation."
        },
        {
            "name": "Abonnement",
            "description": "Newsletter and subscription mailing list management."
        },
        {
            "name": "Confirms",
            "description": "Email confirmation token verification for registry handles."
        },
        {
            "name": "Configurations",
            "description": "Reseller platform metadata and localized currency configuration."
        },
        {
            "name": "Errors",
            "description": "Standard error response structures and fault codes."
        }
    ],
    "paths": {
        "/auth": {
            "post": {
                "tags": [
                    "Authentication"
                ],
                "summary": "Authenticate reseller and obtain access token",
                "description": "Exchange reseller account credentials for a 30-minute JWT bearer token. This is the only endpoint that does not require an Authorization header.",
                "security": [],
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "email",
                                    "password"
                                ],
                                "properties": {
                                    "email": {
                                        "type": "string",
                                        "format": "email",
                                        "description": "Reseller account email address.",
                                        "example": "you@example.com"
                                    },
                                    "password": {
                                        "type": "string",
                                        "format": "password",
                                        "description": "Reseller account password.",
                                        "example": "your-password"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Authentication successful - Bearer token returned",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "OK"
                                        },
                                        "result": {
                                            "type": "object",
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "example": "Authentication successful"
                                                },
                                                "access_token": {
                                                    "type": "string",
                                                    "example": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1aWQiOjM..."
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "status": "OK",
                                    "result": {
                                        "message": "Authentication successful",
                                        "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1aWQiOjM..."
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Invalid credentials",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "login failed"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/confirms/antic": {
            "post": {
                "tags": [
                    "Confirms"
                ],
                "summary": "Confirm Antic domain",
                "description": "Confirms an Antic domain using the validation hash.",
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "hash": {
                                        "type": "string",
                                        "description": "Validation hash received by email.",
                                        "example": "validation-hash"
                                    }
                                },
                                "required": [
                                    "hash"
                                ]
                            },
                            "example": {
                                "hash": "validation-hash"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "OK",
                                    "result": {
                                        "domain": "ok"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Request error or validation failure",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Request parameter validation error"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized or expired token",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Unauthorized: Invalid or expired token"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/confirms/handle": {
            "post": {
                "tags": [
                    "Confirms"
                ],
                "summary": "Confirm handle change",
                "description": "Confirms a registrant handle change using the validation hash.",
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "hash": {
                                        "type": "string",
                                        "description": "Validation hash received by email.",
                                        "example": "validation-hash"
                                    }
                                },
                                "required": [
                                    "hash"
                                ]
                            },
                            "example": {
                                "hash": "validation-hash"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "OK",
                                    "result": {
                                        "handle_change": "ok"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Request error or validation failure",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Request parameter validation error"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized or expired token",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Unauthorized: Invalid or expired token"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/contacts/add": {
            "post": {
                "tags": [
                    "Contacts"
                ],
                "summary": "Adding Contact",
                "description": "Adds a Contact to the domain using the details provided.",
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "description": "Name of the Contact (Max length 255 characters, The Name should be complete first name and last name)",
                                        "example": "John Doe"
                                    },
                                    "company": {
                                        "type": "string",
                                        "description": "Name of the Company (If you don't have a company you should mention N/A or NA : Not Available or Not Applicable for this parameter.)",
                                        "example": "Doe Ltd."
                                    },
                                    "email": {
                                        "type": "string",
                                        "description": "Email address of the Contact",
                                        "example": "new-contact@domain.cm"
                                    },
                                    "address-1": {
                                        "type": "string",
                                        "description": "First line of address of the Contact",
                                        "example": "Bastos"
                                    },
                                    "city": {
                                        "type": "string",
                                        "description": "Name of the city",
                                        "example": "Yaounde"
                                    },
                                    "ccode": {
                                        "type": "string",
                                        "description": "Country code as per ISO 3166-1 alpha-2",
                                        "example": "CM"
                                    },
                                    "zipcode": {
                                        "type": "string",
                                        "description": "Zip Code",
                                        "example": "0000"
                                    },
                                    "phone-cc": {
                                        "type": "integer",
                                        "description": "Telephone number country code (Between 1-3 digits)",
                                        "example": "237"
                                    },
                                    "phone": {
                                        "type": "integer",
                                        "description": "Telephone number (Between 4-12 digits)",
                                        "example": "612345689"
                                    },
                                    "state": {
                                        "type": "string",
                                        "description": "Name of the State",
                                        "example": "Centre"
                                    },
                                    "address-2": {
                                        "type": "string",
                                        "description": "second line of address of the Contact"
                                    },
                                    "address-3": {
                                        "type": "string",
                                        "description": "Third line of address of the Contact"
                                    },
                                    "fax-cc": {
                                        "type": "integer",
                                        "description": "Fax number country code (Between 1-3 digits)"
                                    },
                                    "fax": {
                                        "type": "integer",
                                        "description": "Fax number (Between 4-12 digits)"
                                    },
                                    "customer-id": {
                                        "type": "integer",
                                        "description": "The Customer under whom you want to create the Contact"
                                    }
                                },
                                "required": [
                                    "name",
                                    "company",
                                    "email",
                                    "address-1",
                                    "city",
                                    "ccode",
                                    "zipcode",
                                    "phone-cc",
                                    "phone",
                                    "state"
                                ]
                            },
                            "example": {
                                "name": "John Doe",
                                "company": "Doe Ltd.",
                                "email": "new-contact@domain.cm",
                                "address-1": "Bastos",
                                "city": "Yaounde",
                                "ccode": "CM",
                                "zipcode": "0000",
                                "phone-cc": "237",
                                "phone": "612345689",
                                "state": "Centre"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "OK",
                                    "result": {
                                        "id": "2334"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Request error or validation failure",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Request parameter validation error"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized or expired token",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Unauthorized: Invalid or expired token"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/contacts/edit": {
            "post": {
                "tags": [
                    "Contacts"
                ],
                "summary": "Modify Contact",
                "description": "Modifies the details of an existing Contact.",
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "integer",
                                        "description": "Contact / Identity ID to modify",
                                        "example": 2334
                                    },
                                    "name": {
                                        "type": "string",
                                        "description": "Name of the Contact (Max length 255 characters, complete first name and last name)",
                                        "example": "John Doe Updated"
                                    },
                                    "company": {
                                        "type": "string",
                                        "description": "Name of the Company",
                                        "example": "Doe Ltd."
                                    },
                                    "email": {
                                        "type": "string",
                                        "description": "Email address of the Contact",
                                        "example": "contact@domain.cm"
                                    },
                                    "address-1": {
                                        "type": "string",
                                        "description": "First line of address of the Contact",
                                        "example": "Bastos"
                                    },
                                    "city": {
                                        "type": "string",
                                        "description": "Name of the city",
                                        "example": "Yaounde"
                                    },
                                    "ccode": {
                                        "type": "string",
                                        "description": "Country code as per ISO 3166-1 alpha-2",
                                        "example": "CM"
                                    },
                                    "zipcode": {
                                        "type": "string",
                                        "description": "Zip Code",
                                        "example": "0000"
                                    },
                                    "phone-cc": {
                                        "type": "integer",
                                        "description": "Telephone number country code",
                                        "example": "237"
                                    },
                                    "phone": {
                                        "type": "integer",
                                        "description": "Telephone number",
                                        "example": "612345689"
                                    },
                                    "state": {
                                        "type": "string",
                                        "description": "Name of the State",
                                        "example": "Centre"
                                    },
                                    "address-2": {
                                        "type": "string",
                                        "description": "Second line of address of the Contact"
                                    },
                                    "address-3": {
                                        "type": "string",
                                        "description": "Third line of address of the Contact"
                                    },
                                    "fax-cc": {
                                        "type": "integer",
                                        "description": "Fax number country code"
                                    },
                                    "fax": {
                                        "type": "integer",
                                        "description": "Fax number"
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            },
                            "example": {
                                "id": 2334,
                                "name": "John Doe Updated",
                                "company": "Doe Ltd.",
                                "email": "contact@domain.cm",
                                "address-1": "Bastos",
                                "city": "Yaounde",
                                "ccode": "CM",
                                "zipcode": "0000",
                                "phone-cc": "237",
                                "phone": "612345689",
                                "state": "Centre"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "OK",
                                    "result": {
                                        "id": 2334,
                                        "message": "Contact modified successfully"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Request error or validation failure",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Request parameter validation error"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized or expired token",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Unauthorized: Invalid or expired token"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/customers/add": {
            "post": {
                "tags": [
                    "Customers"
                ],
                "summary": "Adding Customer",
                "description": "Creates a Customer Account using the details provided.",
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "description": "Name of the Customer (Max length 255 characters, The Name should be complete first name and last name)",
                                        "example": "John Doe"
                                    },
                                    "company": {
                                        "type": "string",
                                        "description": "Name of the Company (If you don't have a company you should mention N/A or NA : Not Available or Not Applicable for this parameter.)",
                                        "example": "Doe Ltd."
                                    },
                                    "email": {
                                        "type": "string",
                                        "description": "Email address of the Customer",
                                        "example": "new-contact@domain.cm"
                                    },
                                    "address-1": {
                                        "type": "string",
                                        "description": "First line of address of the Customer",
                                        "example": "Bastos"
                                    },
                                    "city": {
                                        "type": "string",
                                        "description": "Name of the city",
                                        "example": "Yaounde"
                                    },
                                    "ccode": {
                                        "type": "string",
                                        "description": "Country code as per ISO 3166-1 alpha-2",
                                        "example": "CM"
                                    },
                                    "zipcode": {
                                        "type": "string",
                                        "description": "Zip Code",
                                        "example": "0000"
                                    },
                                    "phone-cc": {
                                        "type": "integer",
                                        "description": "Telephone number country code (Between 1-3 digits)",
                                        "example": "237"
                                    },
                                    "phone": {
                                        "type": "integer",
                                        "description": "Telephone number (Between 4-12 digits)",
                                        "example": "612345689"
                                    },
                                    "lang-pref": {
                                        "type": "string",
                                        "description": "Language Code as per ISO (e.g. fr_FR or en_GB)",
                                        "example": "fr_FR"
                                    },
                                    "state": {
                                        "type": "string",
                                        "description": "Name of the State",
                                        "example": "Centre"
                                    },
                                    "address-2": {
                                        "type": "string",
                                        "description": "second line of address of the Customer"
                                    },
                                    "address-3": {
                                        "type": "string",
                                        "description": "Third line of address of the Customer"
                                    },
                                    "fax-cc": {
                                        "type": "integer",
                                        "description": "Fax number country code (Between 1-3 digits)"
                                    },
                                    "fax": {
                                        "type": "integer",
                                        "description": "Fax number (Between 4-12 digits)"
                                    },
                                    "terms": {
                                        "type": "boolean",
                                        "description": "Accept Terms and Conditions and Privacy Policy to create an account",
                                        "example": true
                                    },
                                    "password": {
                                        "type": "string",
                                        "description": "Sets login Password for the customer (Password should contain at least 8 characters, 1 uppercase, 1 lowercase, 1 digits and 1 special character)",
                                        "example": "TopSecre!Passwd"
                                    },
                                    "password_confirm": {
                                        "type": "string",
                                        "description": "Required if Password is set. It should be the same value as Password",
                                        "example": "TopSecre!Passwd"
                                    }
                                },
                                "required": [
                                    "name",
                                    "company",
                                    "email",
                                    "address-1",
                                    "city",
                                    "ccode",
                                    "zipcode",
                                    "phone-cc",
                                    "phone",
                                    "state"
                                ]
                            },
                            "example": {
                                "name": "John Doe",
                                "company": "Doe Ltd.",
                                "email": "new-contact@domain.cm",
                                "address-1": "Bastos",
                                "city": "Yaounde",
                                "ccode": "CM",
                                "terms": true,
                                "lang-pref": "fr_FR",
                                "zipcode": "0000",
                                "phone-cc": "237",
                                "phone": "612345689",
                                "state": "Centre",
                                "password": "TopSecre!Passwd",
                                "password_confirm": "TopSecre!Passwd"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "OK",
                                    "result": {
                                        "id": "123"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Request error or validation failure",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Request parameter validation error"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized or expired token",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Unauthorized: Invalid or expired token"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/customers/edit": {
            "post": {
                "tags": [
                    "Customers"
                ],
                "summary": "Modify Customer",
                "description": "Modifies the details of an existing Reseller Customer.",
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "integer",
                                        "description": "Customer ID to modify",
                                        "example": 123
                                    },
                                    "name": {
                                        "type": "string",
                                        "description": "Name of the Customer",
                                        "example": "John Doe Updated"
                                    },
                                    "company": {
                                        "type": "string",
                                        "description": "Name of the Company",
                                        "example": "Doe Ltd."
                                    },
                                    "email": {
                                        "type": "string",
                                        "description": "Email address of the Customer",
                                        "example": "new-contact@domain.cm"
                                    },
                                    "lang-pref": {
                                        "type": "string",
                                        "description": "Language Preference (fr_FR or en_GB)",
                                        "example": "fr_FR"
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            },
                            "example": {
                                "id": 123,
                                "name": "John Doe Updated",
                                "company": "Doe Ltd.",
                                "email": "new-contact@domain.cm",
                                "lang-pref": "fr_FR"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "OK",
                                    "result": {
                                        "id": 123,
                                        "message": "Customer modified successfully"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Request error or validation failure",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Request parameter validation error"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized or expired token",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Unauthorized: Invalid or expired token"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/customers/get-by-id": {
            "get": {
                "tags": [
                    "Customers"
                ],
                "summary": "Get Customer By Id",
                "description": "Gets Reseller Customer By Id.",
                "parameters": [
                    {
                        "name": "id",
                        "in": "query",
                        "required": true,
                        "description": "Customer's ID",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "OK",
                                    "result": {
                                        "id": 123,
                                        "username": "new-contact@domain.cm",
                                        "identities": [
                                            {
                                                "id": 1960,
                                                "email": "new-contact@domain.cm",
                                                "name": "John Doe",
                                                "company": "Doe Ltd.",
                                                "...": "..."
                                            }
                                        ]
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Request error or validation failure",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Request parameter validation error"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized or expired token",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Unauthorized: Invalid or expired token"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/customers/get-by-email": {
            "get": {
                "tags": [
                    "Customers"
                ],
                "summary": "Get Customer By E-mail",
                "description": "Gets Reseller Customer By Email.",
                "parameters": [
                    {
                        "name": "email",
                        "in": "query",
                        "required": true,
                        "description": "Customer's Email",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "OK",
                                    "result": {
                                        "id": 123,
                                        "username": "new-contact@domain.cm",
                                        "identities": [
                                            {
                                                "id": 1960,
                                                "email": "new-contact@domain.cm",
                                                "name": "John Doe",
                                                "company": "Doe Ltd.",
                                                "...": "..."
                                            }
                                        ]
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Request error or validation failure",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Request parameter validation error"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized or expired token",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Unauthorized: Invalid or expired token"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/customers/sso": {
            "get": {
                "tags": [
                    "Customers"
                ],
                "summary": "Get SSO Token By Id",
                "description": "Gets Reseller Customer SSO Token By Id.",
                "parameters": [
                    {
                        "name": "id",
                        "in": "query",
                        "required": true,
                        "description": "Customer's ID",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "OK",
                                    "result": {
                                        "sso_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Request error or validation failure",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Request parameter validation error"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized or expired token",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Unauthorized: Invalid or expired token"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/customers/auth": {
            "post": {
                "tags": [
                    "Customers"
                ],
                "summary": "Customer Authentication",
                "description": "Authenticates a reseller customer with email and password.",
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "email": {
                                        "type": "string",
                                        "description": "Customer account email",
                                        "example": "customer@example.cm"
                                    },
                                    "password": {
                                        "type": "string",
                                        "description": "Customer login password",
                                        "example": "CustomerPasswd!2026"
                                    }
                                },
                                "required": [
                                    "email",
                                    "password"
                                ]
                            },
                            "example": {
                                "email": "customer@example.cm",
                                "password": "CustomerPasswd!2026"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "OK",
                                    "result": {
                                        "id": 123,
                                        "username": "customer@example.cm",
                                        "identities": [
                                            {
                                                "id": 1960,
                                                "email": "customer@example.cm",
                                                "name": "John Doe"
                                            }
                                        ]
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Request error or validation failure",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Request parameter validation error"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized or expired token",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Unauthorized: Invalid or expired token"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/customers/balance": {
            "get": {
                "tags": [
                    "Customers"
                ],
                "summary": "Get Customer Balance",
                "description": "Gets the account balance and unpaid invoice totals for a specific reseller customer.",
                "parameters": [
                    {
                        "name": "id",
                        "in": "query",
                        "required": true,
                        "description": "Reseller customer identifier.",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "OK",
                                    "result": {
                                        "customer_id": 123,
                                        "username": "customer@example.cm",
                                        "balance": 15000,
                                        "currency": "XAF",
                                        "unpaid_amount": 0
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Request error or validation failure",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Request parameter validation error"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized or expired token",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Unauthorized: Invalid or expired token"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/dns/activate": {
            "post": {
                "tags": [
                    "DNS"
                ],
                "summary": "Activate",
                "description": "Activates the DNS service for a domain.",
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "integer",
                                        "description": "Domain ID that you need to activate our DNS service.",
                                        "example": "1234"
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            },
                            "example": {
                                "id": "1234"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "OK",
                                    "result": {
                                        "zone_id": 123,
                                        "message": "DNS service activated successfully"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Request error or validation failure",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Request parameter validation error"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized or expired token",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Unauthorized: Invalid or expired token"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/dns/add-record": {
            "post": {
                "tags": [
                    "DNS"
                ],
                "summary": "Add Record",
                "description": "Adds a DNS record to an active DNS zone.",
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "zone_id": {
                                        "type": "integer",
                                        "description": "Zone ID for which you want to add the record",
                                        "example": "1234"
                                    },
                                    "value": {
                                        "type": "string",
                                        "description": "A Fully Qualified Domain Name (FQDN) as the destination",
                                        "example": "example.cm"
                                    },
                                    "type": {
                                        "type": "string",
                                        "description": "Type of record you want to add (Allowed types are:,'A', 'AAAA', 'CNAME', 'NS', 'MX', 'TXT', 'SVR', 'SOA')",
                                        "example": "cname"
                                    },
                                    "host": {
                                        "type": "string",
                                        "description": "The host part of the domain name for which you need to add a record (For record with @ host should be empty)",
                                        "example": "www"
                                    },
                                    "ttl": {
                                        "type": "integer",
                                        "description": "Number of seconds the record needs to be cached by the DNS Resolvers. Default value is 14400."
                                    },
                                    "priority": {
                                        "type": "integer",
                                        "description": "The Priority of the host/record. Value ranges from 0 to 65535. (relevant only for MX and SRV records)"
                                    },
                                    "port": {
                                        "type": "integer",
                                        "description": "The port number of the service (relevant only for SRV records)"
                                    },
                                    "weight": {
                                        "type": "integer",
                                        "description": "A relative weight for records with the same priority (relevant only for SRV records)"
                                    }
                                },
                                "required": [
                                    "zone_id",
                                    "value",
                                    "type"
                                ]
                            },
                            "example": {
                                "zone_id": "1234",
                                "host": "www",
                                "type": "cname",
                                "value": "example.cm"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "OK",
                                    "result": {
                                        "record_id": 123,
                                        "message": "DNS record created successfully"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Request error or validation failure",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Request parameter validation error"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized or expired token",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Unauthorized: Invalid or expired token"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/dns/delete-record": {
            "post": {
                "tags": [
                    "DNS"
                ],
                "summary": "Delete Record",
                "description": "Deletes a DNS record from a zone.",
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "zone_id": {
                                        "type": "integer",
                                        "description": "Zone ID under which the record exists",
                                        "example": 123
                                    },
                                    "record_id": {
                                        "type": "integer",
                                        "description": "Record ID that you want to delete.",
                                        "example": 144
                                    }
                                },
                                "required": [
                                    "zone_id",
                                    "record_id"
                                ]
                            },
                            "example": {
                                "zone_id": 123,
                                "record_id": 144
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "OK",
                                    "result": {
                                        "zone_id": 123,
                                        "message": "DNS record deleted successfully"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Request error or validation failure",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Request parameter validation error"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized or expired token",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Unauthorized: Invalid or expired token"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/domains/availability": {
            "post": {
                "tags": [
                    "Domains"
                ],
                "summary": "Check availability",
                "description": "Checks the availability of the specified domain name(s).",
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "domain": {
                                        "type": "string",
                                        "description": "Domain name that you need to check the availability for. Without extension e.g: google",
                                        "example": "example"
                                    },
                                    "tlds": {
                                        "type": "string",
                                        "description": "TLDs for which the domain name availability needs to be checked. For more than one, it should be separated with commas",
                                        "example": "cm,net.cm"
                                    }
                                },
                                "required": [
                                    "domain",
                                    "tlds"
                                ]
                            },
                            "example": {
                                "domain": "example",
                                "tlds": "cm,net.cm"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "OK",
                                    "result": {
                                        "example.cm": {
                                            "classkey": "anticcm",
                                            "status": "N",
                                            "antic": true,
                                            "promo": [],
                                            "price": {
                                                "addtransferdomain": "7000",
                                                "restoredomain": "7000",
                                                "addnewdomain": "7000",
                                                "renewdomain": "7000"
                                            },
                                            "currency": "XAF"
                                        },
                                        "example.net.cm": {
                                            "classkey": "anticnetcm",
                                            "status": "Y",
                                            "antic": true,
                                            "promo": [],
                                            "price": {
                                                "addtransferdomain": "7000",
                                                "restoredomain": "7000",
                                                "addnewdomain": "7000",
                                                "renewdomain": "7000"
                                            },
                                            "currency": "XAF"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Request error or validation failure",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Request parameter validation error"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized or expired token",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Unauthorized: Invalid or expired token"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/domains/register": {
            "post": {
                "tags": [
                    "Domains"
                ],
                "summary": "Register",
                "description": "Registers a domain name.\n\n**Note**: A valid contact must be created first before registering a domain name.;Use POST /contacts/add to create registrant, administrative, technical, and billing contacts.;Provide the returned contact IDs for reg-contact-id, admin-contact-id, tech-contact-id, and billing-contact-id.",
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "domain-name": {
                                        "type": "string",
                                        "description": "Domain name that you need to Register. e.g: example.cm",
                                        "example": "example.cm"
                                    },
                                    "years": {
                                        "type": "integer",
                                        "description": "Number of years for which you wish to Register this domain name.",
                                        "example": "1"
                                    },
                                    "ns": {
                                        "type": "string",
                                        "description": "The Name Servers of the domain name.",
                                        "example": "ns1.yourCompany.cm,ns2.yourCompany.cm"
                                    },
                                    "reg-contact-id": {
                                        "type": "integer",
                                        "description": "The Registrant Contact ID of the domain name (must be created first via POST /contacts/add).",
                                        "example": "1112"
                                    },
                                    "admin-contact-id": {
                                        "type": "integer",
                                        "description": "The Administrative Contact ID of the domain name (must be created first via POST /contacts/add).",
                                        "example": "1223"
                                    },
                                    "tech-contact-id": {
                                        "type": "integer",
                                        "description": "The Technical Contact ID of the domain name (must be created first via POST /contacts/add).",
                                        "example": "1223"
                                    },
                                    "billing-contact-id": {
                                        "type": "integer",
                                        "description": "The Billing Contact ID of the domain name (must be created first via POST /contacts/add).",
                                        "example": "1223"
                                    }
                                },
                                "required": [
                                    "domain-name",
                                    "years",
                                    "ns",
                                    "reg-contact-id",
                                    "admin-contact-id",
                                    "tech-contact-id",
                                    "billing-contact-id"
                                ]
                            },
                            "example": {
                                "domain-name": "example.cm",
                                "years": "1",
                                "ns": "ns1.yourCompany.cm,ns2.yourCompany.cm",
                                "reg-contact-id": "1112",
                                "admin-contact-id": "1223",
                                "billing-contact-id": "1223",
                                "tech-contact-id": "1223"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "OK",
                                    "result": {
                                        "id": "38948498404",
                                        "domain": "example.cm",
                                        "message": "Domain registration completed Successfully"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Request error or validation failure",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Request parameter validation error"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized or expired token",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Unauthorized: Invalid or expired token"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/domains/renew": {
            "post": {
                "tags": [
                    "Domains"
                ],
                "summary": "Renew",
                "description": "Renews the specified Domain Registration Order for specified number of years.",
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "integer",
                                        "description": "Domain Id of the Domain Registration Order that you want to Renew.",
                                        "example": "38948498404"
                                    },
                                    "years": {
                                        "type": "integer",
                                        "description": "Number of years for which you want to Renew this Order.",
                                        "example": "1"
                                    },
                                    "endtime": {
                                        "type": "integer",
                                        "description": "Current Expiry Date of the Order in epoch time format.",
                                        "example": "1562912181"
                                    }
                                },
                                "required": [
                                    "id",
                                    "years"
                                ]
                            },
                            "example": {
                                "id": "38948498404",
                                "years": "1",
                                "endtime": "1562912181"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "OK",
                                    "result": {
                                        "domain": "example.cm",
                                        "message": "Domain renew completed Successfully"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Request error or validation failure",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Request parameter validation error"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized or expired token",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Unauthorized: Invalid or expired token"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/domains/suspend": {
            "post": {
                "tags": [
                    "Domains"
                ],
                "summary": "Suspend",
                "description": "Applies the Suspension on the specified Domain. <b>Type of request POST</b>",
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "integer",
                                        "description": "domain ID for suspension",
                                        "example": "1234"
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            },
                            "example": {
                                "id": "1234"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "OK",
                                    "result": {
                                        "domain": "example.cm",
                                        "message": "Domain suspension completed Successfully"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Request error or validation failure",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Request parameter validation error"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized or expired token",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Unauthorized: Invalid or expired token"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/domains/unsuspend": {
            "post": {
                "tags": [
                    "Domains"
                ],
                "summary": "Unsuspend",
                "description": "Removes the Suspension on the specified Domain. <b>Type of request POST</b>",
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "integer",
                                        "description": "domain ID",
                                        "example": "1234"
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            },
                            "example": {
                                "id": "1234"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "OK",
                                    "result": {
                                        "domain": "example.cm",
                                        "message": "Domain unsuspended Successfully"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Request error or validation failure",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Request parameter validation error"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized or expired token",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Unauthorized: Invalid or expired token"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/domains/validate-transfer": {
            "post": {
                "tags": [
                    "Domains"
                ],
                "summary": "Is Transferable",
                "description": "Validating a Transfer Request",
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "domain-name": {
                                        "type": "string",
                                        "description": "domain name you want to check.",
                                        "example": "example.cm"
                                    }
                                },
                                "required": [
                                    "domain-name"
                                ]
                            },
                            "example": {
                                "domain-name": "example.cm"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "OK",
                                    "result": true
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Request error or validation failure",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Request parameter validation error"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized or expired token",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Unauthorized: Invalid or expired token"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/domains/transfer": {
            "post": {
                "tags": [
                    "Domains"
                ],
                "summary": "Transfer",
                "description": "Transfers a domain name.\n\n**Note**: You need to ensure that the domain name is not Locked.",
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "domain-name": {
                                        "type": "string",
                                        "description": "Domain name that you need to transfer. e.g: example.cm",
                                        "example": "example.cm"
                                    },
                                    "auth-code": {
                                        "type": "string",
                                        "description": "Authorization Code (EEP-code,Domain Secret, Auth Code) of the domain name that you want to transfer.",
                                        "example": "AKdo?dh-Ogh4"
                                    },
                                    "years": {
                                        "type": "integer",
                                        "description": "Number of years for which you wish to transfer this domain name.",
                                        "example": "1"
                                    },
                                    "ns": {
                                        "type": "string",
                                        "description": "The Name Servers of the domain name.",
                                        "example": "ns1.yourCompany.com,ns2.yourCompany.com"
                                    },
                                    "reg-contact-id": {
                                        "type": "integer",
                                        "description": "The Registrant Contact of the domain name.",
                                        "example": "1112"
                                    },
                                    "admin-contact-id": {
                                        "type": "integer",
                                        "description": "The Administrative Contact of the domain name.",
                                        "example": "1223"
                                    },
                                    "tech-contact-id": {
                                        "type": "integer",
                                        "description": "The Technical Contact of the domain name.",
                                        "example": "1223"
                                    },
                                    "billing-contact-id": {
                                        "type": "integer",
                                        "description": "The Billing Contact of the domain name.",
                                        "example": "1223"
                                    }
                                },
                                "required": [
                                    "domain-name",
                                    "auth-code",
                                    "years",
                                    "ns",
                                    "reg-contact-id",
                                    "admin-contact-id",
                                    "tech-contact-id",
                                    "billing-contact-id"
                                ]
                            },
                            "example": {
                                "domain-name": "example.cm",
                                "auth-code": "AKdo?dh-Ogh4",
                                "years": "1",
                                "ns": "ns1.yourCompany.com,ns2.yourCompany.com",
                                "reg-contact-id": "1112",
                                "admin-contact-id": "1223",
                                "billing-contact-id": "1223",
                                "tech-contact-id": "1223"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "OK",
                                    "result": {
                                        "id": "38948498406",
                                        "domain": "example.cm",
                                        "message": "Domain transfer queued Successfully"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Request error or validation failure",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Request parameter validation error"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized or expired token",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Unauthorized: Invalid or expired token"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/domains/cm-whois": {
            "post": {
                "tags": [
                    "Domains"
                ],
                "summary": "Whois CM",
                "description": "Makes a whois for .CM domains. Find out registrant information",
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "domain-name": {
                                        "type": "string",
                                        "description": "domain name you want to check.",
                                        "example": "example.cm"
                                    }
                                },
                                "required": [
                                    "domain-name"
                                ]
                            },
                            "example": {
                                "domain-name": "example.cm"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "OK",
                                    "result": "TERMS OF USE ..."
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Request error or validation failure",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Request parameter validation error"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized or expired token",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Unauthorized: Invalid or expired token"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/domains/details": {
            "get": {
                "tags": [
                    "Domains"
                ],
                "summary": "Get Domain details",
                "description": "Gets domain details By Id.",
                "parameters": [
                    {
                        "name": "id",
                        "in": "query",
                        "required": true,
                        "description": "Domain's ID",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "OK",
                                    "result": {
                                        "id": 123,
                                        "domain-name": "yourDomain.cm",
                                        "years": 1,
                                        "created_at": "2016-05-03T17:46:23+01:00"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Request error or validation failure",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Request parameter validation error"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized or expired token",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Unauthorized: Invalid or expired token"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/domains/modify-nameservers": {
            "post": {
                "tags": [
                    "Domains"
                ],
                "summary": "Modifying Name Servers",
                "description": "Modifies the nameservers associated with a specific domain registration order.",
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "integer",
                                        "description": "Identifier of the Domain Registration Order for which nameservers are to be modified.",
                                        "example": 123
                                    },
                                    "ns": {
                                        "type": "string",
                                        "description": "Comma-separated list of new nameservers for the domain. Requires at least two nameservers. (Requires at least two nameservers. Example: \"ns1.yourCompany.com,ns2.yourCompany.com\")",
                                        "example": "ns1.yourCompany.com,ns2.yourCompany.com"
                                    }
                                },
                                "required": [
                                    "id",
                                    "ns"
                                ]
                            },
                            "example": {
                                "id": 123,
                                "ns": "ns1.yourCompany.com,ns2.yourCompany.com"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "OK",
                                    "result": {
                                        "message": "Nameservers for Domain ID123 have been successfully modified."
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Request error or validation failure",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Request parameter validation error"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized or expired token",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Unauthorized: Invalid or expired token"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/domains/theft-protection/enable": {
            "post": {
                "tags": [
                    "Domains"
                ],
                "summary": "Enabling the Theft Protection Lock",
                "description": "Applies the Theft Protection Lock on the specified domain registration order.",
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "integer",
                                        "description": "Identifier of the Domain Registration Order for which theft protection is to be modified.",
                                        "example": 123
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            },
                            "example": {
                                "id": 123
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "OK",
                                    "result": {
                                        "message": "Theft protection for Domain ID123 has been successfully enabled."
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Request error or validation failure",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Request parameter validation error"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized or expired token",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Unauthorized: Invalid or expired token"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/domains/theft-protection/disable": {
            "post": {
                "tags": [
                    "Domains"
                ],
                "summary": "Disabling the Theft Protection Lock",
                "description": "Disables the Theft Protection Lock on the specified domain registration order.",
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "integer",
                                        "description": "Identifier of the Domain Registration Order on which the Theft Protection Lock is to be removed.",
                                        "example": 123
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            },
                            "example": {
                                "id": 123
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "OK",
                                    "result": {
                                        "message": "Theft protection for Domain ID123 has been successfully disabled."
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Request error or validation failure",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Request parameter validation error"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized or expired token",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Unauthorized: Invalid or expired token"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/domains/whois-privacy/enable": {
            "post": {
                "tags": [
                    "Domains"
                ],
                "summary": "Enabling Whois Privacy",
                "description": "Enables the Whois Privacy Protection on the specified domain registration order.\n\n**Note**: This service is not free.",
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "integer",
                                        "description": "Identifier of the Domain Registration Order for which Whois privacy protection is to be enabled.",
                                        "example": 123
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            },
                            "example": {
                                "id": 123
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "OK",
                                    "result": {
                                        "message": "Whois privacy protection for Domain ID123 has been successfully enabled."
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Request error or validation failure",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Request parameter validation error"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized or expired token",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Unauthorized: Invalid or expired token"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/domains/whois-privacy/disable": {
            "post": {
                "tags": [
                    "Domains"
                ],
                "summary": "Disabling Whois Privacy",
                "description": "Disables the Whois Privacy Protection on the specified domain registration order.",
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "integer",
                                        "description": "Identifier of the Domain Registration Order for which Whois privacy protection is to be disabled.",
                                        "example": 123
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            },
                            "example": {
                                "id": 123
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "OK",
                                    "result": {
                                        "message": "Whois privacy protection for Domain ID123 has been successfully disabled."
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Request error or validation failure",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Request parameter validation error"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized or expired token",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Unauthorized: Invalid or expired token"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/domains/resend-verification-mail": {
            "post": {
                "tags": [
                    "Domains"
                ],
                "summary": "Resend Verification Email",
                "description": "Resends the registrant verification email for the specified domain.",
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "integer",
                                        "description": "Identifier of the domain for which verification email is to be resent.",
                                        "example": 123
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            },
                            "example": {
                                "id": 123
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "OK",
                                    "result": {
                                        "message": "Verification email resent successfully.",
                                        "success": true
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Request error or validation failure",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Request parameter validation error"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized or expired token",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Unauthorized: Invalid or expired token"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/order/offline": {
            "post": {
                "tags": [
                    "Orders"
                ],
                "summary": "Create offline order",
                "description": "Creates an order to be settled offline.",
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "body": {
                                        "type": "string",
                                        "description": "JSON-encoded cart containing at least the reseller customer identifier in the user field.",
                                        "example": "{\"user\":1234,\"items\":[]}"
                                    }
                                },
                                "required": [
                                    "body"
                                ]
                            },
                            "example": {
                                "body": "{\"user\":1234,\"items\":[]}"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "OK",
                                    "result": {
                                        "success": true
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Request error or validation failure",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Request parameter validation error"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized or expired token",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Unauthorized: Invalid or expired token"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/order/online": {
            "post": {
                "tags": [
                    "Orders"
                ],
                "summary": "Create online order",
                "description": "Creates an order after a completed online payment.",
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "body": {
                                        "type": "string",
                                        "description": "JSON-encoded cart containing user and payment_id fields.",
                                        "example": "{\"user\":1234,\"payment_id\":\"payment-reference\",\"items\":[]}"
                                    }
                                },
                                "required": [
                                    "body"
                                ]
                            },
                            "example": {
                                "body": "{\"user\":1234,\"payment_id\":\"payment-reference\",\"items\":[]}"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "OK",
                                    "result": {
                                        "success": true
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Request error or validation failure",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Request parameter validation error"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized or expired token",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Unauthorized: Invalid or expired token"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/payment/mobile-money": {
            "post": {
                "tags": [
                    "Payments"
                ],
                "summary": "Mobile money payment",
                "description": "Starts a mobile money payment for a reseller customer.",
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "phoneNumber": {
                                        "type": "string",
                                        "description": "Customer mobile number in international format.",
                                        "example": "+237600000000"
                                    },
                                    "amount": {
                                        "type": "number",
                                        "description": "Amount to charge in the account currency.",
                                        "example": 5000
                                    },
                                    "customer": {
                                        "type": "integer",
                                        "description": "Reseller customer identifier.",
                                        "example": 1234
                                    }
                                },
                                "required": [
                                    "phoneNumber",
                                    "amount",
                                    "customer"
                                ]
                            },
                            "example": {
                                "phoneNumber": "+237600000000",
                                "amount": 5000,
                                "customer": 1234
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "OK",
                                    "result": {
                                        "paymentId": "payment-reference",
                                        "time": 1700000000,
                                        "message": "in progress",
                                        "success": true
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Request error or validation failure",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Request parameter validation error"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized or expired token",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Unauthorized: Invalid or expired token"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/payment/check": {
            "get": {
                "tags": [
                    "Payments"
                ],
                "summary": "Check mobile money payment",
                "description": "Checks whether a mobile money payment has been completed.",
                "parameters": [
                    {
                        "name": "payment_id",
                        "in": "query",
                        "required": true,
                        "description": "Payment reference returned by the payment request.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "OK",
                                    "result": {
                                        "success": true
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Request error or validation failure",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Request parameter validation error"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized or expired token",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Unauthorized: Invalid or expired token"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/sub-domains/add": {
            "post": {
                "tags": [
                    "Subdomains"
                ],
                "summary": "Adding Sub-domain",
                "description": "Adds a subdomain to a domain using the details provided.",
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "description": "Hostname label for the subdomain. (Max length 63 characters)",
                                        "example": "dev"
                                    },
                                    "domain-name": {
                                        "type": "string",
                                        "description": "Parent domain under which the subdomain will be created.",
                                        "example": "example.cm"
                                    },
                                    "target": {
                                        "type": "string",
                                        "description": "The target folder on the web space. If given target does not exist, the folder is created. (The folder is/should be created under /home/user/<b>target</b>)",
                                        "example": "dev-folder"
                                    }
                                },
                                "required": [
                                    "name",
                                    "domain-name",
                                    "target"
                                ]
                            },
                            "example": {
                                "name": "dev",
                                "domain-name": "example.cm",
                                "target": "dev-folder"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "OK",
                                    "result": {
                                        "id": "1234",
                                        "message": "Subdomain created successfully"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Request error or validation failure",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Request parameter validation error"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized or expired token",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Unauthorized: Invalid or expired token"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/sub-domains/delete": {
            "post": {
                "tags": [
                    "Subdomains"
                ],
                "summary": "Delete Sub-domain",
                "description": "Deletes a subdomain using its identifier.",
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "integer",
                                        "description": "Sub domain ID",
                                        "example": "1234"
                                    }
                                },
                                "required": [
                                    "id"
                                ]
                            },
                            "example": {
                                "id": "1234"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "OK",
                                    "result": {
                                        "message": "Subdomain deleted successfully"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Request error or validation failure",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Request parameter validation error"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized or expired token",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Unauthorized: Invalid or expired token"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/tariffs/get": {
            "get": {
                "tags": [
                    "Tariffs"
                ],
                "summary": "Get All tariffs",
                "description": "Gets all tariffs for an Account.",
                "parameters": [
                    {
                        "name": "count",
                        "in": "query",
                        "required": false,
                        "description": "This parameter lets you specify the amount of tariffs to return in your API call. The default for this parameter (if it isn't specified) is 20 tariffs. The maximum amount of tariffs you can have returned to you via this parameter is 100.",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "required": false,
                        "description": "Used to page through the tariffs. Every call to this endpoint will return a has_more key with a bool value. If this value is true, then send {page} +1 to get the next page of tariffs.",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "OK",
                                    "result": [
                                        {
                                            "tariffs": [
                                                {
                                                    "id": 123,
                                                    "...": "..."
                                                }
                                            ],
                                            "has_more": true
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Request error or validation failure",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Request parameter validation error"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized or expired token",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "KO",
                                    "result": {
                                        "message": "Unauthorized: Invalid or expired token"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    },
    "components": {
        "securitySchemes": {
            "BearerAuth": {
                "type": "http",
                "scheme": "bearer",
                "bearerFormat": "JWT",
                "description": "JWT Bearer token returned from `POST /auth`. Expires after 30 minutes."
            }
        }
    }
}