Customer App

app.grivaone.com

The core ERP consumed by end-user companies — sales, purchasing, inventory, POS, accounting, HR, projects and every operational module.

893 endpoints25 moduleshttps://gulfpay-production.up.railway.app/api/v1
893 endpoints across 25 modules

The full sell-side document flow: quotation → sales order → delivery note → invoice, plus returns, proforma, salesman & van sales.

GETJWT
/api/v1/consignment/summary

Summary

GETJWT
/api/v1/consignment

List consignments

Query: pagination / filters

GETJWT
/api/v1/consignment/:id

Get a consignment by id

POSTJWT
/api/v1/consignment

Create a consignment

Body: CreateConsignmentDto

PATCHJWT
/api/v1/consignment/:id/settle

Settle

Body: SettleConsignmentDto

PATCHJWT
/api/v1/consignment/:id

Update a consignment

Body: UpdateConsignmentDto

DELETEJWT
/api/v1/consignment/:id

Delete a consignment

GETJWT
/api/v1/delivery-notes

List delivery notes

Query: pagination / filters

GETJWT
/api/v1/delivery-notes/:id

Get a delivery note by id

POSTJWT
/api/v1/delivery-notes

Create a delivery note

Body: CreateDeliveryNoteDto

PATCHJWT
/api/v1/delivery-notes/:id

Update a delivery note

Body: UpdateDeliveryNoteDto

PATCHJWT
/api/v1/delivery-notes/:id/status

Set status

Body: JSON

PATCHJWT
/api/v1/delivery-notes/:id/lock

Set lock

Body: JSON

PATCHJWT
/api/v1/delivery-notes/:id/discount

Set discount

Body: JSON

PATCHJWT
/api/v1/delivery-notes/:id/charges

Set charges

Body: JSON

PATCHJWT
/api/v1/delivery-notes/:id/reminder

Set reminder

Body: JSON

POSTJWT
/api/v1/delivery-notes/:id/duplicate

Duplicate

POSTJWT
/api/v1/delivery-notes/:id/convert-to-sales-invoice

Convert a DeliveryNote to a SalesInvoice (bill a dispatched shipment)

POSTJWT
/api/v1/delivery-notes/:id/convert-to-proforma-invoice

Convert a DeliveryNote to a ProformaInvoice (client docx #1: proforma should be able to follow the delivery note)

DELETEJWT
/api/v1/delivery-notes/:id

Delete a delivery note

GETJWT
/api/v1/proforma-invoices/:proformaInvoiceId/activities

List proforma-invoice activities

Query: pagination / filters

POSTJWT
/api/v1/proforma-invoices/:proformaInvoiceId/activities

Create a proforma-invoice activity

Body: CreateActivityDto

DELETEJWT
/api/v1/proforma-invoices/:proformaInvoiceId/activities/:activityId

Delete a proforma-invoice activity

GETJWT
/api/v1/proforma-invoices

List proforma invoices

Query: pagination / filters

GETJWT
/api/v1/proforma-invoices/:id

Get a proforma invoice by id

POSTJWT
/api/v1/proforma-invoices

Create a proforma invoice

Body: CreateProformaInvoiceDto

PATCHJWT
/api/v1/proforma-invoices/:id

Update a proforma invoice

Body: UpdateProformaInvoiceDto

PATCHJWT
/api/v1/proforma-invoices/:id/status

Set status

Body: JSON

POSTJWT
/api/v1/proforma-invoices/:id/convert-to-sales-invoice

Convert a Proforma Invoice directly to a SalesInvoice

DELETEJWT
/api/v1/proforma-invoices/:id

Delete a proforma invoice

GETJWT
/api/v1/quotations/:quotationId/activities

List quotation activities

Query: pagination / filters

POSTJWT
/api/v1/quotations/:quotationId/activities

Create a quotation activity

Body: CreateActivityDto

DELETEJWT
/api/v1/quotations/:quotationId/activities/:activityId

Delete a quotation activity

GETJWT
/api/v1/quotations

List quotations

Query: pagination / filters

GETJWT
/api/v1/quotations/:id

Get a quotation by id

POSTJWT
/api/v1/quotations

Create a quotation

Body: CreateQuotationDto

PATCHJWT
/api/v1/quotations/:id

Update a quotation

Body: UpdateQuotationDto

PATCHJWT
/api/v1/quotations/:id/status

Set status

Body: JSON

POSTJWT
/api/v1/quotations/:id/convert-to-sales-order

Convert a Quotation to a SalesOrder

POSTJWT
/api/v1/quotations/:id/convert-to-sales-invoice

Convert a Quotation directly to a SalesInvoice (skipping SO)

POSTJWT
/api/v1/quotations/:id/convert-to-proforma-invoice

Convert a Quotation to a ProformaInvoice (pre-invoice / advance payment request, before the tax invoice is issued)

POSTJWT
/api/v1/quotations/:id/convert-to-delivery-note

Convert a Quotation to a DeliveryNote (ship first, bill later)

POSTJWT
/api/v1/quotations/:id/convert-to-sales-return

Convert a Quotation to a SalesReturn (credit note)

DELETEJWT
/api/v1/quotations/:id

Delete a quotation

GETJWT
/api/v1/sales-invoices

List sales invoices

Query: pagination / filters

GETJWT
/api/v1/sales-invoices/:id

Get a sales invoice by id

POSTJWT
/api/v1/sales-invoices

Create a sales invoice

Body: CreateSalesInvoiceDto

PATCHJWT
/api/v1/sales-invoices/:id

Update a sales invoice

Body: UpdateSalesInvoiceDto

PATCHJWT
/api/v1/sales-invoices/:id/status

Set status

Body: JSON

PATCHJWT
/api/v1/sales-invoices/:id/lock

Set lock

Body: JSON

PATCHJWT
/api/v1/sales-invoices/:id/discount

Set discount

Body: JSON

PATCHJWT
/api/v1/sales-invoices/:id/charges

Set charges

Body: JSON

PATCHJWT
/api/v1/sales-invoices/:id/reminder

Set reminder

Body: JSON

POSTJWT
/api/v1/sales-invoices/:id/record-payment

Record payment

Body: RecordPaymentDto

POSTJWT
/api/v1/sales-invoices/:id/zatca-qr

issue the invoice: generate/attach its ZATCA QR and stamp `qrGeneratedAt`

Body: IssueZatcaQrDto

POSTJWT
/api/v1/sales-invoices/:id/duplicate

Duplicate

DELETEJWT
/api/v1/sales-invoices/:id

Delete a sales invoice

GETJWT
/api/v1/sales-orders

List sales orders

Query: pagination / filters

GETJWT
/api/v1/sales-orders/:id

Get a sales order by id

POSTJWT
/api/v1/sales-orders

Create a sales order

Body: CreateSalesOrderDto

PATCHJWT
/api/v1/sales-orders/:id

Update a sales order

Body: UpdateSalesOrderDto

PATCHJWT
/api/v1/sales-orders/:id/status

manual workflow status change

Body: UpdateSalesOrderStatusDto

PATCHJWT
/api/v1/sales-orders/:id/lock

Set lock

Body: JSON

PATCHJWT
/api/v1/sales-orders/:id/discount

Set discount

Body: JSON

PATCHJWT
/api/v1/sales-orders/:id/charges

Set charges

Body: JSON

PATCHJWT
/api/v1/sales-orders/:id/reminder

Set reminder

Body: JSON

POSTJWT
/api/v1/sales-orders/:id/duplicate

Duplicate

POSTJWT
/api/v1/sales-orders/:id/convert

Convert

Body: JSON

POSTJWT
/api/v1/sales-orders/:id/convert-to-sales-invoice

Convert a SalesOrder into a real SalesInvoice (billing)

POSTJWT
/api/v1/sales-orders/:id/convert-to-delivery-note

Convert a SalesOrder into a real DeliveryNote (shipment)

DELETEJWT
/api/v1/sales-orders/:id

Delete a sales order

GETJWT
/api/v1/sales-returns

List sales returns

Query: pagination / filters

GETJWT
/api/v1/sales-returns/:id

Get a sales return by id

POSTJWT
/api/v1/sales-returns

Create a sales return

Body: CreateSalesReturnDto

POSTJWT
/api/v1/sales-returns/from-invoice/:invoiceId

Bugs (1).docx — Convert a Sales Invoice → Sales Return (credit note)

PATCHJWT
/api/v1/sales-returns/:id

Update a sales return

Body: UpdateSalesReturnDto

PATCHJWT
/api/v1/sales-returns/:id/status

Set status

Body: JSON

PATCHJWT
/api/v1/sales-returns/:id/lock

Set lock

Body: JSON

PATCHJWT
/api/v1/sales-returns/:id/discount

Set discount

Body: JSON

PATCHJWT
/api/v1/sales-returns/:id/charges

Set charges

Body: JSON

PATCHJWT
/api/v1/sales-returns/:id/reminder

Set reminder

Body: JSON

POSTJWT
/api/v1/sales-returns/:id/approve

Approve

Body: ApproveReturnDto

POSTJWT
/api/v1/sales-returns/:id/inspect

Inspect

Body: InspectReturnDto

POSTJWT
/api/v1/sales-returns/:id/process-refund

Process refund

Body: ProcessRefundDto

POSTJWT
/api/v1/sales-returns/:id/zatca-qr

issue the credit note: generate/attach its ZATCA QR and stamp `qrGeneratedAt`

Body: IssueZatcaQrDto

POSTJWT
/api/v1/sales-returns/:id/duplicate

Duplicate

DELETEJWT
/api/v1/sales-returns/:id

Delete a sales return

GETJWT
/api/v1/salesman

List salesmans

Query: pagination / filters

GETJWT
/api/v1/salesman/:id/summary

Summary

GETJWT
/api/v1/salesman/:id

Get a salesman by id

POSTJWT
/api/v1/salesman

Create a salesman

Body: CreateSalesmanDto

PATCHJWT
/api/v1/salesman/:id

Update a salesman

Body: UpdateSalesmanDto

DELETEJWT
/api/v1/salesman/:id

Delete a salesman

GETJWT
/api/v1/van-sales/summary

Summary

GETJWT
/api/v1/van-sales/routes

List routes

Query: pagination / filters

GETJWT
/api/v1/van-sales/routes/:id

Find route

POSTJWT
/api/v1/van-sales/routes

Create route

Body: CreateSalesRouteDto

PATCHJWT
/api/v1/van-sales/routes/:id

Update route

Body: UpdateSalesRouteDto

DELETEJWT
/api/v1/van-sales/routes/:id

Remove route

GETJWT
/api/v1/van-sales/loads

List loads

Query: pagination / filters

GETJWT
/api/v1/van-sales/loads/:id

Find load

POSTJWT
/api/v1/van-sales/loads

Create load

Body: CreateVanLoadDto

PATCHJWT
/api/v1/van-sales/loads/:id/settle

Settle

Body: SettleVanLoadDto

PATCHJWT
/api/v1/van-sales/loads/:id

Update load

Body: UpdateVanLoadDto

DELETEJWT
/api/v1/van-sales/loads/:id

Remove load