# Actualizar cobro

Modifica o habilita un cobro previamente creado. Además, al habilitar el cobro, tendrás la opción de determinar si deseas enviar una notificación al usuario.

## &#x20;Ruta

<mark style="color:purple;">`PATCH`</mark> `/v1/merchant/transaction/{external_reference}`

## **Encabezado**

| Name                                                   | Value            |
| ------------------------------------------------------ | ---------------- |
| `Content-Type`*<mark style="color:red;">**\***</mark>* | application/json |
| `x-auth-token`*<mark style="color:red;">**\***</mark>* | {token}          |

## **Cuerpo**&#x20;

Al actualizar o activar esta transacción, puedes completar o cambiar los siguientes campos. Ten en cuenta que los nuevos valores reemplazarán los anteriores, por lo que se perderá la información anterior.

{% hint style="warning" %}
Es importante destacar que los campos: *`payer_email`* &#x79;*`payer_phone`***no son modificables**. Si envías información para estos campos, se creará un nuevo usuario con los datos proporcionados.
{% endhint %}

### **Información general**

<table><thead><tr><th width="272">Name</th><th width="114">Type<select><option value="DaQG16MLyNu5" label="string" color="blue"></option><option value="j5g98HKBXFeM" label="numeric" color="blue"></option><option value="LfwEXDRYkgyC" label="date" color="blue"></option><option value="iU6FOMiECRYw" label="boolean" color="blue"></option></select></th><th>Description</th></tr></thead><tbody><tr><td><code>description</code></td><td><span data-option="DaQG16MLyNu5">string</span></td><td>Proporciona detalles clave sobre la transacción y es lo que se refleja en los comprobantes de pago.<br><br><em><mark style="color:blue;"><code>Ejemplo: Servicio de entrega</code></mark></em></td></tr><tr><td><code>currency</code></td><td><span data-option="DaQG16MLyNu5">string</span></td><td><p>Código que identifica la divisa del pago en formato ISO 4217.<br></p><p><mark style="color:green;"><code>COP | USD | MXN</code></mark><br></p></td></tr><tr><td><code>amount</code></td><td><span data-option="j5g98HKBXFeM">numeric</span></td><td>Es el código generado a partir del proceso de autenticación.<br><br><em><mark style="color:blue;"><code>Ejemplo: 54000</code></mark></em></td></tr><tr><td><code>status</code></td><td><span data-option="DaQG16MLyNu5">string</span></td><td>Es el estado de la transacción al momento de creación. <a href="../terminos-de-relevancia#tipos-de-estados">Para más información de los estados.</a><br><br><mark style="color:green;"><code>pending | unlimit | scheduled | created</code></mark></td></tr><tr><td><code>reference_one</code><br><br><code>reference_two</code><br><br><code>reference_three</code><br><br><code>reference_four</code><br><br><code>reference_five</code><br><br><code>reference_six</code><br><br><code>reference_seven</code><br><br><code>reference_eight</code></td><td><span data-option="DaQG16MLyNu5">string</span></td><td>Información adicional de la transacción (número de factura, ordenes de compra, categoría), visible para los usuarios.<br><br><em><mark style="color:blue;"><code>Ejemplo: FAC123</code></mark></em></td></tr><tr><td><code>channel</code></td><td><span data-option="DaQG16MLyNu5">string</span></td><td>Es la forma como se realiza el cobro.<br><br><mark style="color:green;"><code>whatsapp | link | email</code></mark></td></tr><tr><td><code>return_url</code></td><td><span data-option="DaQG16MLyNu5">string</span></td><td>Es la url a la que quieres llevar al usuario después de completar el pago. Aplica para pagos por PSE o con link de pago.<br><br><em><mark style="color:blue;"><code>Ejemplo:https://minegocio.com/mi-aplicacion</code></mark></em></td></tr><tr><td><code>expected_amount</code></td><td><span data-option="j5g98HKBXFeM">numeric</span></td><td>Es el valor esperado de la transacción.<br><br><em><mark style="color:blue;"><code>Ejemplo: 10000</code></mark></em></td></tr><tr><td><code>expected_date</code></td><td><span data-option="LfwEXDRYkgyC">date</span></td><td>Es la fecha estimada de finalización de la transacción.<br><br><mark style="color:green;"><code>Formato: AAAA/MM/DD</code></mark><br><br><em><mark style="color:blue;"><code>Ejemplo: 2025/01/30</code></mark></em></td></tr><tr><td><code>reminder_date</code></td><td><span data-option="LfwEXDRYkgyC">date</span></td><td>Es la fecha en la que quieres enviarle un recordatorio de pago al cliente.  <br><br><mark style="color:green;"><code>Formato: AAAA/MM/DD</code></mark><br><br><em><mark style="color:blue;"><code>Ejemplo: 2025/01/30</code></mark></em></td></tr><tr><td><code>limit_date</code></td><td><span data-option="LfwEXDRYkgyC">date</span></td><td>Es la fecha en la que vence el pago para el cliente. <em>Solo aplica cuando status es igual scheduled.</em><br><br><mark style="color:green;"><code>Formato: AAAA/MM/DD</code></mark><br><br><em><mark style="color:blue;"><code>Ejemplo: 2025/01/30</code></mark></em></td></tr><tr><td><code>merchant_id_number</code></td><td><span data-option="DaQG16MLyNu5">string</span></td><td>Número de documento del usuario que genera el cobro.<br><br><em><mark style="color:blue;"><code>Ejemplo: 100110000</code></mark></em></td></tr><tr><td><code>merchant_phone</code></td><td><span data-option="DaQG16MLyNu5">string</span></td><td>Número de celular del usuario que genera el cobro (incluir el código de área del país).<br><br><em><mark style="color:blue;"><code>Ejemplo: 573112229999</code></mark></em></td></tr><tr><td><code>merchant_email</code></td><td><span data-option="DaQG16MLyNu5">string</span></td><td>Correo del cliente al que se enviarán las notificaciones.<br><br><em><mark style="color:blue;"><code>Ejemplo: usuario@minegocio.com</code></mark></em></td></tr><tr><td><code>user_notification</code></td><td><span data-option="iU6FOMiECRYw">boolean</span></td><td><p>Define si se quiere enviar una notificación del cobro al usuario. Por defecto el valor es <em><strong>true</strong></em>.</p><p><br><br><mark style="color:green;"><code>true | false</code></mark></p></td></tr><tr><td><code>process_type</code></td><td><span data-option="DaQG16MLyNu5">string</span></td><td><p>Método que se usará para el proceso de cobro. </p><p></p><p>Según el método utilizado, el estado de la transacción se ajusta automáticamente. En el caso de cash, el estado se convierte en REVIEW, para digital en PENDING, para credit en CREDIT, para return_pending en RET_PENDING y para return_success en RET_SUCCESS. <br><br><mark style="color:green;"><code>cash | digital | credit | return | express | split | direct | external</code></mark></p></td></tr><tr><td><code>expiration</code></td><td><span data-option="iU6FOMiECRYw">boolean</span></td><td>Define si la transacción debe cancelarse al alcanzar la <strong>limit date</strong>. Por defecto, este valor es <strong>false</strong>.</td></tr><tr><td><code>attachment</code></td><td><span data-option="DaQG16MLyNu5">string</span></td><td>Adjunto que funciona como soporte del cobro.</td></tr><tr><td><code>comments</code></td><td><span data-option="DaQG16MLyNu5">string</span></td><td>Comentario opcional para tener como referencia al consultar las transacciones en el dashboard.</td></tr></tbody></table>

{% hint style="info" %}
Si el campo *user\_notification* está establecido como true, **se enviará la notificación solo si el campo channel está configurado como whatsapp o email**. Además, cuando el canal es whatsapp, el campo payer.phone es obligatorio, y cuando el canal es email, el campo payer.email es obligatorio.
{% endhint %}

### **Información cliente/pagador**

<table><thead><tr><th width="249">Name</th><th width="113">Type<select><option value="tW4OOsURXuNZ" label="string" color="blue"></option></select></th><th>Description</th></tr></thead><tbody><tr><td><code>payer.phone</code></td><td><span data-option="tW4OOsURXuNZ">string</span></td><td><p>Número de celular del cliente (incluir el código de área del país).  </p><p></p><p><em>Obligatorio en caso del que el channel sea <strong>whatsapp</strong> y el status no sea <strong>created</strong>.</em><br><br><em><mark style="color:blue;"><code>Ejemplo: 573112223333</code></mark></em></p></td></tr><tr><td><code>payer.email</code></td><td><span data-option="tW4OOsURXuNZ">string</span></td><td>Correo del cliente al que se enviarán las notificaciones.<br><br><em>Obligatorio en caso del que el channel sea <strong>email</strong> y el status no sea <strong>created</strong>.</em><br><br><em><mark style="color:blue;"><code>Ejemplo: cliente@minegocio.com</code></mark></em></td></tr><tr><td><code>payer.user_id_type</code></td><td><span data-option="tW4OOsURXuNZ">string</span></td><td>Tipo de documento de identificación del cliente.<br><br><mark style="color:green;"><code>CC | CE | NIT | PASAPORTE | DNI | EIN</code></mark></td></tr><tr><td><code>payer.user_id_number</code></td><td><span data-option="tW4OOsURXuNZ">string</span></td><td>Número del documento de identificación del cliente.<br><br><em><mark style="color:blue;"><code>Ejemplo: 11119999</code></mark></em></td></tr><tr><td><code>payer.first_name</code></td><td><span data-option="tW4OOsURXuNZ">string</span></td><td>Primer nombre del cliente, el cual se usa para la validación del número de documento.<br><br><em><mark style="color:blue;"><code>Ejemplo: Andrés</code></mark></em></td></tr></tbody></table>

{% hint style="warning" %}
Los campos: *`payer.user_id_type`*, *`payer.user_id_number`* y *`payer.first_name`* deben completarse de manera conjunta en la API. Esto significa que si se proporciona uno de estos campos, los otros dos también deben ser proporcionados. Son interdependientes y necesarios para garantizar la integridad de la información del usuario en la plataforma.
{% endhint %}

### Pagos en devolución

Este objeto es obligatorio cuando el process type sea **return**.

<table><thead><tr><th width="249">Name</th><th width="113">Type<select><option value="rRB3kMFO5APd" label="string" color="blue"></option></select></th><th>Description</th></tr></thead><tbody><tr><td><mark style="color:orange;"><code>return.type</code>*</mark></td><td><span data-option="rRB3kMFO5APd">string</span></td><td>Tipo de devolución. Si se selecciona <strong>pending</strong>, el estado se actualiza a <strong>RET_PENDING</strong> y debe ser aprobado manualmente desde el dashboard para cambiar a <strong>RET_SUCCESS</strong>. En cambio, si se selecciona <strong>success</strong>, el estado se establece directamente como <strong>RET_SUCCESS</strong>.<br><br><mark style="color:green;"><code>pending | success</code></mark></td></tr><tr><td><mark style="color:orange;"><code>return.reason</code>*</mark></td><td><span data-option="rRB3kMFO5APd">string</span></td><td>Razón de la devolución.<br><br><em><mark style="color:blue;"><code>Ejemplo: No se encontró el cliente</code></mark></em></td></tr></tbody></table>

### Pagos express

Este objeto es obligatorio cuando el process type sea **express**.

<table><thead><tr><th width="249">Name</th><th width="113">Type<select><option value="rRB3kMFO5APd" label="string" color="blue"></option></select></th><th>Description</th></tr></thead><tbody><tr><td><mark style="color:yellow;"><code>express.method</code>*</mark></td><td><span data-option="rRB3kMFO5APd">string</span></td><td><p>Método de pago. En el caso de <strong>qr</strong>, la respuesta incluirá el enlace de la imagen QR en el campo <strong>qr_url</strong>.</p><p><br><mark style="color:green;"><code>nequi| daviplata | qr</code></mark></p></td></tr><tr><td><mark style="color:yellow;"><code>express.reference</code></mark></td><td><span data-option="rRB3kMFO5APd">string</span></td><td><p>Identificador del usuario al que se le realizará el cobro. Para <strong>Nequi</strong>, debe ser el número de celular; mientras que para <strong>Daviplata</strong>, debe ser el número de documento con el que el usuario se registró en la aplicación.</p><p></p><p><em>Obligatorio en caso del que el method sea <strong>nequi</strong> o <strong>daviplata</strong>.</em><br><br><em><mark style="color:blue;"><code>Ejemplo: No se encontró el cliente</code></mark></em></p></td></tr></tbody></table>

### Pagos externos

Este objeto es obligatorio cuando el process type sea **external**.

<table><thead><tr><th width="249">Name</th><th width="113">Type<select><option value="rRB3kMFO5APd" label="string" color="blue"></option></select></th><th>Description</th></tr></thead><tbody><tr><td><mark style="color:red;"><code>external.reason</code>*</mark></td><td><span data-option="rRB3kMFO5APd">string</span></td><td><p>Razón por el cual es un pago externo.</p><p><br><em><mark style="color:blue;"><code>Ejemplo: Pago directo</code></mark></em></p></td></tr></tbody></table>

### Pagos divididos

Array de objetos, es obligatorio cuando el process type sea **split**. El objeto se compone de la siguiente manera:

<table><thead><tr><th width="249">Name</th><th width="113">Type<select><option value="rRB3kMFO5APd" label="string" color="blue"></option><option value="bx1LW0Kmlvn7" label="objeto" color="blue"></option><option value="B9BHLoQ9vYyR" label="numeric" color="blue"></option></select></th><th>Description</th></tr></thead><tbody><tr><td><mark style="color:purple;"><code>split[].amount</code>*</mark></td><td><span data-option="B9BHLoQ9vYyR">numeric</span></td><td><p>Fracción o monto del pago que se va a realizar.</p><p><br><em><mark style="color:blue;"><code>Ejemplo: 5000</code></mark></em></p></td></tr><tr><td><mark style="color:purple;"><code>split[].payment_method</code>*</mark></td><td><span data-option="rRB3kMFO5APd">string</span></td><td><p>Medio de pago a través del cual se realizará la fracción del pago.</p><p><br><mark style="color:green;"><code>cash | digital | credit | return | express | direct | external</code></mark> </p></td></tr><tr><td><mark style="color:purple;"><code>split[].return</code></mark></td><td><span data-option="bx1LW0Kmlvn7">objeto</span></td><td>El objeto se compone de la misma manera que return: <a data-mention href="#pagos-en-devolucion">#pagos-en-devolucion</a><br><br><em>Obligatorio en caso del que el payment_method sea <strong>return</strong>.</em></td></tr><tr><td><mark style="color:purple;"><code>split[].express</code></mark></td><td><span data-option="bx1LW0Kmlvn7">objeto</span></td><td>El objeto se compone de la misma manera que express: <a data-mention href="#pagos-express">#pagos-express</a><br><br><em>Obligatorio en caso del que el payment_method sea <strong>express</strong>.</em></td></tr><tr><td><mark style="color:purple;"><code>split[].external</code></mark></td><td><span data-option="bx1LW0Kmlvn7">objeto</span></td><td>El objeto se compone de la misma manera que external: <a data-mention href="#pagos-externos">#pagos-externos</a><br><br><em>Obligatorio en caso del que el payment_method sea <strong>external</strong>.</em></td></tr></tbody></table>

### Información de afiliados

<table><thead><tr><th width="249">Name</th><th width="113">Type<select><option value="rRB3kMFO5APd" label="string" color="blue"></option></select></th><th>Description</th></tr></thead><tbody><tr><td><mark style="color:orange;"><code>affiliate.id_type</code></mark></td><td><span data-option="rRB3kMFO5APd">string</span></td><td>Tipo de documento de identificación del afiliado.<br><br><mark style="color:green;"><code>CC | CE | NIT | PASAPORTE | DNI | EIN</code></mark></td></tr><tr><td><mark style="color:orange;"><code>affiliate.id_number</code></mark></td><td><span data-option="rRB3kMFO5APd">string</span></td><td>Número del documento de identificación del afiliado.<br><br><em><mark style="color:blue;"><code>Ejemplo: 11119999</code></mark></em></td></tr></tbody></table>

### **Información de facturación**

<table><thead><tr><th width="249">Name</th><th width="113">Type<select><option value="CRQXJNwgXiB2" label="string" color="blue"></option></select></th><th>Description</th></tr></thead><tbody><tr><td><mark style="color:purple;"><code>invoice.provider</code></mark></td><td><span data-option="CRQXJNwgXiB2">string</span></td><td><p>Agrega el software contable con el que realizaste la integración.</p><p></p><p><em>Obligatorio para el objeto <strong>invoice</strong>.</em><br><br><mark style="color:green;"><code>alegra | siigo</code></mark></p></td></tr><tr><td><mark style="color:purple;"><code>invoice.type</code></mark></td><td><span data-option="CRQXJNwgXiB2">string</span></td><td><p>Elige el tipo de vinculación que quieres realizar para esta transacción con tu software contable.</p><p></p><p><em>Obligatorio para el objeto <strong>invoice</strong>.</em><br><br><mark style="color:green;"><code>link | balance | create</code></mark></p></td></tr><tr><td><mark style="color:purple;"><code>invoice.id</code></mark></td><td><span data-option="CRQXJNwgXiB2">string</span></td><td>Corresponde al identificador de la factura o el cliente según el tipo de vinculación definido.<br><br><em><mark style="color:blue;"><code>Ejemplo: FV-2-1234 | GR1234 |</code></mark></em><mark style="color:blue;"><code> </code><code>41515fb0-d815-40ac-86c0-4081eb642fa2</code></mark></td></tr><tr><td><mark style="color:purple;"><code>invoice.retentions</code></mark></td><td><span data-option="CRQXJNwgXiB2">string</span></td><td>Solo si la vinculación es <code>create</code>, agregar las retenciones aplicables para la creación de la factura. <strong>Tener en cuenta que el valor de la factura será el valor de la transacción mas las retenciones definidas.</strong><br><br><mark style="color:green;"><code>Formato: enviar las retenciones separadas por comas</code></mark><br><br><em><mark style="color:blue;"><code>Ejemplo: [1,2,3]</code></mark></em></td></tr></tbody></table>

### **Información de recargos**

Array de objetos, para aplicar recargos:

<table><thead><tr><th width="252.20001220703125">Name</th><th width="113">Type<select><option value="qBeT2Xqfqzst" label="string" color="blue"></option><option value="fqKgpLHMeRsK" label="array" color="blue"></option><option value="DbIS6pyjqlWy" label="numeric" color="blue"></option><option value="EjFL03h7GPMG" label="date" color="blue"></option><option value="9Yt4blEICw5U" label="boolean" color="blue"></option></select></th><th>Description</th></tr></thead><tbody><tr><td><mark style="color:yellow;"><code>late_fees[].action</code>*</mark></td><td><span data-option="DbIS6pyjqlWy">numeric</span></td><td><p>Valor correspondiente al recargo.<br><br><em>Obligatorio en caso del que el condition_type sea <strong>fixed</strong>.</em><br></p><p><mark style="color:green;"><code>add | edit | delete</code></mark></p></td></tr><tr><td><mark style="color:yellow;"><code>late_fees[].id</code></mark></td><td><span data-option="qBeT2Xqfqzst">string</span></td><td><p>Identificador que permite ubicar o referenciar el recargo que se va a actualizar.</p><p></p><p><em>Obligatorio si el action es <strong>edit</strong> o <strong>delete</strong>.</em><br><br><em><mark style="color:blue;"><code>Ejemplo: a1b2c3</code></mark></em></p></td></tr><tr><td><mark style="color:yellow;"><code>late_fees[].date</code></mark></td><td><span data-option="qBeT2Xqfqzst">string</span></td><td><p>Fecha correspondiente al recargo.</p><p></p><p><em>Obligatorio si el action es <strong>add</strong>.</em><br><br><mark style="color:green;"><code>Formato: AAAA/MM/DD</code></mark><br><br><em><mark style="color:blue;"><code>Ejemplo: 2025/01/30</code></mark></em></p></td></tr><tr><td><mark style="color:yellow;"><code>late_fees[].value</code></mark></td><td><span data-option="qBeT2Xqfqzst">string</span></td><td><p>Valor al cual se va actualizar el monto.</p><p><br><em>Obligatorio si el action es <strong>add</strong>.</em></p><p><br><em><mark style="color:blue;"><code>Ejemplo: 1234.5</code></mark></em></p></td></tr><tr><td><mark style="color:yellow;"><code>late_fees[].reminder</code></mark></td><td><span data-option="qBeT2Xqfqzst">string</span></td><td>En caso de que se desee recibir una notificación en el momento en que se aplique el incremento.</td></tr><tr><td><mark style="color:yellow;"><code>late_fees[].reminder_template</code></mark></td><td><span data-option="qBeT2Xqfqzst">string</span></td><td>Nombre del mensaje que se le envía para dicho recargo.<br><br><em>Obligatorio en caso del que el reminder sea <strong>true</strong>.</em></td></tr><tr><td><mark style="color:yellow;"><code>late_fees[].reminder_channel</code></mark></td><td><span data-option="fqKgpLHMeRsK">array</span></td><td>Canal por el cual se le va enviar la notificación.<br><br><em>Obligatorio en caso del que el reminder sea <strong>true</strong>.</em><br><br><mark style="color:green;"><code>whatsapp | email</code></mark></td></tr></tbody></table>

### **Información de pagos anticipados**

Array de objetos, para aplicar pagos anticipados:

<table><thead><tr><th width="252.20001220703125">Name</th><th width="113">Type<select><option value="qBeT2Xqfqzst" label="string" color="blue"></option><option value="fqKgpLHMeRsK" label="array" color="blue"></option><option value="DbIS6pyjqlWy" label="numeric" color="blue"></option><option value="EjFL03h7GPMG" label="date" color="blue"></option><option value="9Yt4blEICw5U" label="boolean" color="blue"></option></select></th><th>Description</th></tr></thead><tbody><tr><td><mark style="color:orange;"><code>advance_payment[].action</code>*</mark></td><td><span data-option="DbIS6pyjqlWy">numeric</span></td><td><p>Valor correspondiente al descuento.<br><br><em>Obligatorio en caso del que el condition_type sea <strong>fixed</strong>.</em><br></p><p><mark style="color:green;"><code>add | edit | delete</code></mark></p></td></tr><tr><td><mark style="color:orange;"><code>advance_payment[].id</code></mark></td><td><span data-option="qBeT2Xqfqzst">string</span></td><td><p>Identificador que permite ubicar o referenciar el descuento que se va a actualizar.</p><p></p><p><em>Obligatorio si el action es <strong>edit</strong> o <strong>delete</strong>.</em><br><br><em><mark style="color:blue;"><code>Ejemplo: a1b2c3</code></mark></em></p></td></tr><tr><td><mark style="color:orange;"><code>advance_payment[].date</code></mark></td><td><span data-option="qBeT2Xqfqzst">string</span></td><td><p>Fecha correspondiente al descuento.</p><p></p><p><em>Obligatorio si el action es <strong>add</strong>.</em><br><br><mark style="color:green;"><code>Formato: AAAA/MM/DD</code></mark><br><br><em><mark style="color:blue;"><code>Ejemplo: 2025/01/30</code></mark></em></p></td></tr><tr><td><mark style="color:orange;"><code>advance_payment[].value</code></mark></td><td><span data-option="qBeT2Xqfqzst">string</span></td><td><p>Valor al cual se va actualizar el monto.</p><p><br><em>Obligatorio si el action es <strong>add</strong>.</em></p><p><br><em><mark style="color:blue;"><code>Ejemplo: 1234.5</code></mark></em></p></td></tr><tr><td><mark style="color:orange;"><code>advance_payment[].reminder</code></mark></td><td><span data-option="qBeT2Xqfqzst">string</span></td><td>En caso de que se desee recibir una notificación en el momento en que se aplique el incentivo.</td></tr><tr><td><mark style="color:orange;"><code>advance_payment[].reminder_template</code></mark></td><td><span data-option="qBeT2Xqfqzst">string</span></td><td>Nombre del mensaje que se le envía para dicho incentivo.<br><br><em>Obligatorio en caso del que el reminder sea <strong>true</strong>.</em></td></tr><tr><td><mark style="color:orange;"><code>advance_payment[].reminder_channel</code></mark></td><td><span data-option="fqKgpLHMeRsK">array</span></td><td>Canal por el cual se le va enviar la notificación.<br><br><em>Obligatorio en caso del que el reminder sea <strong>true</strong>.</em><br><br><mark style="color:green;"><code>whatsapp | email</code></mark></td></tr></tbody></table>

## **Respuesta**

{% tabs %}
{% tab title="200" %}

```json
{
    "message": "Succesfully Updated",
    "external_reference": "90d085",
    "link": "https://pago.qentaz.com/prueba/t/90d085",
    "created_at": "2024-08-26T20:46:25+00:00"
}
```

{% endtab %}

{% tab title="400" %}

```json
{
    "error": "The transaction cannot be modified because it is in an unmodifiable state (REVIEW). The transaction status must be one of the following: PENDING, UNLIMIT, PROCESSING, CREATED, SCHEDULED, OVERDUE."
}
```

{% endtab %}

{% tab title="401" %}

```bash
{
    "status": "unauthorized",
    "code": "Q103",
    "error": "El x-auth-token se encuentra vencido. Por favor genera un nuevo token y reintenta de nuevo el cobro."
}
```

{% endtab %}
{% endtabs %}

## Ejemplo

{% tabs %}
{% tab title="cURL" %}

```bash
curl --location --request PATCH '{{base_url}}/v1/merchant/transaction/{{reference}}' \
--header 'x-auth-token: token' \
--data '{
    "amount": 2000,
    "merchant_phone": "573112222222",
    "status": "CREATED",
    "channel": "WHATSAPP",
    "expected_amount": 2000,
    "expected_date": "10/03/2024",
    "reference_one": "REFERENCIA",
    "description": "Descripción de la transacción",
    "process_type": "CASH",
    "user_notification": false,
    "payer": {
        "phone": "573112222222"
    },
    "affiliate": {
        "id_type": "CC",
        "id_number": "34000000"
    }
}'
```

{% endtab %}

{% tab title="NodeJS (Axios)" %}

```javascript
const axios = require('axios');
let data = JSON.stringify({
  "amount": 2000,
  "merchant_phone": "573112222222",
  "status": "CREATED",
  "channel": "WHATSAPP",
  "expected_amount": 2000,
  "expected_date": "10/03/2024",
  "reference_one": "REFERENCIA",
  "description": "Descripción de la transacción",
  "process_type": "CASH",
  "user_notification": false,
  "payer": {
    "phone": "573112222222"
  },
  "affiliate": {
    "id_type": "CC",
    "id_number": "34000000"
  }
});

let config = {
  method: 'patch',
  maxBodyLength: Infinity,
  url: `${base_url}/v1/merchant/transaction/${reference}`,
  headers: { 
    'x-auth-token': token //Agregar el token
  },
  data : data
};

axios.request(config)
.then((response) => {
  console.log(JSON.stringify(response.data));
})
.catch((error) => {
  console.log(error);
});

```

{% endtab %}

{% tab title="Python" %}

```python
import requests
import json

url = f"{base_url}/v1/merchant/transaction/{reference}" #Agregar base_url y reference

payload = json.dumps({
  "amount": 2000,
  "merchant_phone": "573112222222",
  "status": "CREATED",
  "channel": "WHATSAPP",
  "expected_amount": 2000,
  "expected_date": "10/03/2024",
  "reference_one": "REFERENCIA",
  "description": "Descripción de la transacción",
  "process_type": "CASH",
  "user_notification": False,
  "payer": {
    "phone": "573112222222"
  },
  "affiliate": {
    "id_type": "CC",
    "id_number": "34000000"
  }
})
headers = {
  'x-auth-token': token #Agregar token
}

response = requests.request("PATCH", url, headers=headers, data=payload)

print(response.text)

```

{% endtab %}
{% endtabs %}

***

## &#x20;Caso de uso&#x20;

<details>

<summary>Actualizar cobro con notificación en WhatsApp (con datos de usuario)</summary>

```bash
curl --location --request PATCH '{base_url}/v1/merchant/transaction/be83f3' \
--header 'x-auth-token: {token}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "amount": 20900,
    "currency": "COP",
    "description": "Servicio de consultoría",
    "reference_one": "Mayo 2023",
    "reference_two": "FT1235",
    "reference_three": "Prueba 2",
    "reference_four": "C3D4",
    "channel": "whatsapp",
    "status": "pending",
    "merchant_phone": 573999999999,
    "return_url": "https://minegocio.com/resultado",

    "payer": {
        "first_name": "Prueba",
        "user_id_type": "CC",
        "user_id_number": "99999999"
    },
    
    "user_notification": true
}'
```

</details>

<details>

<summary>Actualizar cobro a programado con notificación en correo (sin datos de usuario)</summary>

```bash
curl --location --request PATCH '{base_url}/v1/merchant/transaction/be83f3' \
--header 'x-auth-token: {token}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "amount": 34600,
    "currency": "COP",
    "description": "Servicio de consultoría",
    "reference_one": "Junio 2023",
    "reference_two": "FT4679",
    "reference_three": "Test",
    "reference_four": "E5F6",
    "channel": "email",
    "status": "scheduled",
    "merchant_phone": 573999999999,
    "return_url": "https://minegocio.com/resultado",
    
    "reminder_date": "10/31/2023",
    "limit_date": "11/05/2023",
    
    "user_notification": true
}'
```

</details>

***
