The Payiano's list transactions endpoint allows partners to see
a comprehensive list of all payment transactions they've collected or need to be
collected on behalf of the Payiano. It's similar to checking a
bank statement, where you can view all the transactions processed through the partner's
platform. This endpoint is invaluable for partners to keep track of payments, monitor
transaction statuses over time. It ensures transparency and helps in managing financial
records efficiently.
Authorization header with access token is required to access this endpoint: Bearer ACCESS-TOKEN
Your access token should be associated to this permission collect.transactions.view
Request
Request body schema:
application/json
Query parameters:
page
page
Type: integer|null
Default: 1
The page number to be retrieved, for the list of transactions.
So, a combination of page=1 and per_page=25 returns the
first 25 transactions items. A combination of page=2 and
per_page=25 returns the next 25 transactions items.
per_page
per_page
Type: integer|null
Default: 25
Possible values: [1 ... 200]
The maximum number of transactions items to return in the response.
q
q
Type: array_of_strings|null
Min: 3
This parameter enables free-text search across key transactions fields
(including but not limited to currency_code and reference_id), requiring a minimum of
3 characters per search term. It performs case-insensitive partial
matching, and returns relevance-ranked results while automatically handling
special characters. This provides a simple yet powerful way to quickly find
relevant transactions items.
sort
sort
Type: array_of_objects|null
Control the ordering of results with sophisticated multi-column sorting.
Specify an array of objects, each containing a field and direction.
Maximum 5 sort fields per request to maintain
optimal performance.
This attribute specifies the field used for sorting. It can be a direct
attribute of the resource or a related field referenced using dot notation.
direction
direction
Type: enum
Possible values:
["asc","desc"]
This attribute specifies the sorting direction. It can be either asc
for ascending order or desc for descending order. Please note that
the value is case-sensitive.
includes
includes
Type: array_of_enums|null
Possible values:
["transaction.payer"]
A list of additional transactions relations to return, if available. Feel free
to send the relations you would like to return with every item. See Including Resources to better understand how this is working.
filters
filters
Type: mixed|null
Apply complex filtering conditions using nested logical groups and comparison operators.
Supports advanced querying with AND/OR logic, multiple operators, and hierarchical conditions.
See Filtering Reference for complete documentation, operator list, and examples.
Specifies the output format of the datatable response, supporting both
JSON and export file types for easy integration and reporting.
Refer to Response Types for more details.
aggregations
aggregations
Type: object|null
Defines how to aggregate and group data when
response_type is set to json_aggregate. This parameter enables analytical
style responses suitable for dashboards and reports. Refer to Aggregations for more details.
fields
fields
Type: array_of_objects
Defines the fields to be aggregated along with their respective metrics.
Maximum 5 aggregation fields per
request to maintain optimal performance.
This attribute specifies the name of the field to be aggregated.
metrics
metrics
Type: array_of_enums
Possible values:
["avg","count","sum"]
Defines the aggregation metrics to apply to the selected field.
Note that the avg and sum metrics are applicable
only to numeric fields.
group_by
group_by
Type: array_of_objects|null
Specifies the dimensions used to group aggregated data results.
Each object defines a field by which records will be grouped before applying
aggregation metrics. Maximum 5
aggregation group by fields per request to maintain optimal performance.
Grouping enables developers to analyze data trends across categories, dates,
or other meaningful dimensions.
If no group_by fields are provided, the system performs a global aggregation across the entire dataset. In such cases, the response includes a single summary group, typically referencing the latest created_at value.
Specifies the field name used for grouping results within the aggregation.
This determines how records are organized and segmented when computing metrics.
When grouping by a datetime or timestamp field such as created_at , the system automatically groups by the date portion only , ignoring the time component. This enables daily-based aggregations instead of precise timestamp level grouping.
By default, grouping operations use the server's timezone ( UTC ). You can override this behavior by specifying the X-Preferred-Response-Timezone header in your request. Learn more about timezone handling in our Datetime & Timezone Reference .
Response
200
Response schema:
application/json
Response body:
total_pages
total_pages
Type: integer
The total number of pages that are available for the transactions
search criteria.
current_page
current_page
Type: integer
The current pagination page.
per_page
per_page
Type: integer
The amount of transactions items return per page.
total_items
total_items
Type: integer
The total number of transactions that match the search criteria.
items
items
Type: array_of_objects
The list of transactions that match the search criteria.
id
id
Type: ulid
Length: 26
The unique ID assigned to each transaction which is generated
by our system using the ULID format. Each ID is
precisely 26 characters long, ensuring a unique and consistent
identifier for every transaction. This ULID is
automatically created by our system and is used to uniquely identify
and track each transaction in our database.
currency_code
currency_code
Type: enum
Possible values:
["EGP"]
The three-character ISO-4217 Currency Code that identifies the currency for the transaction. Your business
should be eligible to use the selected currency code.
amount
amount
Type: decimal
The amount value that needs to be collected for the
transaction. The length includes the value, the decimal digit and the decimal value. The API accepts 2 digits like 50.53.
reference_id
reference_id
Type: string|null
Max: 50
It's a unique identifier assigned to each transaction. It's
primary role is to distinguish one transaction from another, ensuring
that each transaction can be individually tracked and managed without
any confusion.
Please note that duplicate values are not allowed. Only alpha-numeric
characters, dashes, and underscores are allowed: [A-Za-z0-9-_].
The reference_id
value is used to Identify Resource when you consume any transaction endpoint with sending identify_by
query parameter with value reference_id.
inquiry_code
inquiry_code
Type: integer
This attribute represents the unique inquiry code that
customers must provide to the partner. This code is essential
for partners to look up the transaction details and to process
the payment on behalf of the customer. It serves as a key to
access specific transaction information, ensuring that payments
are accurately matched to the correct transaction.
You can simulate a complete transaction payment through our Pay Order POS terminal flow to test this service effectively. This allows for a hands-on experience to ensure that the payment process is efficient and user-friendly at actual retail locations.
expires_at
expires_at
Type: datetime|null
It indicates when the transaction becomes invalid. It ensures
payments are made within a specified timeframe, useful for
time-sensitive offers. It informs both the payer and the recipient
about the exact deadline until which the payment can be processed.
This attribute can be formatted as an ISO 8601
string or a UNIX timestamp in milliseconds,
depending on the preferred datetime format specified in the request header (e.g., 2024-08-04T14:22:01Z or
1722572118554). By default, the format is UNIX
timestamp in milliseconds.
is_expired
is_expired
Type: boolean
This attribute indicates whether the transaction is expired or
not. If the transaction expires_at attribute is filled, then
this attribute value will be true.
payer_id
payer_id
Type: ulid
This field is the key to associating each transaction with the
correct payer, enhancing the personalization and accuracy of the
transaction process. It's not only enhances transaction precision
but also contributes significantly to effective payer relationship
management and data analysis.
payer
payer
Type: object
The payer model for the transaction.
id
id
Type: ulid
Length: 26
The unique ID assigned to each payer which is generated
by our system using the ULID format. Each ID is
precisely 26 characters long, ensuring a unique and consistent
identifier for every payer. This ULID is
automatically created by our system and is used to uniquely identify
and track each payer in our database.
name
name
Type: string
Min: 2
Max: 100
This is the fundamental attribute representing the payer's full
legal or preferred name. It's used in all forms of communication
and identification. It's crucial for personalization and ensures
that all correspondences and documents are correctly addressed.
email
email
Type: string
Min: 5
Max: 255
The email address is a key point of contact for digital communication.
It's used for sending transactional emails, marketing material and
support communications.
phone_number
phone_number
Type: string
This attribute stores the payer's mobile number. It's essential for
direct contact, SMS notifications, and can also be used in cases where
email communication is insufficient or inappropriate.
created_at
created_at
Type: datetime
The created datetime of the payer.
This attribute can be formatted as an ISO 8601
string or a UNIX timestamp in milliseconds,
depending on the preferred datetime format specified in the request header (e.g., 2024-08-04T14:22:01Z or
1722572118554). By default, the format is UNIX
timestamp in milliseconds.
updated_at
updated_at
Type: datetime
The updated datetime of the payer.
This attribute can be formatted as an ISO 8601
string or a UNIX timestamp in milliseconds,
depending on the preferred datetime format specified in the request header (e.g., 2024-08-04T14:22:01Z or
1722572118554). By default, the format is UNIX
timestamp in milliseconds.
paid_at
paid_at
Type: datetime|null
This attribute indicates the exact timestamp when the
transaction was paid.
This attribute can be formatted as an ISO 8601
string or a UNIX timestamp in milliseconds,
depending on the preferred datetime format specified in the request header (e.g., 2024-08-04T14:22:01Z or
1722572118554). By default, the format is UNIX
timestamp in milliseconds.
is_paid
is_paid
Type: boolean
This attribute indicates whether the transaction is paid or not.
If the transaction paid_at attribute is filled, then this
attribute value will be true.
created_at
created_at
Type: datetime
The created datetime of the transaction.
This attribute can be formatted as an ISO 8601
string or a UNIX timestamp in milliseconds,
depending on the preferred datetime format specified in the request header (e.g., 2024-08-04T14:22:01Z or
1722572118554). By default, the format is UNIX
timestamp in milliseconds.
updated_at
updated_at
Type: datetime
The updated datetime of the transaction.
This attribute can be formatted as an ISO 8601
string or a UNIX timestamp in milliseconds,
depending on the preferred datetime format specified in the request header (e.g., 2024-08-04T14:22:01Z or
1722572118554). By default, the format is UNIX
timestamp in milliseconds.