ProfitGuard ya está aquí. Repricing con IA para Amazon, totalmente protegido y en piloto automático. Pruébalo gratis
Acceso anticipadov1 · api_version 2026-11-01

Conecta cualquier almacén a ProfitDesk.

La Prep API convierte tu software en un prep center dentro de ProfitDesk. Los avisos te llegan como webhooks firmados, tú devuelves recepciones y salidas, y cada unidad queda trazable desde la compra hasta el envío a FBA.

  • Webhooks firmados
  • REST API
  • OpenAPI 3.1
  • Reproducción de eventos
ProfitDesk → túwebhook firmado
POST https://wms.example.com/webhooks/profitdesk
X-Webhook-Event-Type: inbound.announced
X-Webhook-Signature: sha256=9f2c41…

{
  "type": "inbound.announced",
  "connection_id": "pcn_812",
  "data": {
    "inbound": {
      "id": "inb_2000000123",
      "fulfillment": "FBA",
      "tracking_numbers": ["1Z999AA10123456784"],
      "lines": [{
        "id": "inl_99",
        "purchase_id": "pur_4711",
        "item": { "sku": "AB-123", "asin": "B0ABCDEFGH" },
        "quantity_expected": 6
      }]
    }
  }
}
Tú → ProfitDeskREST · 200 OK
POST /v1/prep/inbounds/inb_2000000123/receipts
Authorization: Bearer ppk_3f9a…

{
  "event_id": "rcpt-8812",
  "status": "received",
  "lines": [{ "line_id": "inl_99", "quantity_received": 6 }]
}

Dos formas de entrar

Una API, pensada para dos tipos de desarrolladores.

Configúralo en tu cuenta de ProfitDesk
  1. 1Añade tu softwareAjustes → Integraciones → Prep centers → Añadir → «Software propio (Webhook)». Introduce tu endpoint HTTPS y elige los eventos que quieras.
  2. 2Guarda dos credencialesUn secreto de firma (whsec_…) y una clave de API (ppk_…), que se muestran una sola vez. Puedes rotar ambas cuando quieras.
  3. 3Vincula un almacénA partir de ahora, las compras de ese almacén se anuncian a tu software.
La clave ve
Solo esta conexión
Límite de uso
2 req/s, ráfagas de 10
Pruebas
Ping «Enviar prueba» y registro de entregas
Combínalo
Junto a PrepBusiness o PrepTool, por almacén

Cómo funciona

De la compra al envío a FBA,
en cinco eventos.

  1. 01ProfitDesk
    La mercancía está en caminoinbound.announcedUn webhook firmado con líneas, SKU, ASIN y seguimiento. Responde 2xx, opcionalmente con tu propio external_id.
  2. 02ProfitDesk
    Llegan los detallesinbound.updatedNuevos códigos de seguimiento y el FNSKU en cuanto Amazon lo asigna, para que puedas imprimir etiquetas.
  3. 03Tú
    Cuentas la mercancíaPOST …/receiptsRecuentos absolutos por línea, incluidas las unidades dañadas. ProfitDesk actualiza la compra.
  4. 04Tú
    La envíasPOST /v1/prep/outboundsLas líneas más el ID del envío FBA vinculan tu salida con el envío de Amazon.
  5. 05Amazon
    Amazon la recibeFBA15XYZProfitDesk registra la cantidad reenviada a partir de los datos propios de Amazon. Tu salida es el rastro.
Identificadores estables

Cada unidad, trazable de principio a fin.

Cada objeto lleva un id con prefijo de tipo. El id de la compra nunca cambia, ni siquiera cuando la mercancía se vuelve a anunciar o cambia de almacén.

  1. pur_4711CompraLa compra del vendedor. La clave para seguir una unidad, para siempre.
  2. inb_2000000123EntradaUn aviso. Un nuevo aviso genera una entrada nueva.
  3. inl_99Línea de entradaUna compra dentro de ella. Úsala en recepciones y salidas.
  4. out_55SalidaLo que has enviado, identificado con tu propio external_id.
  5. FBA15XYZEnvío FBAEl ID de envío de Amazon, vinculado desde tu salida.

Usa también tus propias referencias: cada ruta que acepta un id acepta además ext:<tu id>.

Hecho para producción

Las partes aburridas
ya están resueltas.

Webhooks firmadosHMAC-SHA256 sobre la marca de tiempo y el cuerpo sin procesar. Se rechazan las peticiones de más de cinco minutos.
Reintentos durante 72 horasA 1, 5 y 15 minutos, a 1, 3 y 6 horas, y después cada 12 horas.
Idempotencia integradaMisma clave, misma petición: se reenvía la respuesta guardada. Las claves se conservan 30 días.
Seguro ante desordenCada recepción y salida lleva occurred_at. Los eventos más antiguos se devuelven como stale y no cambian nada.
Feed de reproducciónGET /v1/prep/events guarda cada evento durante 90 días. Consúltalo por polling en lugar de usar webhooks si lo prefieres.
Ordenado por entradaUna cancelación nunca adelanta a su aviso. Deduplica por id de evento.
Deep links a tu WMSUna plantilla de enlace añade «abrir en tu software» junto a cada compra anunciada.
Rotación sin downtimeTras rotar un secreto, el anterior sigue firmando durante 24 horas.
Verifica cada petición

HMAC-SHA256 en una docena de líneas.

Firma el cuerpo sin procesar con tu secreto whsec_ y la marca de tiempo, compara en tiempo constante y rechaza todo lo que tenga más de cinco minutos. Durante una rotación de secreto se envían ambas firmas durante 24 horas.

import crypto from "node:crypto";

function verify(rawBody, headers, secret) {
  const ts = headers["x-webhook-timestamp"];
  const signature = headers["x-webhook-signature"];
  if (!ts || !signature || !/^\d+$/.test(ts)) return false;
  if (Math.abs(Date.now() / 1000 - Number(ts)) > 300) return false;
  const expected = "sha256=" + crypto.createHmac("sha256", secret).update(`${ts}.${rawBody}`).digest("hex");
  return signature.split(",").some((sig) => {
    const a = Buffer.from(sig.trim()), b = Buffer.from(expected);
    return a.length === b.length && crypto.timingSafeEqual(a, b);
  });
}

Endpoints

URL base https://api.profitpath.app · Bearer ppk_…

GET/v1/prep/connectionsLa conexión de la clave
GET/v1/prep/inboundsListar entradas
GET/v1/prep/inbounds/{id}Una entrada, también por ext:
PUT/v1/prep/inbounds/{id}/external-idDefine tu referencia
POST/v1/prep/inbounds/{id}/receiptsInformar de mercancía recibida
POST/v1/prep/outboundsInformar de una salida
GET/v1/prep/outbounds/{id}Una salida
GET/v1/prep/itemsArtículos, uno por SKU
GET/v1/prep/eventsReproducir eventos de webhook

Eventos de webhook

Se entregan al menos una vez, en orden por entrada.

connection.created · updated · removedUn vendedor se conecta, cambia sus datos o se vaProveedores
inbound.announcedLa mercancía está en camino hacia tiActivo
inbound.updatedHan cambiado el seguimiento, el FNSKU, el id externo o las líneasActivo
inbound.cancelledCancelada, movida o anunciada de nuevoActivo
inbound.restoredUna entrada cancelada vuelve a estar activaActivo
inbound.receivedEco de tu propia recepciónOpcional
outbound.recordedEco de tu propia salidaOpcional
ping«Enviar prueba» desde ProfitDeskSoftware propio

FAQ

Preguntas de desarrolladores

Si usas tu propio software de almacén para tu propio negocio en Amazon, utiliza la conexión de software propio en los ajustes de ProfitDesk. Si desarrollas software que usan muchos prep centers o vendedores, regístrate como proveedor de prep: un endpoint y una clave cubren a todos los vendedores.

Con tu propio software, usa un almacén de prueba y una compra de prueba en tu cuenta, y «Enviar prueba» para comprobar la conectividad. Como proveedor de prep, pídenos una conexión de prueba desde una cuenta de vendedor de prueba y ejecuta todo el flujo antes de que se conecte tu primer vendedor real. Los eventos siempre se pueden reproducir.

La mercancía se anuncia en cuanto existe el listing en Amazon. Amazon asigna el FNSKU un poco más tarde, y llega después en inbound.updated.

ProfitDesk reintenta durante hasta 72 horas. Después puedes ponerte al día cuando quieras con GET /v1/prep/events.

No. Las salidas son un rastro. Las cantidades reenviadas proceden de los datos de envío de Amazon, vinculados mediante el ID de envío FBA que mandas.

Sí. Consulta GET /v1/prep/events cada minuto a partir del último id de evento que hayas procesado, y deduplica por id.

¿Desarrollas software de prep
para muchos vendedores?

Aparece en el selector de prep centers de cada vendedor de ProfitDesk. Un endpoint y una clave los cubren a todos.

support@profitpath.com