Saltar al contenido principal

Procesar pago de una entrega

POST 

/company/payment/pay

Purpose

Genera un Payment Intent de Stripe para pagar el importe de una entrega específica usando el método de pago por defecto de la compañía.

Objective

Iniciar el cobro a la compañía por una entrega adjudicada, incluyendo la comisión de la plataforma, y notificar a ambas partes por email.

Use Cases

  • Compañía paga por una entrega adjudicada mediante subasta
  • Liquidación automática de entregas completadas
  • Procesamiento de pagos entre compañías y transportistas

Validation Flow

flowchart TD
A[Receive Request - serviceCode] --> B{User authenticated?}
B -->|No| C[404 USER_NOT_FOUND]
B -->|Yes| D{Company found?}
D -->|No| E[401 CIA_NOT_FOUND]
D -->|Yes| F{withStripe enabled?}
F -->|No| G[403 STRIPE_PAYMENTS_DISABLED]
F -->|Yes| H{default_payment_method set?}
H -->|No| I[401 PAYMENT_METHOD_NOT_FOUND]
H -->|Yes| J{Delivery found?}
J -->|No| K[401 DELIVERY_NOT_FOUND]
J -->|Yes| L[Calculate amount + platform fee]
L --> M[Generate Payment Intent in Stripe]
M --> N[Save payment_intent to delivery]
N --> O[Send emails to both parties]
O --> P[200 success: true]

Notes

  • Requiere autenticación JWT (bearerAuth)
  • Requiere withStripe=true en payment_settings de la compañía
  • Requiere método de pago por defecto (default_payment_method) configurado
  • El fee de plataforma se obtiene de Settings (default 3%)
  • Envía emails a la compañía y al transportista (trucker_cia)
  • El payment_intent ID se guarda en el documento delivery

Request

Responses

Payment Intent creado y pago iniciado

Response Headers