---
title: "Renovar un servicio a través de la API de OVHcloud"
description: "Cómo renovar un servicio utilizando la API de OVHcloud"
url: https://docs.ovhcloud.com/es/guides/account-and-service-management/managing-billing-payments-and-services/renewing-service-via-api
lang: es
lastUpdated: 2020-05-05
---
# Renovar un servicio a través de la API de OVHcloud

## Objetivo

OVHcloud ofrece de forma nativa la renovación automática de sus soluciones, aunque también es posible renovar un servicio utilizando la API.

**Esta guía explica cómo renovar un servicio a través de la API de OVHcloud.**

## Requisitos

- Estar conectado a la [API de OVHcloud](https://eu.api.ovh.com/).
- Disponer de las [claves para conectarse a la API de OVHcloud - EN](/es/guides/manage-and-operate/api/first-steps.md).

## Procedimiento

Para utilizar la [función de renovación de la API](https://api.ovh.com/console/#/service/\{serviceId}/renew#GET), necesitará el **serviceId**. Puede obtener este dato con la función **serviceInfos**, como en el siguiente ejemplo:


🇪🇺EU▾

[GET/vps/{serviceName}/serviceInfos](https://eu.api.ovh.com/console/?section=/vps&branch=v1#get-/vps/-serviceName-/serviceInfos)

También puede ver la lista de sus servicios con la función **service**:


🇪🇺EU▾

[GET/service](https://eu.api.ovh.com/console/?section=/service&branch=v1#get-/service)

### Consultar las distintas estrategias de renovación

Para consultar las distintas estrategias de renovación disponibles para un servicio determinado, utilice la siguiente función:


🇪🇺EU▾

[GET/service/{serviceId}/renew](https://eu.api.ovh.com/console/?section=/service&branch=v1#get-/service/-serviceId-/renew)

Aparecerá una lista **RenewDescription** con dos propiedades:

- **renewPeriod**: Duración de renovación (en formato ISO 8601).
- **strategies**: Lista de posibles estrategias de renovación (**RenewStrategy**).

Una estrategia de renovación describe el precio y la lista de servicios que se pueden renovar. Por ejemplo, renovar un dominio es una estrategia distinta de renovar un dominio y su alojamiento. Las estrategias muestran todas las posibles combinaciones para una solución determinada: servicios asociados, opciones....

A continuación ofrecemos un ejemplo en Python para consultar la información de renovación:

```python
import ovh
client = ovh.Client()
     
client.get('/service/12345/renew',
includeOptions=False, // Include service's option(s) (type: boolean)
)
```

Este es un ejemplo del tipo de respuesta que se puede obtener para un servicio en un período determinado:

```json
[
  {
    "renewPeriod": "P1Y",
    "strategies": [
      {
        "services": [
          12345
        ],
        "price": {
          "value": 1.99
           },
           "servicesDetails": [
             {
               "serviceType": "Domain .ovh",
               "serviceId": 12345
           }
         ]
       },
       {
         "services": [
           67890,
           12345
           ],
           "price": {
           "value": 37.87
         },
         "servicesDetails": [
           {
             "serviceType": "Hosting Perso 2014",
             "serviceId": 67890
           },
           {
             "serviceType": "Domain .ovh",
             "serviceId": 12345
           }
         ]
       }
     ]
   }
 ]
```

Para más información sobre el formato de la respuesta, consulte la función **renew** de la API.


🇪🇺EU▾

[GET/service/{serviceId}/renew](https://eu.api.ovh.com/console/?section=/service&branch=v1#get-/service/-serviceId-/renew)

### Crear una nueva orden de pedido para la renovación

Para crear una nueva orden de pedido de renovación, deberá especificar qué servicios quiere renovar, así como el período de renovación deseado:

```python
import ovh
client = ovh.Client()
 
client.post('/service/12345/renew',
    dryRun=False, // Indicates if renew order is generated (type: boolean)
    duration='P1Y',
    services=[
        67890,
        12345
    ]
)
```

Obtendrá una respuesta como la siguiente:

```json
{
  "expirationDate": "2018-05-16T15:49:06+02:00",
  "password": "aBcD",
  "date": "2018-05-15T15:49:06+02:00",
  "priceWithTax": {
    "value": 45.44,
    "text": "45.44 €",
    "currencyCode": "EUR"
  },
 "tax": {
    "value": 7.57,
    "text": "7.57 €",
    "currencyCode": "EUR"
  },
  "pdfUrl": "https://www.ovh.com/cgi-bin/order/displayOrder.cgi?orderId=123456789&orderPassword=aBcD",
  "orderId": 123456789,
  "url": "https://www.ovh.com/cgi-bin/order/displayOrder.cgi?orderId=123456789&orderPassword=aBcD",
  "priceWithoutTax": {
    "value": 37.87,
    "text": "37.87 €",
    "currencyCode": "EUR"
  },
 "retractionDate": null
}
```

A continuación, podrá abonar la orden de pedido con la función **order** de la API:


🇪🇺EU▾

[POST/me/order/{orderId}/payWithRegisteredPaymentMean](https://eu.api.ovh.com/console/?section=/me&branch=v1#post-/me/order/-orderId-/payWithRegisteredPaymentMean)

### Ejemplo: Renovar un VPS

```python
import ovh
client = ovh.Client()

myVps = "vps112233.ovh.net"
expectedRenewPeriod = "P3M"

def checkStrategy(choices, serviceId):
     
    for choice in choices:
       if choice['renewPeriod'] != expectedRenewPeriod:
           continue
       for strategy in choice['strategies']:
           services = strategy['services']
           if len(services) == 1 and serviceId in services:
                return True
     
raise ValueError('Unable to find expected service/renewPeriod in choices')
     
     
def main():
     
    serviceId = client.get('/vps/{}/serviceInfos'.format(myVps))['serviceId']

    choices = client.get('/service/{}/renew'.format(serviceId))
    checkStrategy(choices, serviceId)

    order = client.post('/service/{}/renew'.format(serviceId),
        dryRun=False,
        duration=expectedRenewPeriod,
        services=[
           serviceId
       ]
   )

    client.post('/me/order/{}/payWithRegisteredPaymentMean'.format(order['orderId']),
        paymentMean='paypal',
        paymentMeanId=1234
    )
if __name__ == '__main__':
 
    main()
 
```

## Más información

Interactúe con nuestra [comunidad de usuarios](https://community.ovhcloud.com/).
