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=trueenpayment_settingsde 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_intentID se guarda en el documentodelivery
Request
Responses
- 200
- 401
- 403
- 404
- 500
Payment Intent creado y pago iniciado
Response Headers
Compañía, entrega o método de pago no encontrado
Response Headers
Pagos con Stripe no habilitados para esta compañía
Response Headers
Usuario no encontrado
Response Headers
Error al procesar el pago en Stripe