Generar reporte
Para generar el reporte, primero debes realizar la creaciĂłn de las configuraciones necesarias, donde podrĂĄs definir los emails a los que se enviarĂĄ el reporte o la frecuencia con la que quieres que se genere, entre otras opciones. Luego, deberĂĄs crear el reporte, que podrĂĄ ser de forma automĂĄtica (event) o manual (statement).
Generar Access Token
Las credenciales son contraseñas exclusivas utilizadas para identificar una integraciĂłn en tu cuenta. Desempeñan un papel fundamental en la captura segura de pagos en tiendas en lĂnea y otras aplicaciones. Puedes encontrarlas en Detalles de la aplicaciĂłn > Credenciales dentro del Panel del desarrollador o en tu cuenta de Mercado Pago, accediendo a Tu negocio > Configuraciones > GestiĂłn y administraciĂłn > Credenciales.
Existen dos tipos diferentes de credenciales:
- Credenciales de prueba: Utiliza las credenciales de prueba para probar tus integraciones. Pueden combinarse con tarjetas de crédito de prueba para simular transacciones y verificar el correcto funcionamiento de las integraciones. Se recomienda utilizar estas credenciales antes de pasar a las credenciales de producción.
- Credenciales de producciĂłn: Utiliza las credenciales de producciĂłn para recibir pagos.
Ambos tipos de credenciales constan de dos pares de claves que debes utilizar segĂșn el producto elegido. Consulta la documentaciĂłn especĂfica de cada producto para obtener detalles sobre las claves que debes utilizar.
Tipo | DescripciĂłn |
Public key | La clave pĂșblica de la aplicaciĂłn se utiliza generalmente en el frontend. Permite, por ejemplo, acceder a informaciĂłn sobre los medios de pago y cifrar los datos de la tarjeta. |
Access token | Clave privada de la aplicaciĂłn que siempre se debe utilizar en el backend para generar pagos. Es esencial mantener esta informaciĂłn segura en tus servidores. |
Para poder generar el reporte de ventas, deberĂĄs utilizar tu Access Token productivo.
Crear configuraciĂłn
Previo a la generaciĂłn del reporte, deberĂĄs crear las configuraciones del mismo, que te permitirĂĄn personalizar los emails a los que se enviarĂĄ el reporte o la frecuencia con la que quieres que se genere, ademĂĄs de su estructura. La creaciĂłn de configuraciones consta de 2 pasos: primero, definir la estructura del reporte, y luego, configurar las vĂas de notificaciĂłn.
Estructurar reporte
Crear la estructura del reporte te permitirĂĄ definir las caracterĂsticas que este tendrĂĄ al momento de su generaciĂłn. A travĂ©s de structures podrĂĄs indicar la zona horaria en la que quieres que el reporte se genere, agregar un prefijo para identificar el archivo generado e incorporar la cantidad de columnas deseadas, junto con separadores de columnas y decimales. Para definir esta estructura, realiza el siguiente llamado a la API, teniendo en cuenta las especificaciones de la tabla a continuaciĂłn:
curl
curl --location --request POST 'https://api.mercadopago.com/v1/reports/marketplace_sellers_sales/structures' \
--header 'Authorization: Bearer {{TOKEN}}' \
--header 'Content-Type: application/json' \
--data-raw '{
"display_timezone": "GMT-03",
"name": "Structure de mi marketplace",
"file_format": {
"prefix": "marketplace",
"column_separator": ";",
"decimal_separator": "."
},
"columns": [
{
"key": "COLLECTOR",
"alias": ""
},
{
"key": "COLLECTOR_NICKNAME",
"alias": ""
},
{
"key": "PAYMENT",
"alias": ""
},
{
"key": "STATUS_DESCRIPTION",
"alias": ""
},
{
"key": "STATUS_DETAIL",
"alias": ""
},
{
"key": "PURCHASE_ORDER",
"alias": ""
},
{
"key": "PAYMENT_METHOD_TYPE",
"alias": ""
},
{
"key": "TRANSACTION_AMOUNT",
"alias": ""
},
{
"key": "DATE_CREATED",
"alias": ""
},
{
"key": "DATE_APPROVED",
"alias": ""
},
{
"key": "MARKETPLACE_FEE_AMOUNT",
"alias": ""
},
{
"key": "MERCADOPAGO_FEE_AMOUNT",
"alias": ""
},
{
"key": "TOTAL_PAID_AMOUNT",
"alias": ""
},
{
"key": "NET_RECEIVED_AMOUNT",
"alias": ""
}
]
}'
Respuesta
json
{
"id": {{structure_id}},
"version": 0,
"date_created": null,
"date_last_updated": null,
"name": null,
"file_format": null,
"columns": null,
"file_config": null,
"report_translation": null,
"include_withdraw": null,
"refund_detailed": null,
"show_fee_prevision": null,
"coupon_detailed": null,
"show_chargeback_cancel": null
}
Campo | DescripciĂłn |
display_timezone (opcional) | Este campo determina la fecha y la hora que se visualiza en los reportes. Si no configuras este campo con una zona horaria, el sistema tomarĂĄ por defecto el valor GMT-04. Si eliges una zona horaria que utiliza horario de verano, es necesario que hagas el ajuste manual cuando cambie la hora. |
columns (obligatorio) | Campo con el detalle de columnas a incluir en tu reporte. Encuentra todos los posibles valores en la secciĂłn Glosario. |
name (obligatorio) | Campo para asignar nombre a la estructura. |
file_format.prefix (obligatorio) | Prefijo que compone el nombre del reporte una vez generado. |
file_column_separator (obligatorio) | Caracter que puedes usar en el archivo .csv cuando no quieras que el separador sea un punto y coma. |
VĂas de notificaciĂłn
DespuĂ©s de establecer la estructura del reporte, determine cĂłmo desea recibir las notificaciones, ya sea por email o SFTP. Configure un notifier como se muestra a continuaciĂłn y preste atenciĂłn a las caracterĂsticas de cada campo descritas en la tabla siguiente.
curl
curl --location --request POST 'https://api.mercadopago.com/v1/reports/notifiers' \
--header 'Authorization: Bearer {{TOKEN}}' \
--header 'Content-Type: application/json' \
--data-raw '{
"type": "email",
"data": {
"recipients": ["test@mercadolibre.com"]
},
"description": "test notifier email"
}'
Respuesta
json
{
"id": {{notifier_id}},
"type": "email",
"data": {
"recipients": [
"test@mercadolibre.com"
]
},
"description": null,
"version": 0,
"status": "ACTIVE",
"is_pii_data": true
}
SFTP
curl
curl --location --request POST 'https://api.mercadopago.com/v1/reports/notifiers?type=ftp' \
--header 'Authorization: Bearer {{TOKEN}}' \
--header 'Content-Type: application/json' \
--data-raw '{
"type": "ftp",
"data": {
"ip": "test.files.com",
"port": 22,
"password": "test",
"protocol": "SFTP",
"username": "test@mercadolibre.com",
"remote_dir": "/"
},
"description": "test notifier sftp"
}'
Respuesta
json
{
"id": {{notifier_id}},
"type": "ftp",
"data": {
"protocol": "SFTP",
"ip": "test.files.com",
"username": "test@mercadolibre.com",
"password": "test",
"remote_dir": "/",
"port": 22
},
"description": null,
"version": 0,
"status": "ACTIVE",
"is_pii_data": false
}
Campo | DescripciĂłn |
type (obligatorio) | Define el tipo de notificaciĂłn a configurar. Valores posibles: email; ftp. |
data (obligatorio) | Contiene la información del destinatario del notifier. Dependiendo del valor indicado en type , puede contener los siguientes objetos: - email: Contendrå el campo recipients , donde podrås indicar los emails a los que el reporte serå enviado. Puede ser mås de uno, si lo deseas. - ftp: Contendrå los siguientes campos: - ip : URL del servidor FTP - port : Puerto del servidor FTP - password : Contraseña de acceso al servidor FTP - protocolo : SFTP - username : Usuario para acceder al servidor FTP - remote_dir : Carpeta destino en el servidor FTP. |
Crear reporte
Después de crear las configuraciones iniciales, tienes dos opciones para crear el reporte:
- Programar un evento: Esto automatiza la creaciĂłn de reportes, indicando su periodicidad.
- Generar un evento manualmente: Puedes crear un reporte a demanda, definiendo el perĂodo que deseas que abarque.
Programar un reporte (Events)
Al programar un evento, es posible generar reportes de manera automĂĄtica y establecer su periodicidad. Para realizar esta programaciĂłn, crea un event siguiendo el ejemplo a continuaciĂłn. AsegĂșrate de tener las configuraciones previamente establecidas y la informaciĂłn de la tabla a continuaciĂłn a mano para garantizar una programaciĂłn exitosa del reporte.
curl
curl --location --request POST 'https://api.mercadopago.com/v1/reports/marketplace_sellers_sales/events' \
--header 'Authorization: Bearer {{TOKEN}}' \
--header 'Content-Type: application/json' \
--data-raw '{
"type": "frequency",
"data": {
"period": "daily",
"value": 0,
"hour": 0
},
"description": "event test",
"structure_id": {{structure_id}},
"notifiers": [
{{notifier_id}}
],
"status": "ACTIVE",
"version": 0
}'
Respuesta
json
{
"id": {{event_id}},
"type": "frequency",
"data": {
"period": "daily",
"value": 0,
"hour": 20,
"skip_non_working_days": false
},
"description": "event test",
"structure_id": {{structure_id}},
"notifiers": [],
"status": "ACTIVE",
"version": 0,
"user_id": {{user_id}}
}
Puedes ver la descripciĂłn de los campos presente en los curls en la tabla a continuaciĂłn.
Campo | DescripciĂłn |
type (obligatorio) | Este campo define el tipo de evento. El Ășnico valor posible es frequency . |
data (obligatorio) | Este campo contiene la frecuencia con la que se generarĂĄ el reporte. Puede ser diaria (period=daily ), semanal (period=weekly ) o mensual (period=monthly ). Dentro de value , podrĂĄs definir quĂ© dĂa de la semana quieres que se genere el reporte (si period=weekly ), asignĂĄndole un nĂșmero de 1 a 7, o quĂ© dĂa del mes (si period=monthly ), asignĂĄndole un nĂșmero del 1 al 31. AdemĂĄs, en el campo hour puedes programar la hora del dĂa en la que se generarĂĄ el reporte. |
description (obligatorio) | Campo para asignar un nombre al evento. Valor mĂĄximo: 50 caracteres. |
structure_id (obligatorio) | Campo para asignar la estructura con la que se va a generar el reporte. DeberĂĄs completarlo con el valor obtenido para este mismo campo en la respuesta a la creaciĂłn de la estructura. |
notifier_id (obligatorio) | Campo para asignar la vĂa por la que deseas recibir las notificaciones. DeberĂĄs completarlo con la identificaciĂłn obtenida en la respuesta a la creaciĂłn de notificaciones. |
Generar reporte manualmente (Statements)
La creaciĂłn manual permite generar un reporte a demanda, especificando el intervalo de tiempo deseado.
Para hacerlo, crea una statement, como se muestra a continuaciĂłn. AdemĂĄs, asegĂșrate de tener a mano las configuraciones que creaste previamente y la informaciĂłn de la tabla siguiente para garantizar la creaciĂłn exitosa del reporte.
curl
curl --location --request POST 'https://api.mercadopago.com/v1/reports/marketplace_sellers_sales/statements' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{TOKEN}}' \
--data-raw '{
"user_description": "",
"created_by": "automatic",
"origin": {
"type": "date_range",
"data": {
"date_start": "2023-04-01T03:00:00Z",
"date_end": "2023-04-02T02:27:44Z"
}
},
"structure_id": {{structure_id}},
"notifiers_id": [{{notifier_id}}]
}'
Respuesta
json
{
"status_code": 201,
"request_id": {{statement_id}},
"message": ""
}
Puedes ver la descripciĂłn de los campos presente en los curls en la tabla a continuaciĂłn.
Campo | DescripciĂłn |
user_description (obligatorio) | DescripciĂłn deseada. ExtensiĂłn mĂĄxima: 50 caracteres. |
created_by (obligatorio) | Creador de la solicitud. De momento, sĂłlo puede recibir el valor automatic. |
Origin (obligatorio) | Este campo contiene la informaciĂłn del perĂodo que se desea incluir en el reporte. - type : el Ășnico valor posible es date_range , ya que deberĂĄs indicar el perĂodo a consultar.- date_start : indica el inicio del perĂodo que deseas consultar en formato: yyyy-MM-dd HH:mm:ss.SSS.- date_end : indica el fin del perĂodo que deseas consultar en formato: yyyy-MM-dd HH:mm:ss.SSS. |
structure_id (obligatorio) | Campo para asignar la estructura con la que se va a generar el reporte. DeberĂĄs completarlo con el valor obtenido para este mismo campo en la respuesta a la creaciĂłn de la estructura. |
notifiers_id (obligatorio) | Campo para asignar la vĂa por la que deseas recibir las notificaciones. DeberĂĄs completarlo con la identificaciĂłn obtenida en la respuesta a la creaciĂłn de notificaciones. |