> For the complete documentation index, see [llms.txt](https://ro-proxy.gitbook.io/integration/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ro-proxy.gitbook.io/integration/models.md).

# Models

## The ErrorEnvelope object

```json
{"openapi":"3.0.3","info":{"title":"RoProxy Integration API","version":"1.0.0"},"components":{"schemas":{"ErrorEnvelope":{"type":"object","properties":{"message":{"type":"string"},"data":{"nullable":true}},"required":["message"]}}}}
```

## The EmptyEnvelope object

```json
{"openapi":"3.0.3","info":{"title":"RoProxy Integration API","version":"1.0.0"},"components":{"schemas":{"EmptyEnvelope":{"type":"object","properties":{"message":{"type":"string"},"data":{"nullable":true}},"required":["message"]}}}}
```

## The CreateKeyRequest object

```json
{"openapi":"3.0.3","info":{"title":"RoProxy Integration API","version":"1.0.0"},"components":{"schemas":{"CreateKeyRequest":{"type":"object","required":["name"],"properties":{"name":{"type":"string","maxLength":100,"description":"Human-readable label for the key (shown in the dashboard)."}}}}}}
```

## The KeyItem object

```json
{"openapi":"3.0.3","info":{"title":"RoProxy Integration API","version":"1.0.0"},"components":{"schemas":{"KeyItem":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"created_at":{"type":"string","format":"date-time"}}}}}}
```

## The KeyCreatedResponse object

```json
{"openapi":"3.0.3","info":{"title":"RoProxy Integration API","version":"1.0.0"},"components":{"schemas":{"KeyCreatedResponse":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"token":{"type":"string","description":"The API key itself. Shown only at creation time."},"created_at":{"type":"string","format":"date-time"}}}}}}
```

## The KeyCreatedEnvelope object

```json
{"openapi":"3.0.3","info":{"title":"RoProxy Integration API","version":"1.0.0"},"components":{"schemas":{"KeyCreatedEnvelope":{"type":"object","properties":{"message":{"type":"string"},"data":{"$ref":"#/components/schemas/KeyCreatedResponse"}}},"KeyCreatedResponse":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"token":{"type":"string","description":"The API key itself. Shown only at creation time."},"created_at":{"type":"string","format":"date-time"}}}}}}
```

## The KeyListEnvelope object

```json
{"openapi":"3.0.3","info":{"title":"RoProxy Integration API","version":"1.0.0"},"components":{"schemas":{"KeyListEnvelope":{"type":"object","properties":{"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/KeyItem"}}}},"KeyItem":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"created_at":{"type":"string","format":"date-time"}}}}}}
```

## The UserProfile object

```json
{"openapi":"3.0.3","info":{"title":"RoProxy Integration API","version":"1.0.0"},"components":{"schemas":{"UserProfile":{"type":"object","properties":{"id":{"type":"integer"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"email":{"type":"string","format":"email"},"in":{"type":"integer","format":"int64","description":"Total inbound bytes used by this account."},"out":{"type":"integer","format":"int64","description":"Total outbound bytes used by this account."},"status":{"type":"string","enum":["inactive","active","ban"]},"country":{"type":"string","description":"ISO-3166 alpha-2 country code."},"balance":{"type":"number","format":"double","description":"Current account balance, in USD."}}}}}}
```

## The UserProfileEnvelope object

```json
{"openapi":"3.0.3","info":{"title":"RoProxy Integration API","version":"1.0.0"},"components":{"schemas":{"UserProfileEnvelope":{"type":"object","properties":{"message":{"type":"string"},"data":{"$ref":"#/components/schemas/UserProfile"}}},"UserProfile":{"type":"object","properties":{"id":{"type":"integer"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"email":{"type":"string","format":"email"},"in":{"type":"integer","format":"int64","description":"Total inbound bytes used by this account."},"out":{"type":"integer","format":"int64","description":"Total outbound bytes used by this account."},"status":{"type":"string","enum":["inactive","active","ban"]},"country":{"type":"string","description":"ISO-3166 alpha-2 country code."},"balance":{"type":"number","format":"double","description":"Current account balance, in USD."}}}}}}
```

## The PermissionListEnvelope object

```json
{"openapi":"3.0.3","info":{"title":"RoProxy Integration API","version":"1.0.0"},"components":{"schemas":{"PermissionListEnvelope":{"type":"object","properties":{"message":{"type":"string"},"data":{"type":"array","items":{"type":"string"}}}}}}}
```

## The ChangePasswordRequest object

```json
{"openapi":"3.0.3","info":{"title":"RoProxy Integration API","version":"1.0.0"},"components":{"schemas":{"ChangePasswordRequest":{"type":"object","required":["old_password","new_password"],"properties":{"old_password":{"type":"string"},"new_password":{"type":"string","minLength":8}}}}}}
```

## The UpdateCountryRequest object

```json
{"openapi":"3.0.3","info":{"title":"RoProxy Integration API","version":"1.0.0"},"components":{"schemas":{"UpdateCountryRequest":{"type":"object","required":["country"],"properties":{"country":{"type":"string","description":"ISO-3166 alpha-2 country code."}}}}}}
```

## The UpdateSessionRequest object

```json
{"openapi":"3.0.3","info":{"title":"RoProxy Integration API","version":"1.0.0"},"components":{"schemas":{"UpdateSessionRequest":{"type":"object","required":["strategy"],"properties":{"strategy":{"type":"string","enum":["bind","request","time"]},"country":{"type":"string","nullable":true},"duration":{"type":"integer","nullable":true,"description":"Rotation period in seconds (only meaningful when `strategy = time`)."}}}}}}
```

## The ListSessionItem object

```json
{"openapi":"3.0.3","info":{"title":"RoProxy Integration API","version":"1.0.0"},"components":{"schemas":{"ListSessionItem":{"type":"object","properties":{"id":{"type":"integer"},"user_id":{"type":"integer"},"user_email":{"type":"string"},"plan_id":{"type":"integer","nullable":true},"plan_name":{"type":"string","nullable":true},"username":{"type":"string"},"password":{"type":"string"},"gateway_host":{"type":"string"},"gateway_http_port":{"type":"integer"},"gateway_socks5_port":{"type":"integer"},"proxy_ip":{"type":"string","nullable":true},"country":{"type":"string","nullable":true},"strategy":{"type":"string","enum":["bind","request","time"]},"duration":{"type":"integer","nullable":true},"in":{"type":"integer","format":"int64"},"out":{"type":"integer","format":"int64"},"status":{"type":"string"},"rotated_at":{"type":"string","format":"date-time","nullable":true},"expired_at":{"type":"string","format":"date-time","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}}}}}
```

## The ListSessionResponse object

```json
{"openapi":"3.0.3","info":{"title":"RoProxy Integration API","version":"1.0.0"},"components":{"schemas":{"ListSessionResponse":{"type":"object","properties":{"total":{"type":"integer","format":"int64"},"page":{"type":"integer"},"size":{"type":"integer"},"items":{"type":"array","items":{"$ref":"#/components/schemas/ListSessionItem"}}}},"ListSessionItem":{"type":"object","properties":{"id":{"type":"integer"},"user_id":{"type":"integer"},"user_email":{"type":"string"},"plan_id":{"type":"integer","nullable":true},"plan_name":{"type":"string","nullable":true},"username":{"type":"string"},"password":{"type":"string"},"gateway_host":{"type":"string"},"gateway_http_port":{"type":"integer"},"gateway_socks5_port":{"type":"integer"},"proxy_ip":{"type":"string","nullable":true},"country":{"type":"string","nullable":true},"strategy":{"type":"string","enum":["bind","request","time"]},"duration":{"type":"integer","nullable":true},"in":{"type":"integer","format":"int64"},"out":{"type":"integer","format":"int64"},"status":{"type":"string"},"rotated_at":{"type":"string","format":"date-time","nullable":true},"expired_at":{"type":"string","format":"date-time","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}}}}}
```

## The ListSessionEnvelope object

```json
{"openapi":"3.0.3","info":{"title":"RoProxy Integration API","version":"1.0.0"},"components":{"schemas":{"ListSessionEnvelope":{"type":"object","properties":{"message":{"type":"string"},"data":{"$ref":"#/components/schemas/ListSessionResponse"}}},"ListSessionResponse":{"type":"object","properties":{"total":{"type":"integer","format":"int64"},"page":{"type":"integer"},"size":{"type":"integer"},"items":{"type":"array","items":{"$ref":"#/components/schemas/ListSessionItem"}}}},"ListSessionItem":{"type":"object","properties":{"id":{"type":"integer"},"user_id":{"type":"integer"},"user_email":{"type":"string"},"plan_id":{"type":"integer","nullable":true},"plan_name":{"type":"string","nullable":true},"username":{"type":"string"},"password":{"type":"string"},"gateway_host":{"type":"string"},"gateway_http_port":{"type":"integer"},"gateway_socks5_port":{"type":"integer"},"proxy_ip":{"type":"string","nullable":true},"country":{"type":"string","nullable":true},"strategy":{"type":"string","enum":["bind","request","time"]},"duration":{"type":"integer","nullable":true},"in":{"type":"integer","format":"int64"},"out":{"type":"integer","format":"int64"},"status":{"type":"string"},"rotated_at":{"type":"string","format":"date-time","nullable":true},"expired_at":{"type":"string","format":"date-time","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}}}}}
```

## The UserRotateSessionData object

```json
{"openapi":"3.0.3","info":{"title":"RoProxy Integration API","version":"1.0.0"},"components":{"schemas":{"UserRotateSessionData":{"type":"object","properties":{"rotated_at":{"type":"string","format":"date-time","nullable":true},"proxy_ip":{"type":"string"}}}}}}
```

## The UserRotateSessionEnvelope object

```json
{"openapi":"3.0.3","info":{"title":"RoProxy Integration API","version":"1.0.0"},"components":{"schemas":{"UserRotateSessionEnvelope":{"type":"object","properties":{"message":{"type":"string"},"data":{"$ref":"#/components/schemas/UserRotateSessionData"}}},"UserRotateSessionData":{"type":"object","properties":{"rotated_at":{"type":"string","format":"date-time","nullable":true},"proxy_ip":{"type":"string"}}}}}}
```

## The LocationListEnvelope object

```json
{"openapi":"3.0.3","info":{"title":"RoProxy Integration API","version":"1.0.0"},"components":{"schemas":{"LocationListEnvelope":{"type":"object","properties":{"message":{"type":"string"},"data":{"type":"array","items":{"type":"string"}}}}}}}
```

## The Plan object

```json
{"openapi":"3.0.3","info":{"title":"RoProxy Integration API","version":"1.0.0"},"components":{"schemas":{"Plan":{"type":"object","properties":{"id":{"type":"integer"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"name":{"type":"string"},"price":{"type":"number","format":"double","description":"Price per session per day, in USD."},"memo":{"type":"object","additionalProperties":true,"description":"Plan-specific metadata (e.g. bandwidth ceiling, feature flags)."},"status":{"type":"string","enum":["active","inactive"]}}}}}}
```

## The PlanListEnvelope object

```json
{"openapi":"3.0.3","info":{"title":"RoProxy Integration API","version":"1.0.0"},"components":{"schemas":{"PlanListEnvelope":{"type":"object","properties":{"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/Plan"}}}},"Plan":{"type":"object","properties":{"id":{"type":"integer"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"name":{"type":"string"},"price":{"type":"number","format":"double","description":"Price per session per day, in USD."},"memo":{"type":"object","additionalProperties":true,"description":"Plan-specific metadata (e.g. bandwidth ceiling, feature flags)."},"status":{"type":"string","enum":["active","inactive"]}}}}}}
```

## The TopupRequest object

```json
{"openapi":"3.0.3","info":{"title":"RoProxy Integration API","version":"1.0.0"},"components":{"schemas":{"TopupRequest":{"type":"object","required":["amount","method"],"properties":{"amount":{"type":"number","format":"double","exclusiveMinimum":0},"method":{"type":"string","enum":["vietqr"]}}}}}}
```

## The TopupCryptoRequest object

```json
{"openapi":"3.0.3","info":{"title":"RoProxy Integration API","version":"1.0.0"},"components":{"schemas":{"TopupCryptoRequest":{"type":"object","required":["amount","method"],"properties":{"amount":{"type":"number","format":"double","minimum":5},"method":{"type":"string","enum":["tron"]}}}}}}
```

## The VerifyCryptoPaymentRequest object

```json
{"openapi":"3.0.3","info":{"title":"RoProxy Integration API","version":"1.0.0"},"components":{"schemas":{"VerifyCryptoPaymentRequest":{"type":"object","required":["code","txid","method"],"properties":{"code":{"type":"string","description":"Payment code returned by topup-crypto."},"txid":{"type":"string","description":"On-chain transaction ID of the USDT transfer."},"method":{"type":"string","enum":["tron"]}}}}}}
```

## The BuyRequest object

```json
{"openapi":"3.0.3","info":{"title":"RoProxy Integration API","version":"1.0.0"},"components":{"schemas":{"BuyRequest":{"type":"object","required":["plan_id","day"],"properties":{"plan_id":{"type":"integer","minimum":1},"day":{"type":"integer","minimum":1,"description":"Duration in days for each session."},"quantity":{"type":"integer","minimum":1,"maximum":100,"default":1}}}}}}
```

## The ExtendRequest object

```json
{"openapi":"3.0.3","info":{"title":"RoProxy Integration API","version":"1.0.0"},"components":{"schemas":{"ExtendRequest":{"type":"object","required":["session_ids","day"],"properties":{"session_ids":{"type":"array","minItems":1,"maxItems":120,"items":{"type":"integer","minimum":1}},"day":{"type":"integer","minimum":1}}}}}}
```

## The TopupAndBuyRequest object

```json
{"openapi":"3.0.3","info":{"title":"RoProxy Integration API","version":"1.0.0"},"components":{"schemas":{"TopupAndBuyRequest":{"type":"object","required":["amount","method","plan_id","day"],"properties":{"amount":{"type":"number","format":"double","exclusiveMinimum":0},"method":{"type":"string","enum":["vietqr"]},"plan_id":{"type":"integer","minimum":1},"day":{"type":"integer","minimum":1},"quantity":{"type":"integer","minimum":1,"maximum":100,"default":1}}}}}}
```

## The TopupAndExtendRequest object

```json
{"openapi":"3.0.3","info":{"title":"RoProxy Integration API","version":"1.0.0"},"components":{"schemas":{"TopupAndExtendRequest":{"type":"object","required":["amount","method","session_ids","day"],"properties":{"amount":{"type":"number","format":"double","exclusiveMinimum":0},"method":{"type":"string","enum":["vietqr"]},"session_ids":{"type":"array","minItems":1,"maxItems":120,"items":{"type":"integer","minimum":1}},"day":{"type":"integer","minimum":1}}}}}}
```

## The TopupAndBuyCryptoRequest object

```json
{"openapi":"3.0.3","info":{"title":"RoProxy Integration API","version":"1.0.0"},"components":{"schemas":{"TopupAndBuyCryptoRequest":{"type":"object","required":["amount","method","plan_id","day"],"properties":{"amount":{"type":"number","format":"double","minimum":5},"method":{"type":"string","enum":["tron"]},"plan_id":{"type":"integer","minimum":1},"day":{"type":"integer","minimum":1},"quantity":{"type":"integer","minimum":1,"maximum":100,"default":1}}}}}}
```

## The TopupAndExtendCryptoRequest object

```json
{"openapi":"3.0.3","info":{"title":"RoProxy Integration API","version":"1.0.0"},"components":{"schemas":{"TopupAndExtendCryptoRequest":{"type":"object","required":["amount","method","session_ids","day"],"properties":{"amount":{"type":"number","format":"double","minimum":5},"method":{"type":"string","enum":["tron"]},"session_ids":{"type":"array","minItems":1,"maxItems":120,"items":{"type":"integer","minimum":1}},"day":{"type":"integer","minimum":1}}}}}}
```

## The TopupPaymentResponse object

```json
{"openapi":"3.0.3","info":{"title":"RoProxy Integration API","version":"1.0.0"},"components":{"schemas":{"TopupPaymentResponse":{"type":"object","properties":{"id":{"type":"integer"},"code":{"type":"string"},"amount":{"type":"number","format":"double"},"payment_url":{"type":"string","description":"URL to redirect the payer to (VietQR)."},"bank_id":{"type":"string"},"account_no":{"type":"string"}}}}}}
```

## The TopupPaymentEnvelope object

```json
{"openapi":"3.0.3","info":{"title":"RoProxy Integration API","version":"1.0.0"},"components":{"schemas":{"TopupPaymentEnvelope":{"type":"object","properties":{"message":{"type":"string"},"data":{"$ref":"#/components/schemas/TopupPaymentResponse"}}},"TopupPaymentResponse":{"type":"object","properties":{"id":{"type":"integer"},"code":{"type":"string"},"amount":{"type":"number","format":"double"},"payment_url":{"type":"string","description":"URL to redirect the payer to (VietQR)."},"bank_id":{"type":"string"},"account_no":{"type":"string"}}}}}}
```

## The TopupCryptoResponse object

```json
{"openapi":"3.0.3","info":{"title":"RoProxy Integration API","version":"1.0.0"},"components":{"schemas":{"TopupCryptoResponse":{"type":"object","properties":{"id":{"type":"integer"},"code":{"type":"string"},"amount":{"type":"number","format":"double","description":"Amount in USD requested."},"pay_amount":{"type":"number","format":"double","description":"Actual USDT amount the payer must send (may differ from amount due to fees)."},"wallet_address":{"type":"string"},"qr_code_url":{"type":"string","description":"URL of a QR code encoding the wallet address."}}}}}}
```

## The TopupCryptoEnvelope object

```json
{"openapi":"3.0.3","info":{"title":"RoProxy Integration API","version":"1.0.0"},"components":{"schemas":{"TopupCryptoEnvelope":{"type":"object","properties":{"message":{"type":"string"},"data":{"$ref":"#/components/schemas/TopupCryptoResponse"}}},"TopupCryptoResponse":{"type":"object","properties":{"id":{"type":"integer"},"code":{"type":"string"},"amount":{"type":"number","format":"double","description":"Amount in USD requested."},"pay_amount":{"type":"number","format":"double","description":"Actual USDT amount the payer must send (may differ from amount due to fees)."},"wallet_address":{"type":"string"},"qr_code_url":{"type":"string","description":"URL of a QR code encoding the wallet address."}}}}}}
```

## The BuySessionInfo object

```json
{"openapi":"3.0.3","info":{"title":"RoProxy Integration API","version":"1.0.0"},"components":{"schemas":{"BuySessionInfo":{"type":"object","properties":{"session_id":{"type":"integer"},"username":{"type":"string"},"password":{"type":"string"},"gateway_host":{"type":"string"},"gateway_http_port":{"type":"integer"},"gateway_socks5_port":{"type":"integer"},"strategy":{"type":"string","enum":["bind","request","time"]},"duration":{"type":"integer","nullable":true},"expired_at":{"type":"string","format":"date-time","nullable":true}}}}}}
```

## The BuyPaymentResponse object

```json
{"openapi":"3.0.3","info":{"title":"RoProxy Integration API","version":"1.0.0"},"components":{"schemas":{"BuyPaymentResponse":{"type":"object","properties":{"id":{"type":"integer"},"code":{"type":"string"},"amount":{"type":"number","format":"double"},"sessions":{"type":"array","items":{"$ref":"#/components/schemas/BuySessionInfo"}}}},"BuySessionInfo":{"type":"object","properties":{"session_id":{"type":"integer"},"username":{"type":"string"},"password":{"type":"string"},"gateway_host":{"type":"string"},"gateway_http_port":{"type":"integer"},"gateway_socks5_port":{"type":"integer"},"strategy":{"type":"string","enum":["bind","request","time"]},"duration":{"type":"integer","nullable":true},"expired_at":{"type":"string","format":"date-time","nullable":true}}}}}}
```

## The BuyPaymentEnvelope object

```json
{"openapi":"3.0.3","info":{"title":"RoProxy Integration API","version":"1.0.0"},"components":{"schemas":{"BuyPaymentEnvelope":{"type":"object","properties":{"message":{"type":"string"},"data":{"$ref":"#/components/schemas/BuyPaymentResponse"}}},"BuyPaymentResponse":{"type":"object","properties":{"id":{"type":"integer"},"code":{"type":"string"},"amount":{"type":"number","format":"double"},"sessions":{"type":"array","items":{"$ref":"#/components/schemas/BuySessionInfo"}}}},"BuySessionInfo":{"type":"object","properties":{"session_id":{"type":"integer"},"username":{"type":"string"},"password":{"type":"string"},"gateway_host":{"type":"string"},"gateway_http_port":{"type":"integer"},"gateway_socks5_port":{"type":"integer"},"strategy":{"type":"string","enum":["bind","request","time"]},"duration":{"type":"integer","nullable":true},"expired_at":{"type":"string","format":"date-time","nullable":true}}}}}}
```

## The ExtendSessionInfo object

```json
{"openapi":"3.0.3","info":{"title":"RoProxy Integration API","version":"1.0.0"},"components":{"schemas":{"ExtendSessionInfo":{"type":"object","properties":{"session_id":{"type":"integer"},"expired_at":{"type":"string","format":"date-time","nullable":true}}}}}}
```

## The ExtendResponse object

```json
{"openapi":"3.0.3","info":{"title":"RoProxy Integration API","version":"1.0.0"},"components":{"schemas":{"ExtendResponse":{"type":"object","properties":{"id":{"type":"integer"},"code":{"type":"string"},"amount":{"type":"number","format":"double"},"sessions":{"type":"array","items":{"$ref":"#/components/schemas/ExtendSessionInfo"}}}},"ExtendSessionInfo":{"type":"object","properties":{"session_id":{"type":"integer"},"expired_at":{"type":"string","format":"date-time","nullable":true}}}}}}
```

## The ExtendEnvelope object

```json
{"openapi":"3.0.3","info":{"title":"RoProxy Integration API","version":"1.0.0"},"components":{"schemas":{"ExtendEnvelope":{"type":"object","properties":{"message":{"type":"string"},"data":{"$ref":"#/components/schemas/ExtendResponse"}}},"ExtendResponse":{"type":"object","properties":{"id":{"type":"integer"},"code":{"type":"string"},"amount":{"type":"number","format":"double"},"sessions":{"type":"array","items":{"$ref":"#/components/schemas/ExtendSessionInfo"}}}},"ExtendSessionInfo":{"type":"object","properties":{"session_id":{"type":"integer"},"expired_at":{"type":"string","format":"date-time","nullable":true}}}}}}
```

## The PaymentStatusResponse object

```json
{"openapi":"3.0.3","info":{"title":"RoProxy Integration API","version":"1.0.0"},"components":{"schemas":{"PaymentStatusResponse":{"type":"object","properties":{"id":{"type":"integer"},"code":{"type":"string"},"pay_status":{"type":"string","enum":["pending","paid","failed"]},"action_status":{"type":"string","enum":["pending","done","error"]},"action_error":{"type":"string","nullable":true}}}}}}
```

## The PaymentStatusEnvelope object

```json
{"openapi":"3.0.3","info":{"title":"RoProxy Integration API","version":"1.0.0"},"components":{"schemas":{"PaymentStatusEnvelope":{"type":"object","properties":{"message":{"type":"string"},"data":{"$ref":"#/components/schemas/PaymentStatusResponse"}}},"PaymentStatusResponse":{"type":"object","properties":{"id":{"type":"integer"},"code":{"type":"string"},"pay_status":{"type":"string","enum":["pending","paid","failed"]},"action_status":{"type":"string","enum":["pending","done","error"]},"action_error":{"type":"string","nullable":true}}}}}}
```

## The ListUserPaymentItem object

```json
{"openapi":"3.0.3","info":{"title":"RoProxy Integration API","version":"1.0.0"},"components":{"schemas":{"ListUserPaymentItem":{"type":"object","properties":{"id":{"type":"integer"},"code":{"type":"string"},"amount":{"type":"number","format":"double"},"pay_amount":{"type":"number","format":"double"},"method":{"type":"string"},"action":{"type":"string","description":"Underlying action attached to this payment (e.g. topup, buy, extend)."},"pay_status":{"type":"string","enum":["pending","paid","failed"]},"action_status":{"type":"string","enum":["pending","done","error"]},"action_error":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}}}}}
```

## The ListUserPaymentResponse object

```json
{"openapi":"3.0.3","info":{"title":"RoProxy Integration API","version":"1.0.0"},"components":{"schemas":{"ListUserPaymentResponse":{"type":"object","properties":{"total":{"type":"integer","format":"int64"},"page":{"type":"integer"},"size":{"type":"integer"},"items":{"type":"array","items":{"$ref":"#/components/schemas/ListUserPaymentItem"}}}},"ListUserPaymentItem":{"type":"object","properties":{"id":{"type":"integer"},"code":{"type":"string"},"amount":{"type":"number","format":"double"},"pay_amount":{"type":"number","format":"double"},"method":{"type":"string"},"action":{"type":"string","description":"Underlying action attached to this payment (e.g. topup, buy, extend)."},"pay_status":{"type":"string","enum":["pending","paid","failed"]},"action_status":{"type":"string","enum":["pending","done","error"]},"action_error":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}}}}}
```

## The ListUserPaymentEnvelope object

```json
{"openapi":"3.0.3","info":{"title":"RoProxy Integration API","version":"1.0.0"},"components":{"schemas":{"ListUserPaymentEnvelope":{"type":"object","properties":{"message":{"type":"string"},"data":{"$ref":"#/components/schemas/ListUserPaymentResponse"}}},"ListUserPaymentResponse":{"type":"object","properties":{"total":{"type":"integer","format":"int64"},"page":{"type":"integer"},"size":{"type":"integer"},"items":{"type":"array","items":{"$ref":"#/components/schemas/ListUserPaymentItem"}}}},"ListUserPaymentItem":{"type":"object","properties":{"id":{"type":"integer"},"code":{"type":"string"},"amount":{"type":"number","format":"double"},"pay_amount":{"type":"number","format":"double"},"method":{"type":"string"},"action":{"type":"string","description":"Underlying action attached to this payment (e.g. topup, buy, extend)."},"pay_status":{"type":"string","enum":["pending","paid","failed"]},"action_status":{"type":"string","enum":["pending","done","error"]},"action_error":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}}}}}
```

## The TopupMethod object

```json
{"openapi":"3.0.3","info":{"title":"RoProxy Integration API","version":"1.0.0"},"components":{"schemas":{"TopupMethod":{"type":"object","properties":{"method":{"type":"string"},"name":{"type":"string"}}}}}}
```

## The TopupMethodListEnvelope object

```json
{"openapi":"3.0.3","info":{"title":"RoProxy Integration API","version":"1.0.0"},"components":{"schemas":{"TopupMethodListEnvelope":{"type":"object","properties":{"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/TopupMethod"}}}},"TopupMethod":{"type":"object","properties":{"method":{"type":"string"},"name":{"type":"string"}}}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://ro-proxy.gitbook.io/integration/models.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
