Diferencia entre revisiones de «API Ventas/Documentos»
| Línea 131: | Línea 131: | ||
| id || int || Identificador del grupo contable | | id || int || Identificador del grupo contable | ||
|- | |- | ||
| | | id_centro_operacion || int || Identificador del centro de operación | ||
|- | |- | ||
| | | descripcion_centro_operacion || string || Descripción del centro de operación | ||
|- | |- | ||
| | | categoria_doc || string || Categoría del documento | ||
|- | |- | ||
| | | prefijo_tipo_doc || string || Prefijo del tipo de documento | ||
|- | |- | ||
| | | descripcion || string || Descripción | ||
|- | |- | ||
| | | numero || int || Número | ||
|- | |- | ||
| | | num_digitos_decimal || int || Número de dígitos decimales | ||
|- | |- | ||
| | | mensaje_factura1 || string || Mensaje de factura 1 | ||
|- | |- | ||
| | | mensaje_factura2 || string || Mensaje de factura 2 | ||
|- | |- | ||
| | | numero_resolucion_dian || string || Número de resolución DIAN | ||
|- | |- | ||
| | | formato_doc || string || Formato del documento | ||
|- | |- | ||
| | | catflujocaja || string || Categoría de flujo de caja | ||
|- | |- | ||
| | | prefijo_factura || string || Prefijo de la factura | ||
|- | |- | ||
| | | activo || bool || Activo | ||
|- | |- | ||
| | | cuenta_costo || int || Cuenta de costo | ||
|- | |- | ||
| | | cuenta_devolucion || int || Cuenta de devolución | ||
|- | |- | ||
| | | cuenta_ingreso || int || Cuenta de ingreso | ||
|- | |- | ||
| | | sub_costo_venta || int || Subcuenta de costo de venta | ||
|- | |- | ||
| | | sub_ingreso_venta || int || Subcuenta de ingreso de venta | ||
|- | |- | ||
| | | sub_devolucion_venta || int || Subcuenta de devolución de venta | ||
|- | |- | ||
| | | aplica_solo_alterna || bool || Aplica solo alterna | ||
|- | |- | ||
| | | mensaje_factura3 || string || Mensaje de factura 3 | ||
|- | |- | ||
| | | aplica_COLGAAP || bool || Aplica COLGAAP | ||
|- | |- | ||
| | | aplica_NIIF || bool || Aplica NIIF | ||
|- | |- | ||
| | | predeterminado || bool || Predeterminado | ||
|- | |- | ||
| | | aplica_restringe_orden_cronologico || bool || Aplica restringe orden cronológico | ||
|- | |- | ||
| | | aplica_fecha_primer_documento || bool || Aplica fecha primer documento | ||
|- | |- | ||
| | | mensaje_factura4 || string || Mensaje de factura 4 | ||
|- | |- | ||
| | | resolucion_desde || int || Resolución desde | ||
|- | |- | ||
| | | resolucion_hasta || int || Resolución hasta | ||
|- | |- | ||
| | | res_fecha_desde || string || Resolución fecha desde | ||
|- | |||
| resnumero || string || Número de resolución | |||
|- | |||
| aplica_doc_recurrente || bool || Aplica documento recurrente | |||
|- | |||
| aplica_intereses_venta || bool || Aplica intereses de venta | |||
|- | |||
| id_documento_electronico || int || Identificador del documento electrónico | |||
|- | |||
| aplica_gestiona_tarea || bool || Aplica gestión de tarea | |||
|- | |||
| aplica_adjuntar_formato_facturaSerpi || bool || Aplica adjuntar formato facturaSerpi | |||
|- | |||
| res_fecha_hasta || string || Resolución fecha hasta | |||
|- | |||
| aplica_creaautodeq || bool || Aplica crea autodeq | |||
|- | |||
| gdttipodocpadreid || int || Identificador del tipo de documento padre | |||
|- | |||
| gdttipodocpadrenotaid || int || Identificador del tipo de documento padre nota | |||
|- | |||
| id_bodega_pos || int || Identificador de la bodega POS | |||
|- | |||
| descripcion_bodega_pos || string || Descripción de la bodega POS | |||
|- | |||
| id_tercero_pos || int || Identificador del tercero POS | |||
|- | |||
| nit_tercero_pos || string || NIT del tercero POS | |||
|- | |||
| descripcion_tercero_pos || string || Descripción del tercero POS | |||
|- | |||
| aplica_asignar_recepcion_electronico || bool || Aplica asignar recepción electrónica | |||
|- | |||
| fecha_recepcion_electronica || string || Fecha de recepción electrónica | |||
|} | |} | ||
</Tab> | </Tab> | ||
Revisión del 16:31 8 jun 2023
Descripción: PENDIENTE
Autorización: PENDIENTE
Beneficio: PENDIENTE
Tipos de peticiones: PENDIENTE
¿Cómo funciona? PENDIENTE
Métodos
<Tabs> <Tab name = "API Consulta (GET) ">
EndPoint: https://www.apis.serpi.com.co/api/v1/TipoDocumento
EndPoint con parámetros: https://www.apis.serpi.com.co/api/v1/TipoDocumento?limite=50&pagina=1
| Header | Descripción |
|---|---|
| secretkey | Secretkey proporcionada al cliente para consumos de las APIs |
Authorization:
Usar Bearer. Ejemplo “bearer {{token}}”.
{{token}} Token de autorizacion generado por SerpiERP| Parámetro | Tipo de dato | Requerido | Descripción |
|---|---|---|---|
| Límite | int | No | Este parámetro indica la cantidad de resultados que se deben devolver en una sola página |
| Página | int | No | Este parámetro indica el número de la página que se debe devolver. Por ejemplo, si se establece en 3, se devolverán los resultados de la tercera página |
Response
{
"success": true,
"code": 200,
"errors": null,
"message": "1 registro(s) encontrados",
"result": [
{
"id": 1,
"id_centro_operacion": 1,
"descripcion_centro_operacion": "DESCRIPCIÓN DEL CENTRO DE OPERACIÓN",
"categoria_doc": "NC",
"prefijo_tipo_doc": "RCA",
"descripcion": "RECIBO DE CAJA",
"numero": 2,
"num_digitos_decimal": 2,
"mensaje_factura1": "MENSAJE DE LA FACTURA 1",
"mensaje_factura2": "MENSAJE DE LA FACTURA 2",
"numero_resolucion_dian": "1234567",
"formato_doc": "PDF",
"catflujocaja": null,
"prefijo_factura": "PF",
"activo": true,
"cuenta_costo": null,
"cuenta_devolucion": null,
"cuenta_ingreso": null,
"sub_costo_venta": 1,
"descripcion_sub_costo_venta": "ADMINISTRACION",
"sub_ingreso_venta": 4,
"descripcion_sub_ingreso_venta": "VENTAS",
"sub_devolucion_venta": 1,
"descripcion_sub_devolucion_venta": "ADMINISTRACION",
"aplica_solo_alterna": false,
"mensaje_factura3": "MENSAJE DE LA FACTURA 3",
"aplica_COLGAAP": true,
"aplica_NIIF": true,
"predeterminado": false,
"aplica_restringe_orden_cronologico": false,
"aplica_fecha_primer_documento": false,
"mensaje_factura4": "MENSAJE DE LA FACTURA 4",
"resolucion_desde": 1234567,
"resolucion_hasta": 1234567,
"res_fecha_desde": "2023-06-01",
"resnumero": null,
"aplica_doc_recurrente": true,
"aplica_intereses_venta": true,
"id_documento_electronico": 6,
"aplica_gestiona_tarea": true,
"aplica_adjuntar_formato_facturaSerpi": true,
"res_fecha_hasta": "2023-06-01",
"aplica_creaautodeq": false,
"gdttipodocpadreid": 1,
"descripcion_gdttipodocpadreid": "DESCRIPCIÓN DEL CAMPO gdttipodocpadreid",
"gdttipodocpadrenotaid": 1,
"descripcion_gdttipodocpadrenotaid": "DESCRIPCIÓN DEL CAMPO gdttipodocpadrenotaid",
"id_bodega_pos": 2,
"descripcion_bodega_pos": "DESCRIPCIÓN DE LA BODEGA",
"id_tercero_pos": 1234,
"nit_tercero_pos": "1234567",
"descripcion_tercero_pos": "DESCRIPCIÓN DEL TERCERO",
"aplica_asignar_recepcion_electronico": true,
"fecha_recepcion_electronica": "2023-06-01"
}
]
}
{
"success": true
"code": 201,
"message": "No se encontraron registros",
"result": []
}| Campo | Tipo de dato | Descripción |
|---|---|---|
| id | int | Identificador del grupo contable |
| id_centro_operacion | int | Identificador del centro de operación |
| descripcion_centro_operacion | string | Descripción del centro de operación |
| categoria_doc | string | Categoría del documento |
| prefijo_tipo_doc | string | Prefijo del tipo de documento |
| descripcion | string | Descripción |
| numero | int | Número |
| num_digitos_decimal | int | Número de dígitos decimales |
| mensaje_factura1 | string | Mensaje de factura 1 |
| mensaje_factura2 | string | Mensaje de factura 2 |
| numero_resolucion_dian | string | Número de resolución DIAN |
| formato_doc | string | Formato del documento |
| catflujocaja | string | Categoría de flujo de caja |
| prefijo_factura | string | Prefijo de la factura |
| activo | bool | Activo |
| cuenta_costo | int | Cuenta de costo |
| cuenta_devolucion | int | Cuenta de devolución |
| cuenta_ingreso | int | Cuenta de ingreso |
| sub_costo_venta | int | Subcuenta de costo de venta |
| sub_ingreso_venta | int | Subcuenta de ingreso de venta |
| sub_devolucion_venta | int | Subcuenta de devolución de venta |
| aplica_solo_alterna | bool | Aplica solo alterna |
| mensaje_factura3 | string | Mensaje de factura 3 |
| aplica_COLGAAP | bool | Aplica COLGAAP |
| aplica_NIIF | bool | Aplica NIIF |
| predeterminado | bool | Predeterminado |
| aplica_restringe_orden_cronologico | bool | Aplica restringe orden cronológico |
| aplica_fecha_primer_documento | bool | Aplica fecha primer documento |
| mensaje_factura4 | string | Mensaje de factura 4 |
| resolucion_desde | int | Resolución desde |
| resolucion_hasta | int | Resolución hasta |
| res_fecha_desde | string | Resolución fecha desde |
| resnumero | string | Número de resolución |
| aplica_doc_recurrente | bool | Aplica documento recurrente |
| aplica_intereses_venta | bool | Aplica intereses de venta |
| id_documento_electronico | int | Identificador del documento electrónico |
| aplica_gestiona_tarea | bool | Aplica gestión de tarea |
| aplica_adjuntar_formato_facturaSerpi | bool | Aplica adjuntar formato facturaSerpi |
| res_fecha_hasta | string | Resolución fecha hasta |
| aplica_creaautodeq | bool | Aplica crea autodeq |
| gdttipodocpadreid | int | Identificador del tipo de documento padre |
| gdttipodocpadrenotaid | int | Identificador del tipo de documento padre nota |
| id_bodega_pos | int | Identificador de la bodega POS |
| descripcion_bodega_pos | string | Descripción de la bodega POS |
| id_tercero_pos | int | Identificador del tercero POS |
| nit_tercero_pos | string | NIT del tercero POS |
| descripcion_tercero_pos | string | Descripción del tercero POS |
| aplica_asignar_recepcion_electronico | bool | Aplica asignar recepción electrónica |
| fecha_recepcion_electronica | string | Fecha de recepción electrónica |
</Tab>
<Tab name = "API Creación (POST) "> EndPoint: https://www.apis.serpi.com.co/api/v1/TipoDocumento
| Header | Descripción |
|---|---|
| secretkey | Secretkey proporcionada al cliente para consumos de las APIs |
Authorization:
Usar Bearer. Ejemplo “bearer {{token}}”.
{{token}} Token de autorizacion generado por SerpiERP
Request
{
"codigo": "1",
"descripcion": " GRUPO CONTABLE DEMO",
"tipoproducto": 1,
"aplica_recaudo_tercero": true,
"aplica_impuesto_venta": true,
"impuesto_venta": 3,
"aplica_impuesto_compra": true,
"impuesto_compra": 5,
"aplica_impoconsumo": false,
"valor_impoconsumo": 0,
"aux_cuenta_impoconsumo": 1234567,
"aux_cuenta_gastoxcompra": 1234567,
"aux_cuenta_ingresoventa": 1234567,
"aux_cuenta_devolucionventa": 1234567,
"aux_cuenta_costo": 1234567,
"aux_cuenta_cartera": 1234567,
"aux_cuenta_ajuste": 1234567,
"aux_cuenta_desperdicio": 1234567,
"centro_costo": "01",
"aplica_retencion": true
}
| Campo | Tipo de dato | Longitud | Requerido | Descripción |
|---|---|---|---|---|
| codigo | string | 20 | Si | Código único del grupo contable |
| descripcion | string | 100 | Si | Descripción del grupo contable |
| tipoproducto | int | 11 | 11 | Tipo producto del grupo contable, debe ser 0 (Producto) o 1 (Servicio) |
| aplica_recaudo_tercero | bool | 1 | No | Si aplica recaudo para tercero para cuando el tipo producto es un 1 (Servicio) |
| aplica_impuesto_venta | bool | 1 | No | Si aplica impuesto venta |
| impuesto_venta | double | 1 | No | Porcentaje del impuesto venta, debe ser 1 (IVA COMPRA 5%), 3 (IVA COMPRA 19%), 4 (EXENTO), 5 (IVA GENERADO EN VENTAS) o 0 (si no aplica) |
| aplica_impuesto_compra | bool | 1 | No | Si aplica impuesto compra |
| impuesto_compra | double | 1 | No | Porcentaje del impuesto compra, debe ser 1 (IVA COMPRA 5%), 3 (IVA COMPRA 19%), 4 (EXENTO), 5 (IVA GENERADO EN VENTAS) o 0 (si no aplica) |
| aplica_impoconsumo | bool | 1 | No | Si aplica impuesto consumo |
| valor_impoconsumo | double | (18,5) | No | Valor del impoconsumo |
| aux_cuenta_impoconsumo | int | 11 | No | Cuenta Impoconsumo |
| aux_cuenta_gastoxcompra | int | 11 | Si | Cuenta Gasto x Compra |
| aux_cuenta_ingresoventa | int | 11 | Si | Cuenta Ingreso Venta |
| aux_cuenta_devolucionventa | int | 11 | Si | Cuenta Devolucion Venta |
| aux_cuenta_costo | int | 11 | Si | Cuenta Costo |
| aux_cuenta_cartera | int | 11 | No | Cuenta Cartera (Propiedad Horizontal) |
| aux_cuenta_ajuste | int | 11 | No | Cuenta Ajuste (Ajuste de Inventario) |
| aux_cuenta_desperdicio | int | 11 | No | Cuenta Desperdicio (Desperdicio Producción) |
| centro_costo | string | 5 | Si | Centro de costo, debe ser 01 (ADMINISTRACION) o 02 (VENTAS) |
| aplica_retencion | bool | 1 | No | Si aplica retención |
AVISO IMPORTANTE:
Digite null o 0 (si es un campo del tipo double o int), para aquellos valores donde los campos no sean obligatorios y donde no se va a asignar algún valor.
Response
{
"success": true,
"code": 201,
"errors": [],
"message": "Validaciones exitosas. Registro creado exitosamente"
}Validaciones
{
"success": false,
"code": 400,
"errors": [
"El campo descripcion es obligatorio",
"El campo tipoproducto debe ser 0 (Producto) o 1 (Servicio)",
"El campo impuesto_venta debe ser 1 (IVA COMPRA 5%), 3 (IVA COMPRA 19%), 4 (EXENTO), 5 (IVA GENERADO EN VENTAS) o 0 (si no aplica)",
"El campo impuesto_compra debe ser 1 (IVA COMPRA 5%), 3 (IVA COMPRA 19%), 4 (EXENTO), 5 (IVA GENERADO EN VENTAS) o 0 (si no aplica)",
"El campo centro_costo debe ser 01 (ADMINISTRACION) o 02 (VENTAS)",
"El auxiliar 123456 del campo aux_cuenta_impoconsumo no existe",
"El campo aux_cuenta_gastoxcompra es obligatorio",
"El campo aux_cuenta_ingresoventa es obligatorio",
"El campo aux_cuenta_devolucionventa es obligatorio",
"El campo aux_cuenta_costo es obligatorio",
"El auxiliar 123456 del campo aux_cuenta_cartera no existe",
"El auxiliar 123456 del campo aux_cuenta_ajuste no existe",
"El auxiliar 123456 del campo aux_cuenta_desperdicio no existe"
],
"message": "Problemas de validaciones. Se presentaron errores al crear el registro"
}</Tab>
<Tab name = "API Modificar(PUT) "> EndPoint: https://www.apis.serpi.com.co/api/v1/TipoDocumento
| Header | Descripción |
|---|---|
| secretkey | Secretkey proporcionada al cliente para consumos de las APIs |
Authorization:
Usar Bearer. Ejemplo “bearer {{token}}”.
{{token}} Token de autorizacion generado por SerpiERP
Request
{
"id": 1,
"codigo": "1",
"descripcion": " GRUPO CONTABLE DEMO",
"tipoproducto": 1,
"aplica_recaudo_tercero": true,
"aplica_impuesto_venta": true,
"impuesto_venta": 3,
"aplica_impuesto_compra": true,
"impuesto_compra": 5,
"aplica_impoconsumo": false,
"valor_impoconsumo": 0,
"aux_cuenta_impoconsumo": 1234567,
"aux_cuenta_gastoxcompra": 1234567,
"aux_cuenta_ingresoventa": 1234567,
"aux_cuenta_devolucionventa": 1234567,
"aux_cuenta_costo": 1234567,
"aux_cuenta_cartera": 1234567,
"aux_cuenta_ajuste": 1234567,
"aux_cuenta_desperdicio": 1234567,
"centro_costo": "01",
"aplica_retencion": true
}
| Campo | Tipo de dato | Longitud | Requerido | Descripción |
|---|---|---|---|---|
| id | int | 11 | Si | Identificador del grupo contable |
| codigo | string | 20 | Si | Código único del grupo contable |
| descripcion | string | 100 | Si | Descripción del grupo contable |
| tipoproducto | int | 11 | 11 | Tipo producto del grupo contable, debe ser 0 (Producto) o 1 (Servicio) |
| aplica_recaudo_tercero | bool | 1 | No | Si aplica recaudo para tercero para cuando el tipo producto es un 1 (Servicio) |
| aplica_impuesto_venta | bool | 1 | No | Si aplica impuesto venta |
| impuesto_venta | double | 1 | No | Porcentaje del impuesto venta, debe ser 1 (IVA COMPRA 5%), 3 (IVA COMPRA 19%), 4 (EXENTO), 5 (IVA GENERADO EN VENTAS) o 0 (si no aplica) |
| aplica_impuesto_compra | bool | 1 | No | Si aplica impuesto compra |
| impuesto_compra | double | 1 | No | Porcentaje del impuesto compra, debe ser 1 (IVA COMPRA 5%), 3 (IVA COMPRA 19%), 4 (EXENTO), 5 (IVA GENERADO EN VENTAS) o 0 (si no aplica) |
| aplica_impoconsumo | bool | 1 | No | Si aplica impuesto consumo |
| valor_impoconsumo | double | (18,5) | No | Valor del impoconsumo |
| aux_cuenta_impoconsumo | int | 11 | No | Cuenta Impoconsumo |
| aux_cuenta_gastoxcompra | int | 11 | Si | Cuenta Gasto x Compra |
| aux_cuenta_ingresoventa | int | 11 | Si | Cuenta Ingreso Venta |
| aux_cuenta_devolucionventa | int | 11 | Si | Cuenta Devolucion Venta |
| aux_cuenta_costo | int | 11 | Si | Cuenta Costo |
| aux_cuenta_cartera | int | 11 | No | Cuenta Cartera (Propiedad Horizontal) |
| aux_cuenta_ajuste | int | 11 | No | Cuenta Ajuste (Ajuste de Inventario) |
| aux_cuenta_desperdicio | int | 11 | No | Cuenta Desperdicio (Desperdicio Producción) |
| centro_costo | string | 5 | Si | Centro de costo, debe ser 01 (ADMINISTRACION) o 02 (VENTAS) |
| aplica_retencion | bool | 1 | No | Si aplica retención |
AVISO IMPORTANTE:
Digite null o 0 (si es un campo del tipo double o int), para aquellos valores donde los campos no sean obligatorios y donde no se va a asignar algún valor.
Response
{
"success": true,
"code": 200,
"errors": [],
"message": "Validaciones exitosas. Registro modificado exitosamente"
}
{
"success": false,
"code": 204,
"errors": null,
"message": "No se encontraron registros con el id 1"
}Validaciones
{
"success": false,
"code": 400,
"errors": [
"El campo id es obligatorio",
"El campo descripcion es obligatorio",
"El campo tipoproducto debe ser 0 (Producto) o 1 (Servicio)",
"El campo impuesto_venta debe ser 1 (IVA COMPRA 5%), 3 (IVA COMPRA 19%), 4 (EXENTO), 5 (IVA GENERADO EN VENTAS) o 0 (si no aplica)",
"El campo impuesto_compra debe ser 1 (IVA COMPRA 5%), 3 (IVA COMPRA 19%), 4 (EXENTO), 5 (IVA GENERADO EN VENTAS) o 0 (si no aplica)",
"El campo centro_costo debe ser 01 (ADMINISTRACION) o 02 (VENTAS)",
"El auxiliar 123456 del campo aux_cuenta_impoconsumo no existe",
"El campo aux_cuenta_gastoxcompra es obligatorio",
"El campo aux_cuenta_ingresoventa es obligatorio",
"El campo aux_cuenta_devolucionventa es obligatorio",
"El campo aux_cuenta_costo es obligatorio",
"El auxiliar 123456 del campo aux_cuenta_cartera no existe",
"El auxiliar 123456 del campo aux_cuenta_ajuste no existe",
"El auxiliar 123456 del campo aux_cuenta_desperdicio no existe"
],
"message": "Problemas de validaciones. Se presentaron errores al modificar el registro"
}</Tab> </Tabs>
Códigos de estado HTTP
| Código | Descripción |
|---|---|
| 200 | La solicitud ha sido exitosa |
| 201 | La solicitud ha tenido éxito y ha llevado a la creación de un recurso |
| 204 | La solicitud se ha completado correctamente, pero no hay contenido para devolver en la respuesta |
| 400 | El servidor no puede o no procesará la petición debido a algo que es percibido como un error del cliente |
| 401 | La solicitud requiere autenticación, pero el cliente no ha proporcionado credenciales válidas o no está autorizado para acceder al recurso |
| 403 | El servidor ha entendido la solicitud, pero se niega a cumplirla debido a que el cliente no tiene permisos para acceder al recurso |
| 404 | El recurso solicitado no se ha encontrado en el servidor |
| 500 | Internal Server Error |
| 503 | El servidor no está disponible actualmente debido a una sobrecarga o mantenimiento temporal |
¿Cómo consumir la API?
<Tabs>
<Tab name = "Java"> Request
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = RequestBody.create(mediaType, "");
Request request = new Request.Builder()
.url("https://localhost:44305/api/v1/TipoDocumento")
.method("GET", body)
.addHeader("secretkey", "{{secret key}}")
.addHeader("Authorization", "Bearer{{token}}")
.build();
Response response = client.newCall(request).execute();</Tab>
<Tab name = "C#"> Request
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "https://localhost:44305/api/v1/TipoDocumento");
request.Headers.Add("secretkey", "{{secret key}}");
request.Headers.Add("Authorization", "Bearer{{token}}");
var content = new StringContent("", null, "text/plain");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());</Tab>
<Tab name = "PHP"> Request
<?php
require_once 'HTTP/Request2.php';
$request = new HTTP_Request2();
$request->setUrl('https://localhost:44305/api/v1/TipoDocumento');
$request->setMethod(HTTP_Request2::METHOD_GET);
$request->setConfig(array(
'follow_redirects' => TRUE
));
$request->setHeader(array(
'secretkey' => '{{secret key}}',
'Authorization' => 'Bearer {{token}}'
));
$request->setBody('');
try {
$response = $request->send();
if ($response->getStatus() == 200) {
echo $response->getBody();
}
else {
echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' .
$response->getReasonPhrase();
}
}
catch(HTTP_Request2_Exception $e) {
echo 'Error: ' . $e->getMessage();
}</Tab>
</Tabs>