POST/api/v4/connected-accounts/confirm-matches

Confirmar correspondencias de conexión

Confirma las correspondencias sugeridas entre ubicaciones y fichas que devuelve el endpoint de sugerencias de conexión.

Requiere una clave de API. Consulta Autenticación para conocer el formato del encabezado y la rotación de claves.

Parámetros

Cuerpo

NombreTipoObligatorioDescripción
inputobjectobligatorioWrapper object. The entire request body must be nested under `input`.
input.matchRecordIdsarray of stringsobligatorioMatch-record global IDs to confirm: the standard base64 of `<MatchRecordType>:<matchedDataDatabaseId>`, built from a connection-suggestion record. At least one ID is required.

Solicitud de ejemplo

Cuerpo listo para pegar. Sustituye los ID y valores de ejemplo por los tuyos.

Request body
{  "input": {    "matchRecordIds": [      "R21iTG9jYXRpb25NYXRjaGVkRGF0YTowZDVlMzA2Zi0wZGEwLTQ2ZTMtOTI5Zi1mZDNjNjdjY2Q4Y2M="    ]  }}

Respuestas

200Request accepted. `success` is `true` when every match was confirmed; when some IDs could not be confirmed they are listed in `failedIds` and `success` is `false`.
Response
{  "data": {    "confirmConnectMatches": {      "failedIds": null,      "success": true    }  }}
400Bad request, the body was not wrapped in `input`, `matchRecordIds` was omitted (error message: `Field value.matchRecordIds of required type [ID!]! was not provided`), or `input` carried a field the endpoint does not accept.
401Unauthenticated, missing or invalid API key.

Acepta las correspondencias sugeridas entre ubicaciones y fichas y las confirma, estableciendo la conexión activa entre las ubicaciones de Listings API y sus fichas correspondientes en Google Business Profile o Facebook. Una vez confirmada la correspondencia, la ficha comienza a sincronizarse con la ubicación de Listings API asociada.

Estructura de la solicitud. El cuerpo debe estar contenido en un objeto input, y el único campo que acepta es matchRecordIds, un array de IDs de registros de correspondencia ([ID!]!, obligatorio). Si envías un cuerpo plano (sin envolver), se rechaza con un HTTP 400, al igual que si incluyes un campo desconocido dentro de input, como connectedAccountId o el antiguo matchIds (Unknown field "connectedAccountId"). Una clave adicional fuera de input se ignora en lugar de rechazarse. Esta solicitud no tiene ningún campo connectedAccountId; la cuenta se deduce de los propios registros de correspondencia.

Construcción de un valor matchRecordIds. Un registro de sugerencia de conexión no tiene id. Toma su matchedDataDatabaseId y su accountType, únelos con dos puntos después del nombre del tipo de registro de correspondencia y codifica el resultado en base64:

accountTypeTipo de registro de correspondencia
GMBGmbLocationMatchedData
FBFbLocationMatchedData
APPLEAppleLocationMatchedData
Python
import base64 TYPES = {    "GMB": "GmbLocationMatchedData",    "FB": "FbLocationMatchedData",    "APPLE": "AppleLocationMatchedData",} def match_record_id(record):    raw = f"{TYPES[record['accountType']]}:{record['matchedDataDatabaseId']}"    return base64.b64encode(raw.encode()).decode()

Un ID que no se decodifique como uno de esos tres tipos no produce un 400. La llamada devuelve HTTP 200 con success: false y sin failedIds, así que comprueba success en cada llamada.

Este endpoint es el último paso del flujo de conexión masiva: conecta la cuenta, ejecuta POST /connected-accounts/trigger-matches para generar sugerencias, revísalas con el endpoint de sugerencias de conexión y, después, confirma aquí los registros aprobados.

Caso de uso: aceptación masiva de correspondencias revisadas. Después de que una agencia importe la cuenta de Google de un cliente y revise las correspondencias sugeridas en tu propia interfaz, envía los matchRecordIds aprobados en una sola llamada en lugar de hacer una llamada por correspondencia. Envía únicamente los IDs que haya aprobado el operador para que las sugerencias sin revisar o incorrectas queden intactas.

Confirmar una correspondencia no envía datos inmediatamente a Google o Facebook; vincula la ubicación de Listings API con la ficha de la plataforma de publicación para que las actualizaciones posteriores de la ficha se transmitan a través de esa conexión. Una llamada correcta devuelve success: true con failedIds: null. Cuando uno o más IDs no se hayan podido confirmar (por ejemplo, por un registro de correspondencia desconocido o ya consumido, o por una correspondencia cuya ubicación se haya archivado desde entonces), esos IDs se devuelven en failedIds y success es false, para que puedas reintentar o mostrar solo los fallos. failedIds contiene los IDs de la base de datos decodificados, no los valores codificados que enviaste, así que relaciónalos con matchedDataDatabaseId. Para seleccionar manualmente una sola ficha sin pasar por las sugerencias, utiliza el endpoint de conexión de fichas.

Request
curl -X POST 'https://listingsapi.com/api/v4/connected-accounts/confirm-matches' \  -H "Authorization: API $LISTINGSAPI_KEY" \  -H 'Content-Type: application/json' \  -d '{    "input": {      "matchRecordIds": [        "R21iTG9jYXRpb25NYXRjaGVkRGF0YTowZDVlMzA2Zi0wZGEwLTQ2ZTMtOTI5Zi1mZDNjNjdjY2Q4Y2M="      ]    }  }'