Introducción

En los países con regulaciones de publicidad de servicios financieros, es posible que Meta requiera que los anunciantes verifiquen su identidad y licencia financiera. Los organismos reguladores proporcionarán a Meta un conjunto de datos de licencias financieras, que Meta utiliza para validar las licencias que envían los anunciantes. En este documento, se explica cómo los organismos reguladores comparten de forma segura los datos de las licencias con Meta y las especificaciones técnicas para la integración.

Información general

La integración funciona de la siguiente manera:

  1. Meta proporciona credenciales de SFTP: Meta envía los detalles de inicio de sesión a la dirección de correo electrónico confirmada del organismo regulador.
  2. El organismo regulador sube dos archivos: un archivo config.json (metadatos) y un archivo CSV (datos de licencia) se suben al servidor SFTP seguro de Meta. Instrucciones para subir archivos.
  3. Meta incorpora los datos: los archivos se procesan periódicamente.
  4. El organismo regulador sube periódicamente las novedades: los organismos reguladores son responsables de subir de forma rutinaria los archivos actualizados cada semana.

¿Qué es config.json?

El archivo config.json es un manifiesto que contiene metadatos necesarios para el procesamiento. Debe incluirse en cada subida.

Campos

CampoTipoObligatorioDescripciónValores permitidos

version

Cadena

Sí

Versión del esquema usado para el archivo CSV de licencia

"v1"

load_type

Cadena

Sí

Indica si se trata de un conjunto de datos completo o de una actualización incremental (solo con diferencias).

"completo", "incremental"

mode

Cadena

Sí

  • Validación: el archivo CSV se revisa para comprobar su corrección e integridad, pero no se incorpora.
  • Inserción: el archivo CSV se valida (usando los mismos controles que el modo de validación) y, luego, se inserta en el canal.

"validation", "ingestion"

support_email_addresses

Matriz de cadenas

Sí

Las direcciones de correo electrónico supervisadas que Meta puede utilizar para la comunicación en torno a la inserción de datos.

Ejemplo

{
  "version": "v1",
  "load_type": "full",
  "mode": "ingestion",
  "support_email_addresses": [
    "support@domain.com",
    "support2@domain.com"
  ]
}

Datos de licencia (CSV)

Los datos de licencias se proporcionan en un archivo CSV. El archivo puede tener cualquier nombre. Existen dos tipos de carga:

  • Carga completa: contiene el conjunto completo de todos los datos de licencia.
  • Carga incremental: contiene solo los cambios (deltas) desde la última subida.

Reglas generales

  • Los encabezados de las columnas deben estar en la primera fila.
  • Todos los encabezados de las columnas deben ser únicos.
  • Todas las columnas obligatorias deben estar presentes.
  • Cada fila debe contener un Credential_Id único.
  • Los errores en el nivel de la fila no bloquean el archivo completo. Las filas válidas se seguirán procesando. Por ejemplo, si 50 de 100.000 filas tienen errores, las 99.950 filas restantes se procesan normalmente.

Esquema de carga completa (V1)

ColumnaObligatorioTipoDescripciónFormato/valores permitidosEjemplo

Credential_Id

Sí

Cadena

Identificador único de la licencia; se muestra en anuncios de servicios financieros publicados

200 caracteres como máximo

123456789

License_Status

Sí

Cadena

Estado de la licencia

ACTIVE, INACTIVE, LEGALLY_EXEMPT

ACTIVE

Licensee_Name

Sí

Cadena

Nombre con el que se registra la licencia

200 caracteres como máximo

Jane Doe

Licensee_Type

Sí

Cadena

Tipo de entidad que posee la licencia

INDIVIDUAL, FIRM, UNKNOWN*

INDIVIDUAL

License_Expiration_Date

No

Número

Fecha de vencimiento de la licencia

Marca de tiempo de Unix

946684800

Address_Line_1

No

Cadena

Dirección postal principal

200 caracteres como máximo

123 Main St

Address_Line_2

No

Cadena

Dirección postal secundaria

200 caracteres como máximo

Suite 100

Ciudad

No

Cadena

Ciudad, localidad, pueblo o municipio

200 caracteres como máximo

San Francisco

Estado

No

Cadena

Estado, provincia, prefectura, condado o región

200 caracteres como máximo

CA

Country_Code

No

Cadena

País del licenciatario

ISO 3166-1 alpha-2 (máx. 2 caracteres)

US

Postal_Code

No

Cadena

Código postal

12 caracteres como máximo

94016

Phone_Numbers

Debe proporcionarse al menos uno de las siguientes opciones: Phone_Numbers, Email_Addresses o Website_URLs

Cadena

Números de teléfono registrados en la licencia

Delimitado por punto y coma; formato E.164; 16 caracteres como máximo por cada uno (incluye el prefijo "+")

+15551234567;+15559876543

Email_Addresses

Debe proporcionarse al menos uno de las siguientes opciones: Phone_Numbers, Email_Addresses o Website_URLs

Cadena

Las direcciones de correo electrónico registradas en la licencia

Delimitado por punto y coma; máximo de 254 caracteres cada uno

jane.doe@gmail.com;info@firm.com

Website_URLs

Debe proporcionarse al menos uno de las siguientes opciones: Phone_Numbers, Email_Addresses o Website_URLs

Cadena

Sitios web registrados en la licencia Debe ir precedida por "http://" o "https://"

Delimitado por punto y coma; máximo de 2.000 caracteres por elemento

https://www.example.com;https://www.example2.com

Para prevenir la suplantación de identidad, el fraude y los abusos en las plataformas publicitarias de Meta, es fundamental realizar una comprobación de conexión. Los datos de las licencias financieras subidos deben incluir al menos uno de los siguientes datos de cada licencia: número de teléfono, dirección de correo electrónico o URL del sitio web para realizar esta verificación. Esto garantiza que el anunciante que intente publicar anuncios use una licencia vinculada a la entidad en la verificación.

Esquema incremental (V1)

El esquema incremental usa las mismas columnas que el esquema de carga completa, además de una columna adicional obligatoria:

ColumnaObligatorioTipoDescripciónValores permitidos

Operación

Sí

Cadena

La operación que se debe realizar en esta fila.

UPSERT, DELETE

Reglas de operación

  • UPSERT: agrega una nueva licencia o actualiza una preexistente. Sigue las mismas reglas de campos obligatorios/opcionales que el esquema de carga completa.
  • DELETE: elimina una licencia. Solo Credential_Id es obligatorio; todos los demás campos son opcionales.

Ejemplo de escenario de carga incremental

Un conjunto de datos inicial contiene tres licencias: A, B y C.

Luego, ocurrirán los siguientes cambios:

  • Se actualiza la licencia B.
  • Se elimina la licencia C.
  • Se agrega la licencia D.

El archivo CSV incremental incluiría:

Credential_IdOperación...

B

UPSERT

(Otros campos)

C

ELIMINAR

D

UPSERT

(Otros campos)

La licencia A no está incluida porque no sufrió cambios.

La marca de tiempo de tu último conjunto de datos insertado está disponible a través de la carpeta ingestion_history/ en SFTP (consulta más abajo).

Proceso de subida e inserción de SFTP

Cómo subir los archivos

  1. Inicia sesión en el servidor SFTP con las credenciales que te proporcionó Meta.
  2. Sube config.json y el archivo de datos CSV a tu directorio predeterminado.
  3. Espera a que finalice el proceso. Los archivos se pueden validar varias veces al día con el modo validation en config.json, pero los datos solo se pueden procesar una vez por día.

Qué sucede después de subir el archivo

  • Después del procesamiento, ambos archivos se mueven automáticamente a un directorio validation_history/ o ingestion_history/ dependiendo del modo configurado en config.json. Si el archivo CSV subido contiene algún error en el nivel de la fila, como valores faltantes o no válidos, se generará un archivo CSV separado que detalle esos errores. Antes de realizar una inserción, usa el modo validation para confirmar que los archivos se procesen correctamente.
  • Cada ejecución crea una carpeta con marca de tiempo (por ejemplo, 2026-03-11T12-23-56Z/) que contiene los archivos usados en el directorio del historial.
  • Si los archivos siguen en el directorio predeterminado (no en ingestion_history/ o validation_history/), significa que aún no se procesaron.
  • Retención: el servidor SFTP solo conserva los archivos durante 30 días.

Ejemplo: antes y después de una inserción

A continuación, se muestra la estructura del archivo antes y después de una nueva inserción el 11/3/26, que involucra data1.csv y config.json con el modo ingestion.

Antes de la inserción

config.json
data1.csv
ingestion_history/
  └── 2026-03-06T04-20-17Z/
       ├── config.json
       ├── license_data.csv
       ├── csv_errors.csv
validation_history/
  └── 2026-03-11T05-18-14Z/
       ├── config.json
       ├── data1.csv
       ├── csv_errors.csv
  └── 2026-03-06T01-15-24Z/
       ├── config.json
       ├── license_data.csv
       ├── csv_errors.csv

Después de la inserción

ingestion_history/
  └── 2026-03-11T12-23-56Z/
       ├── config.json
       ├── data1.csv
  └── 2026-03-06T04-20-17Z/
       ├── config.json
       ├── license_data.csv
       ├── csv_errors.csv
validation_history/
  └── 2026-03-11T05-18-14Z/
       ├── config.json
       ├── data1.csv
       ├── csv_errors.csv
  └── 2026-03-06T01-15-24Z/
       ├── config.json
       ├── license_data.csv
       ├── csv_errors.csv

Para activar otra inserción, vuelve a subir nuevos archivos a tu directorio predeterminado.

Notas importantes

  • Tiempo de procesamiento: los datos pueden tardar hasta un día en aparecer en el sistema de Meta después de la inserción.