# List all payment links List all the payment links. Endpoint: GET /link Version: 2.0 Security: accountId, apiKey ## Query parameters: - `cursor` (string) The cursor parameter is used for pagination. It specifies the pointer to the start of the next set of results in a sequence of paginated data. Typically, this is a unique identifier of the last item from the previous response. If not provided, the API fetches the first page of results. - `limit` (number) The limit parameter is used for pagination. It specifies the maximum number of entries to return in a single page of results. Max 100. - `id` (string) UUID from a created Pay By Link. - `amount` (string) Filter Pay By Links by a certain amount. - `customer_name` (string) Filter Pay By Links by customer name. - `email` (string) Filter Pay By Links by customer email. - `phone_number` (string) Filter Pay By Links by customer phone number. - `created_at` (string) Filter Pay By Links by creation date. - `modified_at` (string) Filter Pay By Links by modification date. - `expiration_time` (string) Filter Pay By Links by expiration date. - `payment_method[]` (string) Filter Pay By Links by payment methods. - `status[]` (string) Filter Pay By Links by payment status. ## Response 200 fields (application/json): - `metadata` (object, required) An object containing additional information about the response. It includes details that help manage and navigate the retrieved data. - `metadata.next_cursor` (string) Provides the cursor for the next set of records. This value should be used as the cursor parameter in subsequent requests to continue paginating through the data. If the cursor is an empty string or null, it indicates that there are no more results. To retrieve all available results, continue making subsequent requests until next_cursor is empty or null. Example: "lL_j7ilk7rc" - `metadata.count` (number) The total number of records in the current response. This field indicates the number of items returned in the current set of results. Example: 10 - `data` (array, required) - `data.id` (string) A unique identifier for the resource. While typically formatted as a UUID (Universally Unique Identifier), it can also be in other formats as defined by the user. This field ensures the resource can be distinctly recognized and referenced. - `data.created_at` (string) String with the date on which this Pay By Link was created. Example: "2025-06-16T13:32:32Z" - `data.modified_at` (string) String with the date on which this Pay By Link was modified. Example: "2025-06-16T13:32:32Z" - `data.expiration_time` (string) The last possible time to make the payment. Example: "2026-06-10T09:27:55Z" - `data.type` (string) Specifies the type of payment being performed. Possible values are "Single" (One-time transactions that will let your customers pay an amount of money to you), "Frequent" (Are repeatable transactions of varying sums without the client having to enter their payment details again), and "Subscription" (periodic payments of the same amount of money, configured through Checkout or our Payments API). Enum: "SINGLE", "FREQUENT", "SUBSCRIPTION" - `data.communication_channels` (array) The communication channels specifies where the final customer link should be forwarded. Enum: "SMS", "EMAIL" - `data.customer` (object) The Customer object contains detailed information about the customer required to create a pay-by-link. - `data.customer.name` (string, required) The full name of the customer. This field is used to identify the customer and personalize interactions. It typically includes the customer's first name and last name. Example: "Jonh Doe" - `data.customer.email` (string, required) The email address of the customer. This field is used for communication purposes, including sending transaction confirmations, receipts, and other notifications related to the customer's activities. Example: "example@easypay.pt" - `data.customer.phone` (string, required) The contact phone number of the customer, excluding the country code indicator (e.g., "+351"). This field is used for communication purposes. If the payment method is MBWAY, the phone_number is required and is used to send the MBWAY push notification. Example: "+351911234567" - `data.payment` (object) - `data.payment.methods` (array) All the payment methods available to create a pay-by-link payment. Enum: "MB", "MBW", "DD", "CC", "VI", "AP", "GP" - `data.payment.capture` (object) - `data.payment.capture.descriptive` (string) A customizable text field for users to input some descriptive associated with this capture operation. - `data.payment.capture.key` (string) A customizable text field for users to input their own identifier for the resource. This can be any string that helps the user uniquely identify or reference the resource in their own system. - `data.payment.single` (object) Single object with all the fields necessary after creating a Pay-by-Link request. - `data.payment.single.requested_amount` (string, required) String representing the monetary amount requested for the transaction. This field is formatted as a double, and will be rounded to two decimal places. Example: "10.45" - `data.payment.frequent` (object) Frequent object with all the fields necessary after creating a Pay-by-Link request. - `data.payment.frequent.minimum_amount` (string, required) Minimum value available to create a Pay-by-link request. Example: "5" - `data.payment.frequent.maximum_amount` (string, required) Maximum value available to create a Pay-by-link request. Example: "10" - `data.payment.frequent.unlimited_payments` (boolean, required) Determines whether payments can be unlimited. - `data.payment.subscription` (object) Subscription object with all the fields necessary after creating a Pay-by-Link request. - `data.payment.subscription.frequency` (any, required) Determines how often the subscription payment is made. Enum: "1D", "1W", "2W", "1M", "2M", "3M", "4M", "6M", "1Y", "2Y", "3Y" - `data.payment.subscription.maximum_captures` (integer) Determines the maximum number of captures for this subscription. It's only required when no expiration_time is set. Example: 100 - `data.payment.subscription.start_time` (string, required) Determines the start date of billing cycles for this subscription. This date must be always in the future. Example: "2025-01-15 00:00" - `data.payment.subscription.capture_now` (boolean) Determines whether an immediate capture is performed. If this value is true, an immediate capture will be performed and the second capture will be on the date entered in the start_time field. - `data.payment.subscription.retries` (integer) Number of retries in each payment cycle. The chosen frequency will define the max number of possible retries. - `data.payment.subscription.failover` (boolean) After all retries failed, the payment cycle can have another try with another single method. - `data.payment.subscription.expiration_time` (string) RFC3339 formatted time for the subscription expiration date. - `data.url` (string) Link that redirects to the Easypay checkout payment page. Example: "https://easypay.pt/s/XStDvnMKZaN" - `data.image` (string) Link that redirects to a QR code to access the payment checkout page. Example: "https://cdn.easypay.pt/images/qr/XStDvnMKZaN" - `data.status` (string) All the payment status after creating a pay-by-link payment. Enum: "ACTIVE", "EXPIRED", "DISABLED", "FINALIZED" ## Response 400 fields (application/json): - `type` (string) Link that redirects to the API documentation. Example: "https://docs.easypay.pt/api/overview#invalid-params" - `title` (string) Brief title about the error. Example: "Invalid payload provided" - `detail` (string) Brief description about the error. Example: "Your request parameters didn't validate" - `status` (number) API error code. - `invalid_params` (object) - `invalid_params.name` (string) Name of the payload field that contains an error. Example: "expiration_time" - `invalid_params.reason` (string) Reason why this payload field contains an error. Example: "expiration_time should be formated as RFC 3339 and in the future" ## Response 403 fields (application/json): - `type` (string) Link that redirects to the API documentation. Example: "https://api.prod.easypay.pt/docs#section/NotFound" - `title` (string) Brief title about the error. Example: "Not Found" - `detail` (string) Brief description about the error. Example: "no link found with the provided id" - `status` (number) API error code. ## Response 500 fields (application/json): - `status` (string) Indicates the response status of the API request. Example: "error" - `message` (string) An array of human-readable messages included in the response. These messages provide detailed information about the success of the operation or explain the reasons for any failure. This field is always present in the response to ensure clarity and transparency regarding the outcome of the API request. Example: "Internal server error"