Accounts Payable - Vendors & Bills
🔍 Problem Statement
As an internal finance team, I experience inefficiencies and manual work when managing payments to vendors, which results in delayed payments and inconsistent records.
💡 User Story
As an admin user, I want to create, manage, and track vendor bills from the platform, so that I can streamline AP workflows without relying on external tools.
🎯 Definition of Done (DoD)
✔ Business users (Admins) can view and manage all Vendors from a dedicated section in the platform, with support for:
List view of all vendors with search, sort, and filter
Create, Read, Update, Delete (CRUD) operations using Laravel-based backend logic
Vendor details include
First name
Last name
Email
Phone
Job title
Date of birth
✔ Business users can manage Bills through a separate Accounts Payable > Bills section, with:
List view of all bills, sortable and filterable by vendor, status, and date
CRUD operations for one-time
Each bill supports:
Line items (manual input)
PDF generation
✔ All actions (vendor creation, bill creation, updates, status changes, etc.) are powered by Pelcro’s CORE API endpoints, which:
Serve as the single source of truth
Are documented and stable for internal and future external use
Are consumed by the Admin UI as a client of the API
✔ This change will impact:
UI – Admin-only sections for Vendors and Bills
API – New versioned CORE endpoints (e.g.,
/vendors,/bills)Backend – Laravel CRUD services for all related operations
✔ This solution will include the following limitations:
No vendor self-serve access (OpenAPI/SDK not yet exposed)
No delivery logic, rate automation, or accounting integrations
No tax calculation or international currency handling
Vendors Resource:
GET /v1/core/vendors – List vendors
POST /v1/core/vendors – Create vendor
GET /v1/core/vendors/{id} – Show vendor
PUT /v1/core/vendors/{id} – Update vendor
DELETE /v1/core/vendors/{id} – Delete vendor
Bills Resource:
GET /v1/core/billing/bills – List bills
POST /v1/core/billing/bills – Create bill
GET /v1/core/billing/bills/{id} – Show bill
POST /v1/core/billing/bills/{id}/finalize – Finalize bill
POST /v1/core/billing/bills/{id}/mark-as-paid – Mark bill as paid
Publisher Interface
Vendors Management:
GET /{site_id}/vendors – List vendors
GET /{site_id}/vendors/create – Create vendor form
GET /{site_id}/vendors/{vendor_id}/edit – Edit vendor form
GET /{site_id}/vendors/export – Export vendors
POST /{site_id}/vendors – Store vendor
GET /{site_id}/vendors/{vendor_id} – Show vendor
PUT /{site_id}/vendors/{vendor_id} – Update vendor
Bills Management:
GET /{site_id}/bills – List bills
GET /{site_id}/bills/create – Create bill form
POST /{site_id}/bills – Store bill
GET /{site_id}/bills/{bill_id} – Show bill
GET /{site_id}/bills/export – Export bills
POST /{site_id}/bills/{bill_id}/finalize – Finalize bill
POST /{site_id}/bills/{bill_id}/mark-as-paid – Mark as paid
Events:
Bills:
Bill\Created – When a bill is created
Bill\Finalized – When a bill is finalized
Bill\Paid – When a bill is marked as paid
Vendors:
Vendor\Created – When a vendor is created
Vendor\Updated – When a vendor is updated
Vendor\Deleted – When a vendor is deleted
Webhooks:
Bill Webhooks:
BillCreated – Webhook listener for bill creation
BillFinalized – Webhook listener for bill finalization
BillPaid – Webhook listener for bill payment
Vendor Webhooks:
VendorCreated – Webhook listener for vendor creation
VendorUpdated – Webhook listener for vendor updates
VendorDeleted – Webhook listener for vendor deletion
Log in to comment and vote
No comments yet
Be the first to share your thoughts.