Finance API =========== Vendor Payments --------------- .. list-table:: :header-rows: 1 :widths: 30 10 20 40 * - Endpoint - Method - Permission - Description * - ``/api/v1/vendor-payments/`` - GET - finance, procurement - List vendor payments. Filters: ``status``, ``vendor``, ``date_range`` * - ``/api/v1/vendor-payments/`` - POST - finance - Create payment. Body: ``{procurement_request, amount, payment_method}`` * - ``/api/v1/vendor-payments/{id}/`` - GET - finance - Get payment detail * - ``/api/v1/vendor-payments/{id}/`` - PATCH - finance - Update: status, transaction_ref, paid_at Job Payouts ----------- .. list-table:: :header-rows: 1 :widths: 30 10 20 40 * - Endpoint - Method - Permission - Description * - ``/api/v1/job-payouts/`` - GET - finance, central_ops - List payouts. Filters: ``status``, ``team``, ``payout_type``, ``date_range`` * - ``/api/v1/job-payouts/{id}/`` - GET - finance, central_ops - Get payout detail * - ``/api/v1/job-payouts/{id}/mark-payable/`` - POST - central_ops - Mark job as payable (approve for payment) * - ``/api/v1/job-payouts/{id}/release/`` - POST - finance - Release payment. Body: ``{payment_method, transaction_ref}`` Payment Schedules ----------------- .. list-table:: :header-rows: 1 :widths: 30 10 20 40 * - Endpoint - Method - Permission - Description * - ``/api/v1/payment-schedules/`` - GET - finance, central_ops - List all payment schedules * - ``/api/v1/payment-schedules/`` - POST - finance - Create schedule. Body: ``{team, schedule_type, next_payout_date}`` * - ``/api/v1/payment-schedules/{id}/`` - PATCH - finance - Update schedule type or next payout date Finance Dashboard ----------------- .. list-table:: :header-rows: 1 :widths: 30 10 20 40 * - Endpoint - Method - Permission - Description * - ``/api/v1/finance/summary/`` - GET - finance - Dashboard data: pending vendor payments count + total, upcoming team payouts, overdue payments, monthly spend summary