ACUMATICA

Acumatica Purchase Requisition Workflow Guide

February 22, 2024 13 min read

Introduction

Purchase requisitions in Acumatica enable organizations to control spending through approval workflows. Employees can request purchases, which then go through an approval process before becoming formal purchase orders.

Workflow Setup

Configure requisition preferences:

// Configure requisition settings
POST /api/data/PO101000
{
  "RequireRequisition": { "value": true },
  "DefaultRequisitionClass": { "value": "STANDARD" },
  "LimitAmount": { "value": 1000 },
  "ApprovalRequired": { "value": true }
}

Set Up Approval Workflow

// Configure approval workflow
POST /api/data/EP201000
{
  "WorkflowID": { "value": "PURCHASE-APPROVAL" },
  "Name": { "value": "Purchase Requisition Approval" },
  "Steps": [
    {
      "StepID": { "value": 1 },
      "LimitFrom": { "value": 0 },
      "LimitTo": { "value": 1000 },
      "Approver": { "value": "MANAGER1" }
    },
    {
      "StepID": { "value": 2 },
      "LimitFrom": { "value": 1000 },
      "LimitTo": { "value": 10000 },
      "Approver": { "value": "DIRECTOR1" }
    }
  ]
}

Creating Requisitions

// Create purchase requisition
POST /api/data/PO301000
{
  "RequisitionNbr": { "value": "RQ-202 },
  "Request4-001"orID": { "value": "JOHNDOE" },
  "Department": { "value": "IT" },
  "Priority": { "value": "Normal" },
  "Lines": [
    {
      "InventoryID": { "value": "LAPTOP-001" },
      "Qty": { "value": 5 },
      "EstUnitCost": { "value": 1200 },
      "VendorID": { "value": "SUPPLIER1" },
      "Reason": { "value": "New hire equipment" }
    }
  ]
}

Approval Process

// Submit for approval
POST /api/data/PO301000/Submit
{
  "RequisitionNbr": { "value": "RQ-2024-001" }
}
// Approve requisition
POST /api/data/PO301000/Approve
{
  "RequisitionNbr": { "value": "RQ-2024-001" },
  "ApproverNotes": { "value": "Approved for Q1 budget" }
}
// Reject requisition
POST /api/data/PO301000/Reject
{
  "RequisitionNbr": { "value": "RQ-2024-001" },
  "RejectReason": { "value": "Budget constraints" }
}

Converting to Purchase Orders

// Convert approved requisition to PO
POST /api/data/PO301000/ConvertToPO
{
  "RequisitionNbr": { "value": "RQ-2024-001" },
  "VendorID": { "value": "SUPPLIER1" }
}
class RequisitionManager {
    constructor(api) {
        this.api = api;
    }

    async createRequisition(items, requestor) {
        return await this.api.post('PO301000', {
            RequestorID: { value: requestor },
            Lines: items.map(item => ({
                InventoryID: { value: item.inventoryId },
                Qty: { value: item.qty },
                EstUnitCost: { value: item.estimatedCost }
            }))
        });
    }

    async submitForApproval(requisitionNbr) {
        return await this.api.post('PO301000/Submit', {
            RequisitionNbr: { value: requisitionNbr }
        });
    }

    async convertToPO(requisitionNbr, vendorId) {
        return await this.api.post('PO301000/ConvertToPO', {
            RequisitionNbr: { value: requisitionNbr },
            VendorID: { value: vendorId }
        });
    }
}

Summary

Purchase requisition workflows in Acumatica provide essential spending controls and approval processes. By automating the workflow and integrating with the API, organizations can streamline procurement while maintaining proper oversight.

For more information, check out our other tutorials on Acumatica REST API and Budget vs Actual Analysis.