Patrón
Bloquee pagos a proveedores según el cumplimiento
El punto de conectar VendMetric a sus sistemas: dejar de pagarle a proveedores que han dejado vencer un documento requerido. Aquí está el patrón, usando la API de lectura y los webhooks.
La idea
Antes de que su proceso de cuentas por pagar libere un pago, le hace una pregunta a VendMetric: ¿este proveedor está en cumplimiento ahora mismo? Si no, el pago se retiene y se notifica a la persona correcta, hasta que el proveedor arregle lo que falta. Quitar esta verificación después significa cambiar un control financiero, que es exactamente el punto.
Paso 1: verifique al momento del pago
Cuando un pago está por liberarse, llame al punto de acceso de cumplimiento para ese proveedor y lea is_compliant.
async function vendorIsCompliant(vendorId) {
const res = await fetch(
`https://app.vendmetric.com/api/v1/vendors/${vendorId}/compliance`,
{ headers: { Authorization: `Bearer ${process.env.VENDMETRIC_KEY}` } },
);
if (!res.ok) return { ok: false, reason: "compliance check unavailable" };
const { data } = await res.json();
return {
ok: data.is_compliant,
reason: data.action_needed.map((r) => r.document_type_name).join(", "),
};
}
// In your payment release step:
const check = await vendorIsCompliant(vendor.vendmetricId);
if (!check.ok) {
holdPayment(payment, `Vendor not compliant: ${check.reason}`);
notifyProcurement(vendor, check.reason);
}Decida su propia política para el caso raro en que la verificación misma no esté disponible (retener, o permitir con una marca). VendMetric falla ruidosamente con un código distinto de 200 en lugar de fingir que un proveedor está en cumplimiento.
Paso 2: libere la retención automáticamente
En lugar de volver a verificar con un temporizador, suscríbase al webhook vendor.compliance_changed. Cuando un proveedor retenido vuelve a estar en cumplimiento, libere el pago.
// Your webhook receiver (verify the signature first, see the API reference)
app.post("/webhooks/vendmetric", (req, res) => {
if (!verify(req.rawBody, req.headers["x-vendmetric-signature"], SECRET)) {
return res.sendStatus(401);
}
const { event, data } = req.body;
if (event === "vendor.compliance_changed" && data.compliance === "COMPLIANT") {
releaseHeldPayments(data.vendor_id);
}
res.sendStatus(200);
});Lo que obtiene
- Ningún pago sale sin una verificación de cumplimiento vigente.
- Las retenciones se resuelven solas en el momento en que el proveedor arregla la brecha.
- Toda la decisión es evidencia: la verificación, la retención y la liberación son todas rastreables al estado de VendMetric en ese momento.
Empiece con la referencia de la API, o hable con nosotros sobre sus sistemas.
