{"openapi":"3.1.0","info":{"title":"cloudlinux.ro machine payments","version":"1.0.0","summary":"Fund a cloudlinux.ro prepaid account from an AI agent over HTTP 402 (Machine Payments Protocol).","description":"cloudlinux.ro is a Romanian (EU) cloud provider: hourly-billed cloud, GPU and dedicated servers, AgentBox AI workstations, backup storage, domains and licences, all paid from a prepaid credit balance. This endpoint lets the customer's agent add credit by itself: the first call answers 402 with an MPP challenge (method stripe, cards through Shared Payment Tokens), the agent pays it and repeats the call with the credential and the account's API key. An online payment processing fee of 3.4% + EUR 0.25 is added to the charge; the credit added is exactly the amount requested. Everything else (ordering servers, domains, DNS, backups) is a normal bearer-token API documented at https://cloudlinux.ro/docs/api and as an MCP server at https://cloudlinux.ro/mcp.","termsOfService":"https://cloudlinux.ro/terms","contact":{"name":"cloudlinux.ro support","email":"support@cloudlinux.ro","url":"https://cloudlinux.ro/contact"},"x-guidance":"Use POST /api/v1/billing/topup to add prepaid credit to an existing, verified cloudlinux.ro account. Send the account's API key as `Authorization: Bearer cl_...` (create one in the console under Settings > API). Without a payment credential the response is 402 with a WWW-Authenticate: Payment challenge for `amount` EUR of credit plus the processing fee; pay it with a Shared Payment Token from your wallet (for example `link-cli mpp pay`) and repeat the request with the credential in the Payment-Authorization header. The credit is added immediately and the response carries a Payment-Receipt header. Amounts: 5 to 5000 EUR. Then spend the credit through the API or MCP server; every paid action there checks the balance and asks for confirmation first."},"servers":[{"url":"https://cloudlinux.ro"}],"x-service-info":{"categories":["compute"],"docs":{"homepage":"https://cloudlinux.ro/docs/agent-payments","apiReference":"https://cloudlinux.ro/docs/api","llms":"https://cloudlinux.ro/llms.txt"}},"paths":{"/api/v1/billing/topup":{"post":{"operationId":"topUpCredit","summary":"Add prepaid credit to the account (HTTP 402, MPP)","description":"Answers 402 with a Machine Payments Protocol challenge (method stripe, intent charge) for the requested credit plus the processing fee. Repeat with the credential in Payment-Authorization and the account's bearer token; the credit is booked at once. Verified accounts whose holder accepted the current terms only.","tags":["billing"],"security":[],"x-payment-info":{"price":{"mode":"dynamic","currency":"EUR","min":"5.44","max":"5176.25"},"protocols":[{"mpp":{"method":"stripe","intent":"charge","currency":"eur"}}],"offers":[{"method":"stripe","intent":"charge","currency":"eur","amount":"2097","description":"EUR 20.00 of credit (default amount) plus the processing fee, in cents"}]},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"amount":{"type":"number","minimum":5,"maximum":5000,"default":20,"description":"Credit to add, in EUR. The charge is this amount plus the processing fee."}}},"example":{"amount":20}}}},"responses":{"200":{"description":"Paid: the credit was added. Payment-Receipt header carries the MPP receipt.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"credit_added":{"type":"number"},"fee":{"type":"number"},"charged":{"type":"number"},"currency":{"type":"string","const":"EUR"},"balance":{"type":"number"},"transaction_id":{"type":["integer","null"]},"payment":{"type":"string","description":"Payment intent id, also the receipt reference"}}}}}}}},"402":{"description":"Payment required: WWW-Authenticate: Payment carries the MPP challenge; the body repeats credit, fee, total and expiry.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"message":{"type":"string"},"credit":{"type":"number"},"fee":{"type":"number"},"total":{"type":"number"},"currency":{"type":"string"},"expires":{"type":"string","format":"date-time"}}}}}},"401":{"description":"A payment credential arrived without the account's API key; nothing was charged."},"403":{"description":"Account not verified yet, or the holder has not accepted the current terms."}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"cloudlinux.ro API key (cl_...), created in the console under Settings > API."}}}}