Prepare your data, import it into the system, and start managing budgets, purchase orders, receipts, and payments — step by step.
Most of your procure-to-pay data is created directly in the app through chat — budgets, requisitions, purchase orders, receipts, and payments. The CSV files below serve as templates for bulk import or export. Download the sample files, adapt them to your data, and import them to get started immediately.
CSV files with realistic fictional data — ready to import or adapt
Download Sample CSVs (ZIP)Your budget lines with allocated, committed, and consumed amounts. One row per budget line per period.
| Column | Description | Example |
|---|---|---|
| name | Budget name | Budget BTP 2026 |
| fiscal_year | Fiscal year | 2026 |
| period | Period (e.g. Q1, H1, full year) | Q1 |
| scope_type | Type of scope (category, department, etc.) | category |
| scope_value | Value of the scope | BTP/Construction |
| category_n1 | Primary category | BTP/Construction |
| department | Responsible department | Direction Opérations |
| cost_center | Cost center code | CC-OPS-001 |
| amount_allocated | Allocated amount | 500000000 |
| amount_committed | Committed amount | 120000000 |
| amount_consumed | Consumed amount | 45000000 |
| currency | Currency code | XOF |
| owner_name | Budget owner name | Bamba Kadriatou |
| status | Budget status | active |
| alerts_threshold_pct | Alert threshold percentage | 80 |
| hard_stop_at_pct | Hard stop percentage | 100 |
| notes | Additional notes | Review at end of Q1 |
Purchase requests from your teams. One row per requisition line with requester, category, and suggested supplier.
| Column | Description | Example |
|---|---|---|
| pr_number | Requisition number | PR-2026-0001 |
| purpose | Purpose of the request | Réhabilitation route Abidjan-Bouaké |
| requester_name | Name of the requester | Bamba Kadriatou |
| department | Requesting department | Direction Opérations |
| cost_center | Cost center code | CC-OPS-001 |
| category_n1 | Primary category | BTP/Construction |
| category_n2 | Secondary category | Génie civil |
| urgency | Urgency level | high |
| needed_by | Needed-by date (YYYY-MM-DD) | 2026-02-15 |
| line_description | Line item description | Ciment CEM II 42.5 |
| line_quantity | Quantity requested | 500 |
| line_unit | Unit of measure | tonnes |
| line_unit_price | Unit price | 85000 |
| currency | Currency code | XOF |
| vat_rate | VAT rate percentage | 18 |
| budget_name | Linked budget name | Budget BTP 2026 |
| suggested_supplier_name | Suggested supplier | CIMENTERIE DU SAHEL |
| status | Requisition status | pending_approval |
| notes | Additional notes | Priority for phase 1 |
Approved purchase orders sent to suppliers. One row per order line with delivery and payment terms.
| Column | Description | Example |
|---|---|---|
| po_number | Purchase order number | PO-2026-0001 |
| pr_number | Linked requisition number | PR-2026-0001 |
| supplier_name | Supplier name | CIMENTERIE DU SAHEL |
| line_description | Line item description | Ciment CEM II 42.5 |
| line_quantity | Quantity ordered | 500 |
| line_unit | Unit of measure | tonnes |
| line_unit_price | Unit price | 85000 |
| currency | Currency code | XOF |
| vat_rate | VAT rate percentage | 18 |
| expected_delivery_date | Expected delivery date | 2026-02-10 |
| delivery_address | Delivery address | Depôt Abidjan Port |
| payment_terms | Payment terms | 30 days net |
| incoterm | Delivery terms | DDP |
| status | Order status | sent |
| buyer_name | Buyer who issued the order | Kouassi Marc |
| notes | Additional notes | Confirm transport arrangement |
Goods or services received against purchase orders. One row per receipt line with quantities and condition.
| Column | Description | Example |
|---|---|---|
| po_number | Linked purchase order number | PO-2026-0001 |
| received_at | Date and time received | 2026-02-09 |
| received_by_name | Name of the receiver | Traoré Ibrahim |
| line_description | Line item description | Ciment CEM II 42.5 |
| line_quantity_received | Quantity received | 500 |
| line_quantity_ordered | Quantity ordered | 500 |
| line_unit | Unit of measure | tonnes |
| condition | Condition of goods received | good |
| notes | Additional notes | All pallets intact |
Payments executed or scheduled against purchase orders. One row per payment with invoice and bank details.
| Column | Description | Example |
|---|---|---|
| po_number | Linked purchase order number | PO-2026-0001 |
| supplier_name | Supplier name | CIMENTERIE DU SAHEL |
| invoice_ref | Invoice reference | INV-CS-2026-0042 |
| invoice_date | Invoice date (YYYY-MM-DD) | 2026-02-12 |
| amount | Payment amount | 50075000 |
| currency | Currency code | XOF |
| method | Payment method | bank_transfer |
| bank_ref | Bank reference | BRT-2026-887123 |
| bank_account | Bank account used | CI05 CI 001 0102 0304 0506 |
| scheduled_date | Scheduled payment date | 2026-03-14 |
| executed_date | Actual execution date | 2026-03-14 |
| status | Payment status | executed |
| approved_by_name | Approver name | Diabaté Aminata |
| notes | Additional notes | Payment on schedule |
Once your CSV files are ready, importing them takes seconds. The system validates every file and shows you exactly what will be imported. For day-to-day operations, most records are created directly in the app via chat.
Launch the Procure-to-Pay app. You'll see a chat interface — this is your command center.
Click the + button to attach a CSV file, or drag and drop it into the chat.
Describe what you want in plain language:
The system automatically checks your data and shows you:
• Number of rows detected and ready to import
• Data quality score (percentage)
• Any errors or warnings (missing columns, invalid dates, unknown budgets)
• A preview of the first rows
Once you're satisfied with the validation results, confirm the import. Your data is now available for requisitions, orders, matching, payments, and reporting.
Once your data is imported, here's what your team can do every day — just by asking in plain language.
Define budget lines by category, department, and period — with thresholds for alerts and hard stops.
Result: A budget line with allocated amount, owner, alert threshold, and hard-stop percentage — ready for tracking.
📊 Dashboard: Dashboard → Budgets tab → '+' button → fill name, period, allocated, alert threshold, hard-stop → Save
Requesters create requisitions with line items, linked budgets, and suggested suppliers.
Result: A requisition with PR number, line details, budget link, urgency, and needed-by date — ready for approval.
📊 Dashboard: Dashboard → Requisitions tab → '+' button → fill requester, department, category, lines, suggested supplier, urgency, need date → Save
Route requisitions to the right approvers based on amount, category, and department.
Result: A list of pending requisitions with amounts, requesters, and budget impact — ready for approval or rejection.
📊 Dashboard: Dashboard → Approvals tab → 'My queue' sub-tab → approve, reject, or reassign steps
Convert approved requisitions into purchase orders with delivery and payment terms.
Result: A purchase order with PO number, supplier, line items, delivery address, payment terms, and incoterm.
📊 Dashboard: Dashboard → Purchase Orders tab → convert requisition to PO → review → 'Issue' button
Log goods received against purchase orders with quantities and condition checks.
Result: A receipt record linked to the purchase order with received quantities, receiver name, and condition status.
📊 Dashboard: Dashboard → Receipts tab → '+' button → select PO → enter quantities line by line → Save
Automatically match purchase orders, receipts, and invoices to catch discrepancies before payment.
Result: A matching report showing quantity, price, and total discrepancies — with approval or hold recommendation.
📊 Dashboard: Dashboard → Purchase Orders tab → select PO → 'Matching' button → see PO vs receipt vs invoice comparison
Schedule payments based on payment terms, with approval routing and bank details.
Result: A scheduled payment with amount, method, bank account, approver, and execution date.
📊 Dashboard: Dashboard → Payments tab → '+' button → select PO/invoice → enter amount, date, bank → 'Schedule'
Monitor allocated, committed, and consumed amounts in real time with alerts when thresholds are reached.
Result: A budget dashboard with allocated, committed, and consumed amounts, utilization percentages, and threshold alerts.
📊 Dashboard: Dashboard → Budgets tab → each budget shows allocated, committed, consumed, available, % with visual gauge
Export the full procure-to-pay trail for any period, supplier, or category for audits and reviews.
Result: A formatted PDF report with requisitions, orders, receipts, matching results, and payments — ready for auditors.
📊 Dashboard: Dashboard → any tab → export button for PDF or CSV
Catch receipt discrepancies early, react to budget alerts, and detect stale purchase orders before they become problems.
Flag missing, damaged, or wrong items at receipt time — the system updates the 3-way match status automatically.
Result: The discrepancy is recorded with details (missing, damaged, wrong item), the supplier is flagged, and the 3-way match status is updated.
📊 Dashboard: Dashboard → Receipts tab → find the receipt → 'Signal discrepancy' button → describe the issue
Get color-coded budget alerts before you hit the hard stop, so you can take action in time.
Result: A color-coded budget report: red (critical, 100%+), orange (alert, 80%+), green (ok). Each with allocated, committed, consumed, available, and % used.
📊 Dashboard: Dashboard → Overview tab → alerts shown at top with color codes. Dashboard → Budgets tab → visual gauge per budget with alert and hard-stop thresholds
Find purchase orders that were issued but never received — before they tie up your budget.
Result: A list of stale POs with days since issue, supplier, amount, and status — ready for follow-up or cancellation.
📊 Dashboard: Dashboard → Purchase Orders tab → filter by status 'issued' and sort by date
Configure approval workflows, manage roles and permissions with separation of duties, and maintain a complete audit trail.
Design multi-step approval workflows with conditions by amount, category, and currency — with SLAs and escalation roles.
Result: A workflow with ordered steps, SLA in hours, step type (sequential/parallel/single), and escalation role. Conditions by amount, category, and currency.
📊 Dashboard: Dashboard → Approvals tab → Workflows sub-tab → 'Designer' button → define steps, roles, SLAs, conditions → Save
Create roles with specific permissions. Buttons without permission are grayed out. Separation of duties is enforced automatically.
Result: A role with specific permissions. Buttons without permission are grayed out with a tooltip explaining the missing permission. Separation of duties enforced (treasurer cannot approve orders, buyer cannot confirm payments).
📊 Dashboard: Dashboard → Pilotage tab → Roles & RBAC sub-tab → roles table, 'My effective permissions' card, Create/Assign/Revoke buttons
Track every action on any entity with an immutable, chronological log — exportable for external auditors.
Result: A chronological, immutable log: creation, issuance, field modifications, partial receipt, payment confirmation — with user and timestamp. Exportable to CSV for external auditors.
📊 Dashboard: Dashboard → Pilotage tab → Action Journal button → filters by agent, entity type, user, free search → CSV export
Stay informed with real-time alerts and get an instant snapshot of all your P2P activity.
The notification bell aggregates all critical events: budget blocking, SLA exceeded, receipt discrepancies, payment confirmations, and PO issuances.
Result: A list grouped by type: critical (budget blocking), high (SLA exceeded, escalation), medium (receipt discrepancy), success (payment confirmed), info (PO issued).
📊 Dashboard: Click the bell icon at top → notification list → click to navigate → 'Mark all as read'
Your home page — an instant snapshot of all your procure-to-pay activity in one place.
Result: Counters (active budgets, pending requisitions, issued POs, payments due), priority alerts (budget blocking, SLA exceeded, receipt discrepancy), approval queue, payments due this week.
📊 Dashboard: Dashboard → Overview tab — your home page with an instant snapshot of all P2P activity
The CSV files are templates for bulk import or export. For day-to-day operations, create budgets, requisitions, orders, receipts, and payments directly in the chat — the system handles the structure for you.
Always specify the budget name when creating a requisition. This enables real-time budget consumption tracking and prevents overspending.
Use the exact same supplier name across requisitions, orders, receipts, and payments. The system links the full P2P chain by supplier name and PO number.
Always use YYYY-MM-DD format for dates. This avoids ambiguity between regional formats and ensures accurate matching and scheduling.
Always run three-way matching (PO, receipt, invoice) before scheduling a payment. This catches quantity, price, and total discrepancies automatically.
Export the full P2P trail at the end of each period. This keeps your audit documentation current and ready for internal or external reviews.
Launch the app and import your data, or request a personalized demo.