Documentación / API / Emisores (merchants)

Subir o reemplazar el logo

PUThttps://api.cfdi.express/v1/merchants/{id}/logoAPI key

Sube la imagen que aparece en el encabezado de los PDFs del emisor. PNG, JPEG o WebP en base64, máximo 500 KB.

Sin logo, el PDF muestra sólo la razón social. El logo no afecta el XML ni el timbrado: es puramente de presentación.

Autenticación
Authorization: Bearer sk_test_... | sk_live_...

Parámetros

Parámetros de ruta

CampoTipoDescripción
idreqstringId del emisor.

Cuerpo (JSON)

CampoTipoDescripción
logoreqstringImagen PNG, JPEG o WebP en base64. Máximo 500 KB ya decodificada.

Ejemplos

cURL
curl -X PUT https://api.cfdi.express/v1/merchants/mkq2f8v3x1t7p9d4n6c0b5rz/logo \
  -H "Authorization: Bearer sk_test_..." \
  -H "Content-Type: application/json" \
  -d "{ \"logo\": \"$(base64 -w0 logo.png)\" }"

Respuesta

200 OK
{
  "id": "mkq2f8v3x1t7p9d4n6c0b5rz",
  "object": "merchant",
  "livemode": false,
  "rfc": "EKU9003173C9",
  "legalName": "ESCUELA KEMPER URGATE",
  "regimenFiscal": "601",
  "zip": "42501",
  "serie": "A",
  "defaultClaveProdServ": "01010101",
  "defaultClaveUnidad": "E48",
  "csd": { "object": "csd", "serialNumber": "30001000000500003416", "rfc": "EKU9003173C9", "validFrom": "2023-05-18T00:00:00.000Z", "validTo": "2027-05-18T00:00:00.000Z", "status": "active", "registeredWithPac": true, "updatedAt": "2026-08-18T16:24:51.002Z" },
  "logoUrl": "https://files.cfdi.express/logos/mkq2f8...png?X-Amz-Expires=900&...",
  "createdAt": "2026-08-18T16:20:03.114Z"
}

Errores

StatuscodeCuándo aparece
400validation_errorEl archivo no es PNG/JPEG/WebP o pesa más de 500 KB.
401unauthorizedFalta el header Authorization o la llave es inválida.
404not_foundEl emisor no existe en tu cuenta.

Continuar