Formularios personalizables. Registra tanto los formularios de pago como los formularios de pruebas de entrega.
El atributo name
contiene el nombre del método de pago a mostrar en la lista.
Si el formulario está desactivado, tendrá disabled = true
.
El atributo icon
es un campo numérico que indica el icono a mostrar. La lista de iconos es fija y está previamente
configurada.
currency
contiene la información de la moneda a usar para el pago. Este objeto contiene dos atributos adicionales,
tax_flat_e2
y tax_percent
, que contienen información de las tarifas adicionales a cobrar por usar el método de
pago. Si cualquiera de esos valores es mayor a cero, se debe mostrar una advertencia indicando que se cobrará una
tarifa adicional. Por ejemplo: Si tax_flat_e2 = 50
se mostrara algo como: "Al seleccionar Pago Móvil, se cobrará
un impuesto adicional de $0.50" (texto de ejemplo). Si tax_percent = 0.05
se mostrará "impuesto de 5%" o si ambos
campos tienen valor, por ejemplo, tax_flat_e2 = 30; tax_percent = 0.03
se cobrará "3% + $0.30"
Por otra parte, el campo label_url
muestra una imagen grande en el formulario. Útil para mostrar QR.
Podría ser null
.
El atributo data
contiene los parámetros a mostrar del formulario. Se trata de un array de objetos que contienen
un único atributo. Según el nombre de ese atributo, se debe mostrar un componente diferente en el formulario:
text
: Se trata de un texto a mostrar. No se requiere respuesta del usuario. Útil para mostrar información como
el número de pago móvil o cuenta bancaria para el depósito.
question
: Título a mostrar.content
: Texto descriptivo.input
: Se trata de un campo de entrada de texto convencional.
question
: Título de la pregunta.required
: Indica si es obligatorio para el servidor. Se debe mostrar un asterisco rojo y validar que no esté
vacío al momento de enviar.hint
: El texto de ayuda a mostrar en el campo (placeholder).regex
: Regla para validar el campo. Se debe ignorar el primer y último caracter del regex para usar en JS.type
: El tipo de entrada. Podría ser: text
(normal), text_area
(multilinea), date
(calendario),
numeric
(sólo números), bank
(mostrar icono de banco).key
: Booleano que indica que el campo contiene el campo clave de identificador del pago. Se utiliza para la
validación de pagos automatizada.boolean
: Se trata de un check. Útil para aceptar términos.
question
: Título a mostrar.required
: Indica si es obligatorio estar checked == true
para enviar el formulario.option
: Campo de selección de opciones. Se trata de un Select de elección simple. Útil para elegir el banco o
el tipo de DNI (V, E, J, etc).
question
: Título de la pregunta.required
: Indica si es obligatorio para el servidor. En cualquier caso se debe inicializar con un campo en
blanco al estilo "Seleccione una opción: " y NO tener la primera opción por defecto. En caso de required == true
se
debe obligar a elegir una opción para enviar el formulario.choices
: un array
de string con las distintas opciones a elegir,type
: puede ser text
y bank
text_button
: Botón de texto informativo, no hay que responder en el formulario (es informativo). Se muestra un
título igualmente, una descripción y un botón debajo. Útil para mostrar información muy extensa.
question
: Título a mostrar.content
: Texto descriptivo.button_text
: Texto a mostrar en el botón. Por ejemplo: "Ver cuentas bancarias".button_content
: Contenido a mostrar (en un diálogo) cuando presionas el botón. Como título del diálogo se puede
usar el button_text
y el contenido es button_content
.file
: Campo para subir un archivo.
question
: Título a mostrar.required
: Indica si es obligatorio para el servidor.allowed_types
: Array de tipos de archivos admitidos.type
: Indica si es un archivo cualquiera file
o imagen image
.{
"id": 185,
"type": 4,
"data": [
{
"text": {
"question": "Usuario del comercio",
"content": ".Zen DEV"
}
},
{
"input": {
"question": "¿Quién envia el pago?",
"required": false,
"hint": "Coloca tu usuario de Reserve",
"regex": "^[a-zA-Z0-9_]*^",
"type": "text"
}
}
],
"name": "Reserve",
"disabled": true,
"created_at": "2021-05-19 16:59:16",
"updated_at": "2023-07-07 12:58:57",
"company_id": 116,
"icon": 7,
"currency": {
"iso": "USD",
"tax_flat_e2": 0,
"tax_percent": 0,
"id": 475,
"enabled": true,
"symbol": "$",
"conversion_factor": 1,
"related_iso": "USD",
"decimals_count": 2,
"format": "0.00$",
"decimal_point": ".",
"use_thousands_separator": true,
"thousands_separator": ",",
"is_local": true,
"is_international": true,
"created_at": "2021-07-15 19:16:41",
"updated_at": "2024-02-22 13:34:01",
"company_id": 116,
"is_custom": true,
"branch_id": 37,
"auto_sync": false,
"auto_sync_provider": "legacy",
"use_conversion": false,
"available": true,
"related_iso_expected": "USD",
"related_iso_error": false
},
"branch_id": 37,
"label_url": "http://127.0.0.1:8000/storage/companies/69/form/form_label_185_1621458192.jpg",
"internal_name": null
}
Atributo | Tipo | Descripción |
---|---|---|
id |
int |
- |
type |
int |
- |
data |
array |
- |
name |
string\|null |
- |
disabled |
bool |
- |
created_at |
datetime\|null |
- |
updated_at |
datetime\|null |
- |
company_id |
int |
- |
icon |
int |
- |
currency |
array |
- |
branch_id |
int\|null |
- |
label_url |
string\|null |
- |
Store a newly created resource in storage.
Método | URI | Cabeceras |
---|---|---|
PUT | /companies/{company}/branches/{branchId}/forms/{form_type} |
Authorization |
{
"name": "string|max:32",
"internal_name": "nullable|string|in:bancamiga_pm,bancamiga_ci",
"icon": "integer",
"currency": {
"iso": "required_with:currency|min:3|max:8|string",
"tax_percent": "required_with:currency|numeric|between:0.0000,1.0000",
"tax_flat_e2": "required_with:currency|integer|min:0"
},
"branch_id": "integer|min:1",
"form": [
{
"boolean": {
"question": "required_with:form.*.boolean|max:64|string",
"required": "required_with:form.*.boolean|boolean"
},
"option": {
"question": "required_with:form.*.option|max:64|string",
"required": "required_with:form.*.option|boolean",
"choices": [
"required_with:form.*.option.choices|max:48|string"
],
"type": "string|in:text,date,bank"
},
"input": {
"question": "required_with:form.*.input|max:64|string",
"hint": "max:32|string",
"required": "required_with:form.*.input|boolean",
"regex": "max:255|pattern",
"type": "string|in:text,text_area,date,numeric,bank",
"key": "boolean"
},
"text": {
"question": "required_with:form.*.text|max:64|string",
"content": "required_with:form.*.text|max:512|string"
},
"text_button": {
"question": "required_with:form.*.text_button|max:64|string",
"content": "required_with:form.*.text_button|max:255|string",
"button_text": "required_with:form.*.text_button|max:48|string",
"button_content": "required_with:form.*.text_button|max:1024|string"
},
"file": {
"question": "required_with:form.*.file|string",
"required": "required_with:form.*.file|boolean",
"allowed_types": [
"required_with:form.*.file.allowed_types|max:128|string"
],
"type": "string|in:file,image"
}
}
]
}
Store a newly created resource in storage.
Método | URI | Cabeceras |
---|---|---|
PUT | /companies/{company}/branches/{branchId}/forms/{form_type} |
Authorization |
{
"name": "string|max:32",
"internal_name": "nullable|string|in:bancamiga_pm,bancamiga_ci",
"icon": "integer",
"currency": {
"iso": "required_with:currency|min:3|max:8|string",
"tax_percent": "required_with:currency|numeric|between:0.0000,1.0000",
"tax_flat_e2": "required_with:currency|integer|min:0"
},
"branch_id": "integer|min:1",
"form": [
{
"boolean": {
"question": "required_with:form.*.boolean|max:64|string",
"required": "required_with:form.*.boolean|boolean"
},
"option": {
"question": "required_with:form.*.option|max:64|string",
"required": "required_with:form.*.option|boolean",
"choices": [
"required_with:form.*.option.choices|max:48|string"
],
"type": "string|in:text,date,bank"
},
"input": {
"question": "required_with:form.*.input|max:64|string",
"hint": "max:32|string",
"required": "required_with:form.*.input|boolean",
"regex": "max:255|pattern",
"type": "string|in:text,text_area,date,numeric,bank",
"key": "boolean"
},
"text": {
"question": "required_with:form.*.text|max:64|string",
"content": "required_with:form.*.text|max:512|string"
},
"text_button": {
"question": "required_with:form.*.text_button|max:64|string",
"content": "required_with:form.*.text_button|max:255|string",
"button_text": "required_with:form.*.text_button|max:48|string",
"button_content": "required_with:form.*.text_button|max:1024|string"
},
"file": {
"question": "required_with:form.*.file|string",
"required": "required_with:form.*.file|boolean",
"allowed_types": [
"required_with:form.*.file.allowed_types|max:128|string"
],
"type": "string|in:file,image"
}
}
]
}
Muestra los formularios de pago de la Company
Sólo aplica si la Company tiene is_marketplace = true
Método | URI | Cabeceras |
---|---|---|
GET | /companies/{company}/branches/{branchId}/forms |
Authorization |
Muestra los formularios de pago de la Company
Sólo aplica si la Company tiene is_marketplace = true
Método | URI | Cabeceras |
---|---|---|
GET | /companies/{company}/branches/{branchId}/forms |
Authorization |
Display the specified resource.
Método | URI | Cabeceras |
---|---|---|
GET | /companies/{company}/branches/{branchId}/forms/{form_type} |
Authorization |
Display the specified resource.
Método | URI | Cabeceras |
---|---|---|
GET | /companies/{company}/branches/{branchId}/forms/{form_type} |
Authorization |
Remove the specified resource from storage.
Método | URI | Cabeceras |
---|---|---|
DELETE | /companies/{company}/branches/{branchId}/forms/{form_type} |
Authorization |
Remove the specified resource from storage.
Método | URI | Cabeceras |
---|---|---|
DELETE | /companies/{company}/branches/{branchId}/forms/{form_type} |
Authorization |
Display the specified resource.
Método | URI | Cabeceras |
---|---|---|
GET | /companies/{company}/branches/{branchId}/forms/{form_type}/get-tax |
Authorization |
{
"order_e2": "required|integer|min:0",
"tip_e2": "required|integer|min:0",
"currency_to_use": "string|min:3|max:8",
"branch_id": "nullable|integer"
}
Store a newly created resource in storage.
Método | URI | Cabeceras |
---|---|---|
POST | /companies/{company}/branches/{branchId}/forms/payment |
Authorization |
{
"name": "string|max:32",
"internal_name": "nullable|string|in:bancamiga_pm,bancamiga_ci",
"icon": "integer",
"currency": {
"iso": "required_with:currency|min:3|max:8|string",
"tax_percent": "required_with:currency|numeric|between:0.0000,1.0000",
"tax_flat_e2": "required_with:currency|integer|min:0"
},
"branch_id": "integer|min:1",
"form": [
{
"boolean": {
"question": "required_with:form.*.boolean|max:64|string",
"required": "required_with:form.*.boolean|boolean"
},
"option": {
"question": "required_with:form.*.option|max:64|string",
"required": "required_with:form.*.option|boolean",
"choices": [
"required_with:form.*.option.choices|max:48|string"
],
"type": "string|in:text,date,bank"
},
"input": {
"question": "required_with:form.*.input|max:64|string",
"hint": "max:32|string",
"required": "required_with:form.*.input|boolean",
"regex": "max:255|pattern",
"type": "string|in:text,text_area,date,numeric,bank",
"key": "boolean"
},
"text": {
"question": "required_with:form.*.text|max:64|string",
"content": "required_with:form.*.text|max:512|string"
},
"text_button": {
"question": "required_with:form.*.text_button|max:64|string",
"content": "required_with:form.*.text_button|max:255|string",
"button_text": "required_with:form.*.text_button|max:48|string",
"button_content": "required_with:form.*.text_button|max:1024|string"
},
"file": {
"question": "required_with:form.*.file|string",
"required": "required_with:form.*.file|boolean",
"allowed_types": [
"required_with:form.*.file.allowed_types|max:128|string"
],
"type": "string|in:file,image"
}
}
]
}
Enables the specified resource
Método | URI | Cabeceras |
---|---|---|
PATCH | /companies/{company}/branches/{branchId}/forms/{form_type}/enable |
Authorization |
Disables the specified resource
Método | URI | Cabeceras |
---|---|---|
PATCH | /companies/{company}/branches/{branchId}/forms/{form_type}/disable |
Authorization |
Display the specified resource.
Método | URI | Cabeceras |
---|---|---|
GET | /companies/{company}/branches/{branchId}/forms/{form_type}/get-tax |
Authorization |
{
"order_e2": "required|integer|min:0",
"tip_e2": "required|integer|min:0",
"currency_to_use": "string|min:3|max:8",
"branch_id": "nullable|integer"
}
Store a newly created resource in storage.
Método | URI | Cabeceras |
---|---|---|
POST | /companies/{company}/branches/{branchId}/forms/payment |
Authorization |
{
"name": "string|max:32",
"internal_name": "nullable|string|in:bancamiga_pm,bancamiga_ci",
"icon": "integer",
"currency": {
"iso": "required_with:currency|min:3|max:8|string",
"tax_percent": "required_with:currency|numeric|between:0.0000,1.0000",
"tax_flat_e2": "required_with:currency|integer|min:0"
},
"branch_id": "integer|min:1",
"form": [
{
"boolean": {
"question": "required_with:form.*.boolean|max:64|string",
"required": "required_with:form.*.boolean|boolean"
},
"option": {
"question": "required_with:form.*.option|max:64|string",
"required": "required_with:form.*.option|boolean",
"choices": [
"required_with:form.*.option.choices|max:48|string"
],
"type": "string|in:text,date,bank"
},
"input": {
"question": "required_with:form.*.input|max:64|string",
"hint": "max:32|string",
"required": "required_with:form.*.input|boolean",
"regex": "max:255|pattern",
"type": "string|in:text,text_area,date,numeric,bank",
"key": "boolean"
},
"text": {
"question": "required_with:form.*.text|max:64|string",
"content": "required_with:form.*.text|max:512|string"
},
"text_button": {
"question": "required_with:form.*.text_button|max:64|string",
"content": "required_with:form.*.text_button|max:255|string",
"button_text": "required_with:form.*.text_button|max:48|string",
"button_content": "required_with:form.*.text_button|max:1024|string"
},
"file": {
"question": "required_with:form.*.file|string",
"required": "required_with:form.*.file|boolean",
"allowed_types": [
"required_with:form.*.file.allowed_types|max:128|string"
],
"type": "string|in:file,image"
}
}
]
}
Enables the specified resource
Método | URI | Cabeceras |
---|---|---|
PATCH | /companies/{company}/branches/{branchId}/forms/{form_type}/enable |
Authorization |
Disables the specified resource
Método | URI | Cabeceras |
---|---|---|
PATCH | /companies/{company}/branches/{branchId}/forms/{form_type}/disable |
Authorization |
Método | URI | Cabeceras |
---|---|---|
POST | /companies/{company}/forms/{formId}/upload-label |
Authorization |
{
"image": "nullable|image|mimes:jpeg,png|max:2048"
}