Modificar Formas de Pago
Permite modificar una o múltiples formas de pago existentes en el sistema mediante una única petición. Este endpoint está diseñado para operaciones de actualización en lote (batch update), permitiendo actualizar hasta 10,000 registros por petición.
Método: POST
Endpoint
Sección titulada «Endpoint»https://api.ventasremotas.com/v1/payment-methods/batch-updateEncabezados de la solicitud
Sección titulada «Encabezados de la solicitud»| Header | Valor | Descripción |
|---|---|---|
Content-Type | application/json | Indica que los datos se envían en formato JSON |
Accept | application/json | Indica que la respuesta debe estar en formato JSON |
Subscription-Key | {subscription_key} | Clave de suscripción para acceder a la API |
Authorization | Bearer {access_token} | Token de acceso obtenido del endpoint /token |
Parámetros del Cuerpo (Body)
Sección titulada «Parámetros del Cuerpo (Body)»El body debe ser un array de objetos, donde cada objeto representa una forma de pago a actualizar.
Límites
Sección titulada «Límites»| Parámetro | Valor | Descripción |
|---|---|---|
| Mínimo de items | 1 | El array no puede estar vacío |
| Máximo de items | 10,000 | Número máximo de formas de pago por petición |
El cuerpo (Body) de la solicitud debe enviarse en formato JSON y debe incluir un array con los siguientes parámetros.
| Campo | Tipo | Nulo | Restricciones | Descripción |
|---|---|---|---|---|
code | string (max 10) | No | No permite: espacio, #, %, &, *, {, }, \, :, <, >, ?, /, +, . | Código único de la forma de pago (identifica la forma de pago a actualizar) |
description | string (max 50) | No | Descripción de la forma de pago | |
orders_state | string (max 50) | Sí | Valores permitidos: APROBADO, RETENIDO, PENDIENTE, RECHAZADO | Estado por defecto que se asignará a los pedidos al utilizar esta forma de pago |
payments_state | string (max 50) | Sí | Valores permitidos: APROBADO, RETENIDO, PENDIENTE, RECHAZADO | Estado por defecto que se asignará a los recaudos al utilizar esta forma de pago |
invoices_state | string (max 50) | Sí | Valores permitidos: APROBADO, RETENIDO, PENDIENTE, RECHAZADO | Estado por defecto que se asignará a las facturas al utilizar esta forma de pago |
quotes_state | string (max 50) | Sí | Valores permitidos: APROBADO, RETENIDO, PENDIENTE, RECHAZADO | Estado por defecto que se asignará a las cotizaciones al utilizar esta forma de pago |
returns_state | string (max 50) | Sí | Valores permitidos: APROBADO, RETENIDO, PENDIENTE, RECHAZADO | Estado por defecto que se asignará a las devoluciones al utilizar esta forma de pago |
online_invoices_state | string (max 100) | Sí | Valores permitidos: APROBADO, RETENIDO, PENDIENTE, RECHAZADO | Estado por defecto para facturas con pago en línea |
online_orders_state | string (max 100) | Sí | Valores permitidos: APROBADO, RETENIDO, PENDIENTE, RECHAZADO | Estado por defecto para pedidos con pago en línea |
online_quotes_state | string (max 100) | Sí | Valores permitidos: APROBADO, RETENIDO, PENDIENTE, RECHAZADO | Estado por defecto para cotizaciones con pago en línea |
module | string (max 1) | Sí | Valores permitidos: P, R, A | Módulo en el que se podrá utilizar la forma de pago. P = Transacciones de Venta (Pedidos, Cotizaciones, Facturas y Devoluciones), R = Recaudos, A = Ambos |
method_type | string (max 1) | Sí | Valores permitidos: 0, 1, 2, 3 | Tipo de pago. 0 = Ninguna, 1 = Efectivo, 2 = Cheque, 3 = Consignación |
require_bank | string (max 1) | Sí | Valores permitidos: Y, N | Indica si se requiere obligatoriamente seleccionar un banco |
require_account_number | string (max 1) | Sí | Valores permitidos: Y, N | Indica si se requiere obligatoriamente ingresar el número de cuenta bancaria |
accumulate_payment | string (max 1) | Sí | Valores permitidos: Y, N | Indica si se debe acumular el recaudo |
state | string (max 1) | No | Valores permitidos: Y, N | Estado de la forma de pago (Activo/Inactivo) |
exclusive_for_sales | string (max 1) | Sí | Valores permitidos: F, P | Indica si la forma de pago es exclusiva para el módulo de Facturas (F) o para el módulo de Pedidos (P). Aplica si a nivel de usuario la opción “Permitir Cambiar formas de pago” está en “Uso exclusivo para venta” |
maximum_value_per_transaction | decimal (18, 0) | Sí | Valor máximo permitido por transacción en los módulos de venta (Pedido, Factura, Devolución o Cotización) | |
payment_type | string (max 1) | Sí | Valores permitidos: 0, 1, 2, 3 | Mostrar en tipo de recaudo. 0 = Ninguna, 1 = Ambos, 2 = Abono, 3 = Anticipo |
require_attachment | string (max 1) | Sí | Valores permitidos: Y, N | Indica si se requiere obligatoriamente adjuntar un archivo o comprobante |
require_receipt_number | string (max 1) | Sí | Valores permitidos: Y, N | Indica si se requiere obligatoriamente ingresar el número de comprobante |
allow_online_payment | string (max 1) | Sí | Valores permitidos: Y, N | Indica si la forma de pago permite pago en línea |
require_bank_account_origin | string (max 1) | Sí | Valores permitidos: Y, N | Indica si se requiere obligatoriamente la cuenta bancaria de origen |
require_bank_origin_cheque | string (max 1) | Sí | Valores permitidos: Y, N | Indica si se requiere obligatoriamente el banco de origen del cheque |
Formato de tipos de dato
Sección titulada «Formato de tipos de dato»- string (max N): Cadena de texto con longitud máxima de
Ncaracteres. - decimal (p, s): Número decimal donde
pes la precisión total (dígitos enteros + decimales) yses la escala (dígitos decimales).- Ejemplo:
decimal (18, 0)permite hasta 18 dígitos enteros sin decimales (ej:999999999999999999)
- Ejemplo:
Ejemplo de Solicitud
Sección titulada «Ejemplo de Solicitud»Aquí tienes un ejemplo de cómo debería quedar el cuerpo de la solicitud en formato JSON:
[ { "code": "EFE", "description": "Efectivo", "orders_state": "APROBADO", "payments_state": "APROBADO", "invoices_state": "APROBADO", "quotes_state": "APROBADO", "returns_state": "APROBADO", "online_invoices_state": null, "online_orders_state": null, "online_quotes_state": null, "module": "A", "method_type": "1", "require_bank": "N", "require_account_number": "N", "accumulate_payment": "N", "state": "Y", "exclusive_for_sales": null, "maximum_value_per_transaction": null, "payment_type": "1", "require_attachment": "N", "require_receipt_number": "N", "allow_online_payment": "N", "require_bank_account_origin": "N", "require_bank_origin_cheque": "N" }]Ejemplo de Respuesta
Sección titulada «Ejemplo de Respuesta»{ "statusCode": 200, "message": "Payment methods updated successfully"}{ "statusCode": 400, "errors": [ { "message": "Invalid JSON in request body" } ]}{ "statusCode": 415, "errors": [ { "message": "Content-Type: application/json is required" } ]}Errores globales (estructura del body)
Sección titulada «Errores globales (estructura del body)»Si el body no es un array:
{ "statusCode": 422, "errors": [ { "message": "Request body must be an array" } ]}Si el array está vacío:
{ "statusCode": 422, "errors": [ { "message": "Request body cannot be empty" } ]}Si excede el límite de 10,000 items:
{ "statusCode": 422, "errors": [ { "message": "Array exceeds maximum limit of 10000 items" } ]}Errores por item (validación de campos)
Sección titulada «Errores por item (validación de campos)»Los errores se agrupan por el índice del item en el array:
{ "statusCode": 422, "errors": [ { "index": 0, "errors": [ { "field": "code", "message": "Field is required" }, { "field": "description", "message": "Field is required" } ] }, { "index": 2, "errors": [ { "field": "code", "message": "Field exceeds maximum length of 10 characters" } ] } ]}Tipos de Errores de Validación por Campo
Sección titulada «Tipos de Errores de Validación por Campo»Errores de presencia y nulidad:
| Error | Descripción |
|---|---|
Field is required | El campo no fue enviado en el objeto (la clave no existe) |
Field cannot be null or empty | El campo fue enviado con valor null o vacío y no acepta nulos |
Unknown field | Se envió un campo que no existe en la configuración |
Item must be an object | Un elemento del array no es un objeto JSON |
Errores de tipo de dato:
| Error | Descripción |
|---|---|
Field must be a string | El valor no es una cadena de texto |
Field must be of type decimal | El valor no es un número decimal válido |
Field must be a valid decimal (e.g., 1.5, 10.25) | El formato del decimal es inválido |
Field must be a valid decimal number | El valor no es un número decimal válido (NaN, Infinity) |
Errores de longitud y precisión:
| Error | Descripción |
|---|---|
Field exceeds maximum length of X characters | La cadena excede la longitud máxima permitida |
Field exceeds maximum of X integer digits (precision: P, scale: S) | El número excede los dígitos enteros permitidos |
Errores de valores permitidos:
| Error | Descripción |
|---|---|
Value must be one of: X, Y | El valor no está en la lista de valores permitidos |
Errores de formato:
| Error | Descripción |
|---|---|
Field contains forbidden characters. The following are not allowed: space, #, %, &, *, {, }, \, :, <, >, ?, /, +, . | El campo code contiene caracteres prohibidos |
{ "statusCode": 423, "errors": [ { "message": "Resource is locked and cannot be accessed." } ]}Error de conexión a base de datos
Sección titulada «Error de conexión a base de datos»{ "statusCode": 500, "errors": [ { "message": "Error connecting to database" } ]}Error de operación en base de datos
Sección titulada «Error de operación en base de datos»{ "statusCode": 500, "errors": [ { "message": "Database operation failed" } ]}Error en Redis
Sección titulada «Error en Redis»{ "statusCode": 500, "errors": [ { "message": "Redis operation failed" } ]}Error en validaciones
Sección titulada «Error en validaciones»{ "statusCode": 500, "errors": [ { "message": "Unexpected error in the validations" } ]}Error inesperado
Sección titulada «Error inesperado»{ "statusCode": 500, "errors": [ { "message": "Unexpected error" } ]}Error del Servidor
Estos errores indican problemas internos en el servidor, la base de datos o el servicio de cache. Si persisten, contacta al equipo de soporte.