Skip to content
← Back to documentation
Technical Reference

Qawafel

B2B marketplace and ZATCA-compliant document platform, sync products, orders, merchants and invoices with Saudi Arabia's leading wholesale network.

CategoryCommerce
Authenticationcustom
Version0.1.0
Published scopes0 published scopes
Last updatedSeptember 23, 2026

Overview

Connect Qawafel with Flows360

B2B marketplace and ZATCA-compliant document platform, sync products, orders, merchants and invoices with Saudi Arabia's leading wholesale network.

Use the Qawafel connector to include its declared actions and events in Flows360 workflows without duplicating the integration logic inside each consuming system. This pinned connector version currently exposes 15 actions and 8 triggers.

Available actions

  • Create Product
  • Update Product
  • Get Product
  • List Products
  • Create Completed Order
  • Update Order Status
  • Cancel Order
  • Get Order
  • Plus 7 additional declared actions.

Available triggers

  • New Order
  • Order Status Changed
  • Invoice Paid
  • New Invoice Generated
  • New Product Published
  • Product Updated
  • Plus 2 additional declared triggers.

The capability list above is generated from the exact reviewed connector package so the public description stays aligned with the version Flows360 operates.

Technical guide

Technical reference

Package identity

  • Connector: Qawafel
  • Package: @activepieces/piece-qawafel@0.1.0
  • Exact artifact digest: sha256:8f329726cdca8dd1ac9cebfcdd15417d5d49a5826cf0c9ffccd42f1ee97749f4
  • Runtime: Activepieces-compatible deterministic worker
  • Source: the exact reviewed Activepieces source

Authentication

CUSTOM AUTH. Connection values are tenant-specific and remain in the consuming Studio instance; CDK stores definitions and field metadata, not customer credential values.

Action contracts

  • Create Product (create_product), Add a new product to your Qawafel catalog. The workhorse for catalog sync from your ERP or storefront into Qawafel. Classification: read.
  • Update Product (update_product), Edit a product's price, description, or active state. Only the fields you fill in are updated, leave the rest blank to keep them unchanged. Classification: read.
  • Get Product (get_product), Fetch a single product by its Qawafel ID. Returns the full product including price, descriptions, and active status. Classification: read.
  • List Products (list_products), Get products from your catalog, with optional filters by type, supplier, SKU, and active status. Returns up to 500 products (5 pages of 100). Classification: read.
  • Create Completed Order (create_order), Sync a completed (fulfilled) order into Qawafel. Use this to import historical or externally-completed orders from another storefront, ERP, or B2B portal, the order is created directly in Fulfilled state and skips the normal fulfilment workflow. Do not use this for new orders that still need to be confirmed, picked, and delivered. Classification: read.
  • Update Order Status (update_order_status), Move an order forward in the Qawafel fulfilment workflow. Qawafel enforces a strict state machine, for example, an order must be Out for Delivery before it can be marked Delivered. To cancel an order, use the Cancel Order action instead. Classification: read.
  • Cancel Order (cancel_order), Cancel an open order. Once cancelled, the order cannot be reopened, the only path forward is to create a new order. Classification: read.
  • Get Order (get_order), Fetch a single order by its Qawafel ID. Returns the full order including line items, totals, delivery details, and current state. Classification: read.
  • List Orders (list_orders), Get orders, optionally filtered by status, customer, or creation date. Returns up to 500 orders (5 pages of 100). Classification: read.
  • Create Merchant (Customer or Supplier) (create_merchant), Add a new customer or supplier to your Qawafel tenant. Use this when onboarding a new B2B partner from your CRM, signup form, or another system. Classification: read.
  • Update Merchant (update_merchant), Edit a merchant's trade name or active state. Only the fields you fill in are updated. (Legal name, CR, VAT and other identity fields cannot be changed via the API.) Classification: read.
  • Create Invoice (create_invoice), Create an invoice in Qawafel for a customer. The invoice starts in draft state, use the Generate Invoice action (or call it from your dashboard) to finalize and issue a ZATCA-compliant copy. Classification: read.
  • Get Invoice (get_invoice), Fetch a single invoice by its Qawafel ID. Returns the full invoice including line items, totals, ZATCA PDF URL, and current state. Classification: read.
  • List Invoices (list_invoices), Get invoices, optionally filtered by status, customer, or creation date. Returns up to 500 invoices (5 pages of 100). Classification: read.
  • Custom API Call (custom_api_call), Make a custom API call to a specific endpoint Classification: read.

Trigger contracts

  • New Order, webhook.
  • Order Status Changed, webhook.
  • Invoice Paid, webhook.
  • New Invoice Generated, webhook.
  • New Product Published, webhook.
  • Product Updated, webhook.
  • New Merchant Registered, webhook.
  • Refund / Credit Note Created, webhook.

Verification

Deterministic execution evidence is recorded for the pinned artifact, including 1 exercised action entrypoint and 0 exercised trigger entrypoints.

Capability summary

Authenticationcustom
Supported objects23
Supported actionsNot published
Triggers8

Authentication

Authentication method: custom

Authentication profiles

connection · custom
  • Environment Required
  • API Key Required · protected credential

Supported objects

ObjectReadWriteNotes
Create Product Yes No Add a new product to your Qawafel catalog. The workhorse for catalog sync from your ERP or storefront into Qawafel.
Update Product Yes No Edit a product's price, description, or active state. Only the fields you fill in are updated u2014 leave the rest blank to keep them unchanged.
Get Product Yes No Fetch a single product by its Qawafel ID. Returns the full product including price, descriptions, and active status.
List Products Yes No Get products from your catalog, with optional filters by type, supplier, SKU, and active status. Returns up to 500 products (5 pages of 100).
Create Completed Order Yes No Sync a completed (fulfilled) order into Qawafel. Use this to import historical or externally-completed orders from another storefront, ERP, or B2B portal u2014 the order is created directly in **Fulfilled** state and skips the normal fulfilment workflow. Do **not** use this for new orders that still need to be confirmed, picked, and delivered.
Update Order Status Yes No Move an order forward in the Qawafel fulfilment workflow. Qawafel enforces a strict state machine u2014 for example, an order must be **Out for Delivery** before it can be marked **Delivered**. To cancel an order, use the **Cancel Order** action instead.
Cancel Order Yes No Cancel an open order. Once cancelled, the order cannot be reopened u2014 the only path forward is to create a new order.
Get Order Yes No Fetch a single order by its Qawafel ID. Returns the full order including line items, totals, delivery details, and current state.
List Orders Yes No Get orders, optionally filtered by status, customer, or creation date. Returns up to 500 orders (5 pages of 100).
Create Merchant (Customer or Supplier) Yes No Add a new customer or supplier to your Qawafel tenant. Use this when onboarding a new B2B partner from your CRM, signup form, or another system.
Update Merchant Yes No Edit a merchant's trade name or active state. Only the fields you fill in are updated. (Legal name, CR, VAT and other identity fields cannot be changed via the API.)
Create Invoice Yes No Create an invoice in Qawafel for a customer. The invoice starts in `draft` state u2014 use the **Generate Invoice** action (or call it from your dashboard) to finalize and issue a ZATCA-compliant copy.
Get Invoice Yes No Fetch a single invoice by its Qawafel ID. Returns the full invoice including line items, totals, ZATCA PDF URL, and current state.
List Invoices Yes No Get invoices, optionally filtered by status, customer, or creation date. Returns up to 500 invoices (5 pages of 100).
Custom API Call Yes No Make a custom API call to a specific endpoint
New Order Yes No webhook trigger declared by the pinned package.
Order Status Changed Yes No webhook trigger declared by the pinned package.
Invoice Paid Yes No webhook trigger declared by the pinned package.
New Invoice Generated Yes No webhook trigger declared by the pinned package.
New Product Published Yes No webhook trigger declared by the pinned package.
Product Updated Yes No webhook trigger declared by the pinned package.
New Merchant Registered Yes No webhook trigger declared by the pinned package.
Refund / Credit Note Created Yes No webhook trigger declared by the pinned package.

Triggers

New Order · Webhook

Fires the moment a new sales order is created in Qawafel. Use it to fan out to fulfillment, accounting, Slack alerts, or your CRM.

Order Status Changed · Webhook

Fires when an order moves to a specific status (confirmed, out for delivery, delivered, fulfilled, cancelled, etc.). Pick one status per trigger u2014 add the trigger again for additional statuses.

Inputs

  • status · string
Invoice Paid · Webhook

Fires when an invoice is marked as paid in Qawafel. Useful for posting payment receipts to Slack, releasing fulfilment, or syncing revenue to your books.

New Invoice Generated · Webhook

Fires when a ZATCA-compliant invoice is finalized in Qawafel (the `invoice.generated` event). Use it to email PDFs to customers, archive invoices to Drive, or push to your accounting system.

New Product Published · Webhook

Fires when a new product is created in Qawafel. Use it to mirror your catalog into Shopify, Salla, Zid, or your data warehouse.

Product Updated · Webhook

Fires when a product is updated (price change, description edit, activated/deactivated). Use it to keep external storefronts in sync.

New Merchant Registered · Webhook

Fires when a new merchant (customer or supplier) is created in Qawafel. Use it to onboard customers in your CRM or add suppliers to your procurement system.

Refund / Credit Note Created · Webhook

Fires when a credit note is created against an invoice (i.e. a customer return or refund is initiated). Use it to alert your finance team or trigger a return workflow.

Setup

Setup

  1. Add the Qawafel connector to the workflow in the target Flows360 Studio instance.
  2. Create or select the tenant-specific connection required by the connector. Connection secrets remain in the Studio connection boundary and are not copied into CDK documentation.
  3. Provide the connection fields declared by the pinned package:
  • Environment (environment), required.
  • API Key (apiKey), required; stored as a sensitive connection value.
  1. Select the required action or trigger and complete its declared input fields. Required and optional inputs are defined by the exact package schema.
  2. Test the workflow in the appropriate environment before enabling production scheduling or event delivery.

Limitations

Limitations and operational notes

  • This content describes @activepieces/piece-qawafel@0.1.0; provider behaviour can change independently and should be revalidated when the provider or connector version changes.
  • Only the 15 actions and 8 triggers declared by this pinned package are represented here.
  • Tenant credentials and connection values are not stored in the public connector record.
  • Provider-side permissions, account entitlements, quotas and rate limits remain subject to the connected provider account and are not inferred when the package does not declare them.
  • Deterministic execution evidence is recorded for the pinned artifact, including 1 exercised action entrypoint and 0 exercised trigger entrypoints.

Troubleshooting

Why canu2019t the connector authenticate?

Check the tenant connection in Studio and confirm every required Qawafel connection field is present. Re-authorise OAuth-based connections if the provider token or consent has expired. Do not place credential values in CDK content or logs.

Why is an action or trigger unavailable?

Confirm that the workflow is using @activepieces/piece-qawafel@0.1.0 and compare the requested capability with the declared action and trigger list for this version. A capability that is not declared by the pinned package should not be presented as supported.

What should I check after a provider-side change?

Revalidate authentication, required fields, action/trigger behaviour and provider documentation before publishing refreshed connector content or moving a new package version into production.