# Tilopay.updateOptions()

> Actualiza parcialmente los parámetros enviados a Init() cuando cambian antes de cerrar el pago.

- kind: sdk-method
- status: stable
- sdk_version: v2
- last_verified: 2026-08-28
- url: https://www.tilopay.com/developers/sdk/reference/update-options

Actualiza valores que ya se habían enviado en [`Tilopay.Init()`](/developers/sdk/reference/init)
y que cambiaron durante el checkout — típicamente cuando el cliente edita sus datos, o cuando
selecciona SINPE Móvil o Yappy y hay que agregar información que antes no aplicaba.

<Callout type="info">
**Es un patch.** Se envían solo los campos que se quieren actualizar; no hay que reenviar todo.
</Callout>

## Qué significa "obligatorio" acá [#obligatorio]

En la lista de abajo, "obligatorio" significa que el campo **debe haberse enviado en `Init()` o
en `updateOptions()`**. Si no se envió en ninguno de los dos, el pago no puede avanzar. No
significa que haya que reenviarlo en cada llamada.

## Firma [#firma]

```js
await Tilopay.updateOptions({ /* solo los campos que cambian */ })
```

## Llamada [#llamada]

```js
const update = await Tilopay.updateOptions({
  typeDni: 1,
  dni: "0707770777",
  billToFirstName: "Ana",
  billToLastName: "Rojas",
});
```

## Parámetros [#parametros]

<Param id="update-options-typedni" name="typeDni" type="integer">
Tipo de identificación del cliente. Obligatorio para SINPE Móvil. Ver
[tipos de identificación](#tipos-de-identificacion).
</Param>

<Param id="update-options-dni" name="dni" type="string">
Número de identificación del cliente. Obligatorio para SINPE Móvil. **Acepta con guiones y sin
guiones.**
</Param>

<Param id="update-options-billtofirstname" name="billToFirstName" type="string" required>
Nombre del cliente.
</Param>

<Param id="update-options-billtolastname" name="billToLastName" type="string" required>
Apellidos del cliente.
</Param>

<Param id="update-options-billtoaddress" name="billToAddress" type="string" required>
Dirección 1 del cliente.
</Param>

<Param id="update-options-billtoaddress2" name="billToAddress2" type="string">
Dirección 2 del cliente. Opcional.
</Param>

<Param id="update-options-billtocity" name="billToCity" type="string">
Ciudad del cliente. Recomendado.
</Param>

<Param id="update-options-billtostate" name="billToState" type="string">
Provincia o estado. Recomendado.
</Param>

<Param id="update-options-billtozippostcode" name="billToZipPostCode" type="string">
Código postal. Recomendado.
</Param>

<Param id="update-options-billtocountry" name="billToCountry" type="string">
País, ISO 3166-1 alpha-2. Recomendado.
</Param>

<Param id="update-options-billtotelephone" name="billToTelephone" type="string">
Teléfono del cliente. Recomendado.
</Param>

<Param id="update-options-capture" name="capture" type="integer" required>
`0` autoriza; `1` autoriza y captura.
</Param>

<Param id="update-options-redirect" name="redirect" type="string (URL)" required>
URL donde se espera la respuesta final de la compra.
</Param>

<Param id="update-options-subscription" name="subscription" type="integer" required>
`1` si el cliente quiere guardar su tarjeta en Tilopay; `0` si no.
</Param>

<Param id="update-options-phoneyappy" name="phoneYappy" type="string">
Teléfono Yappy. Obligatorio cuando el cliente paga con Yappy.
</Param>

<Callout type="warn">
**`billToEmail` no se puede actualizar después de obtener las tarjetas guardadas.** Una vez que
`Init()` devolvió las tarjetas del cliente, el correo no se puede cambiar por este método.
</Callout>

## Tipos de identificación [#tipos-de-identificacion]

Aplica al parámetro `typeDni`, tanto acá como en `Tilopay.Init()`. En las máscaras, `#` es un
carácter **numérico** y `&` es **alfanumérico**. Las longitudes no cuentan los guiones.

| Código | Tipo | Formato | Longitud |
|---|---|---|---|
| 1 | Cédula de identidad | `0#-####-####` | 10 |
| 2 | Cédula jurídica | `3-###-######` | 10 |
| 3 | Gobierno central | `2-###-######` | 10 |
| 4 | Institución autónoma | `4-###-######` | 10 |
| 5 | Extranjero no residente | `9&&&&&&&&&&&&&&&&&&&` | 20 |
| 6 | DIMEX | `1###########` | 12 |
| 7 | DIDI | `5###########` | 12 |

## Respuesta [#respuesta]

```json
{
  "message": "Success"
}
```

<Param id="update-options-message" name="message" type="string">
`Success` cuando la actualización salió bien; la descripción del error en caso contrario.
</Param>
