npm package: @setarnv/directus-extension-payaw
Description: A Directus extension that integrates Pay.aw, allowing seamless payment processing by creating transactions directly in a dedicated transaction table.
Author: Setar N.V.
Latest version: 1.4.1

# Directus Pay.aw Extension

This Directus extension integrates **Pay.aw**, Aruba’s mobile payment platform, directly into your Directus instance.

## What is Pay.aw?

Pay.aw is a popular Aruban payment solution allowing users to send and receive money using their mobile phones. It's widely used across the island for both peer-to-peer and commercial transactions.

## Features

- Integrates Pay.aw payment gateway with Directus.
- Provides custom payment fields and status tracking.
- Allows payment triggering via flows.
- Automatically installs database tables for transaction management.

## Pay.aw Settings

After installation, you can configure the extension in the Directus settings panel under **Pay.aw Settings**.

![Pay.aw Settings](https://bitbucket.org/setarnv/directus-payaw-extension/raw/main/extension/readme_images/payaw_configure_directus_settings_default_vendor.png)

Here you can set the default vendor or add multiple vendors with different credentials.

These include:

- **Name**: A label for this vendor configuration.
- **API Host**: The Pay.aw endpoint to use.
- **API Key** and **Secret**: Your credentials provided by Pay.aw.
- **Status Poll Interval**: How often to check transaction status (in ms).

![Vendor Configuration](https://bitbucket.org/setarnv/directus-payaw-extension/raw/main/extension/readme_images/payaw_configure_vendor.png)

## Installed Tables

When the extension is installed, the following data models are added to your Directus project:

![Payaw Tables](https://bitbucket.org/setarnv/directus-payaw-extension/raw/main/extension/readme_images/payaw_data_models.png)

- `payaw_meta_info`: Contains metadata such as the extension version.
- `payaw_transactions`: Stores all transaction records and states.

## Usage

To initiate payments, use the **"Pay with Pay.aw"** operation available in the flows builder.

### Operation Options

- **Phone Number**: The user’s Pay.aw ID (an Aruban phone number).
- **Amount**: The amount to charge.
- **Description**: Shown to the user in the Pay.aw app via push notification.
- **Vendor ID or Name**: The ID or name of the vendor to charge (optional). If not provided, the default vendor from settings is used.

These options support dynamic templating using Directus flow context variables, for example:

- `{{$trigger.user_phone_number}}`
- `{{$last.value}}`
- Static values like `"2971234567"` or `"Payment for invoice #123"`

### Operation Setup Example

Below is an example showing how to configure the operation inputs using values from the trigger payload in the data chain:

![Pay with Pay.aw Operation Setup](https://bitbucket.org/setarnv/directus-payaw-extension/raw/main/extension/readme_images/payaw_operation_options.png)

### Example

Below is a visual example of the **Pay with Pay.aw** flow operation in use within a Directus flow:

![Pay with Pay.aw Operation](https://bitbucket.org/setarnv/directus-payaw-extension/raw/main/extension/readme_images/payaw_flow_operation.png)

### Result

The operation adds a `payaw_transactions` entry and outputs the result under the key defined in the operation block.

Refer to the Directus documentation for more on flow operations and data output.