Registra un vendedor y verifica su cuenta de payout
Para marketplaces: registra un vendedor, confirma su destino de Pago Móvil con dos microdepósitos y define su comisión para dividir pagos y pagarle.
Qué vas a hacer
Un vendedor es alguien por quien tu marketplace cobra. En la API un vendedor es un merchant (/v1/merchants). Antes de pagarle a un vendedor, su destino de Pago Móvil debe verificarse con dos depósitos pequeños que el vendedor lee en su banco.
- Una cuenta marketplace (VEXPay define el modelo de negocio; mira Vendedor o marketplace).
- El nombre del vendedor, su cédula o RIF, email y teléfono de contacto, y el banco y teléfono de su Pago Móvil.
- Un endpoint de webhook suscrito a
merchant.verifiedymerchant.rejected.
Pasos
- Registra al vendedor
POST /v1/merchantscon tu propio id de vendedor comoexternalRef(único, y la clave de idempotencia),name,identification(V/E+ 8 dígitos oJ/G+ 9 dígitos),contactEmail,contactPhone, ybankCode(4 dígitos) +phone(celular local de 11 dígitos, por ejemplo04121234567) para su primer método de payout. Opcionalmente agregaapplicationFeePercent(su comisión) yautoPayoutEnabled. - Inicia la verificación
POST /v1/merchants/:id/payout-methods/:methodId/verify/start. VEXPay envía dos depósitos de unos céntimos al Pago Móvil del vendedor. - El vendedor lee los dos montos
Pide al vendedor ambos montos de su estado de cuenta. Tiene 2 días.
- Confirma los montos
POST /v1/merchants/:id/payout-methods/:methodId/verifyconamount1yamount2. Tienes 3 intentos. - Define la comisión (opcional)
Por vendedor con
PATCH /v1/merchants/:ido la columna Commission en Portal → Merchants, o una predeterminada para todos en Portal → Merchants → Default commission.
curl --request POST "${API_URL}/v1/merchants" \
--header "content-type: application/json" \
--header "x-api-key: ${VEXPAY_API_KEY}" \
--data '{
"externalRef": "seller-881",
"name": "Panadería La Esquina",
"identification": "J123456789",
"contactEmail": "ventas@laesquina.example",
"contactPhone": "04121234567",
"bankCode": "0102",
"phone": "04121234567",
"applicationFeePercent": 5
}'curl --request POST "${API_URL}/v1/merchants/MERCHANT_ID/payout-methods/METHOD_ID/verify" \
--header "content-type: application/json" \
--header "x-api-key: ${VEXPAY_API_KEY}" \
--data '{ "amount1": "0.37", "amount2": "0.82" }'Comprueba que funcionó
- Recibiste
merchant.verifiedpara el vendedor. GET /v1/merchants/:id/payout-methodsmuestra el método comoverified.- El vendedor aparece activo en Portal → Merchants con la comisión que definiste.
Si algo sale mal
| Síntoma | Causa probable | Qué hacer |
|---|---|---|
422 merchant_identification_missing | El vendedor no tiene cédula/RIF registrada | Agrega identification con PATCH /v1/merchants/:id. |
422 credit_rejected o merchant.rejected | El banco rechazó el destino (banco, teléfono o cédula no coinciden) | Revisa los datos con el vendedor y agrega un método corregido. |
amounts_mismatch con attemptsLeft | Montos equivocados | Vuelve a leer el estado de cuenta. Tras 3 fallos el método queda bloqueado 24 horas. |
410 window_expired | No se confirmó en 2 días | Inicia la verificación de nuevo. |
409 external_ref_conflict | El mismo externalRef enviado con datos distintos | Usa el vendedor existente (GET /v1/merchants?externalRef=…) o un id nuevo. |
Siguiente: Dividir pagos. Relacionado: Comerciantes y payouts · Liquidación marketplace