# Easypay Payments API

<a href='https://www.easypay.pt/en/legal-terms-and-conditions/' class='item'>Terms conditions and legal terms</a><br><a href='https://www.easypay.pt/en/privacy-and-data-protection-policy/' class='item'>Privacy Policy</a>

Version: 2.0
License: MIT

## Servers

Sandbox
```
https://api.test.easypay.pt/2.0
```

Production
```
https://api.prod.easypay.pt/2.0
```

## Security

### accountId

This is the identification for the Easypay Client Account

Type: apiKey
In: header
Name: AccountId

### apiKey

This is the counter key for the used Account Id

Type: apiKey
In: header
Name: ApiKey

### signatureAuth

RSA signature Base64 generated with algorithm SHA256 using a account strong authentication private Key on the raw body or id.

Type: apiKey
In: header
Name: Signature

### BasicAuth

Type: http
Scheme: basic

## Download OpenAPI description

 - [Easypay Payments API](https://docs.easypay.pt/_bundle/openapi.yaml)

## Single Payment

 - [GET /single](https://docs.easypay.pt/openapi/single-payment/single-get.md): Full report with all the single payments from your Account **Required scope:** single:read
 - [POST /single](https://docs.easypay.pt/openapi/single-payment/single-post.md): Creates a Single Payment **Required scope:** single:create
 - [GET /single/{id}](https://docs.easypay.pt/openapi/single-payment/single-id-get.md): Retrieve a single payment details **Required scope:** single:read
 - [DELETE /single/{id}](https://docs.easypay.pt/openapi/single-payment/single-delete.md): This endpoint allows for the deletion of a single payment identified by its unique ID. The DELETE operation performs the following actions based on the payment method: - MB WAY and Credit Cards: Voids
 - [PATCH /single/{id}](https://docs.easypay.pt/openapi/single-payment/single-update.md): Apply partial modifications to a single payment resource. **Required scope:** single:update
## Frequent Payment

 - [GET /frequent](https://docs.easypay.pt/openapi/frequent-payment/frequent-get.md): Full report with all the frequent payments from your Account Id **Required scope:** frequent:read
 - [POST /frequent](https://docs.easypay.pt/openapi/frequent-payment/post_frequent.md): Frequent payments are repeatable transactions of varying sums without the client having to enter their payment details again. It is possible to limit the transferred sums by choosing minimum or maximu
 - [GET /frequent/{id}](https://docs.easypay.pt/openapi/frequent-payment/frequent-id-get.md): Retrieve a Frequent Payment details **Required scope:** frequent:read
 - [DELETE /frequent/{id}](https://docs.easypay.pt/openapi/frequent-payment/delete_frequent_id.md): 3 times a day (10am, 3pm and 10pm) our system will attempt to close your deleted MB payments.All CC and MBW authorisations will be deleted, releasing the funds.All MBW operations waiting for user inte
 - [PATCH /frequent/{id}](https://docs.easypay.pt/openapi/frequent-payment/patch_frequent_id.md): **Required scope:** frequent:update
 - [POST /frequent/authorisation/{id}](https://docs.easypay.pt/openapi/frequent-payment/frequent-authorisation.md): Create a new authorisation on a given Frequent Payment **Required scope:** frequent:create
## Subscription Payment

 - [GET /subscription](https://docs.easypay.pt/openapi/subscription-payment/get_subscription.md): Full report with all the subscriptions payments from your Account Id **Required scope:** subscription:read
 - [POST /subscription](https://docs.easypay.pt/openapi/subscription-payment/post_subscription.md): Creates a Subscription. **Required scope:** subscription:create
 - [GET /subscription/{id}](https://docs.easypay.pt/openapi/subscription-payment/get_subscription_id.md): Retrieves the subscription payment details **Required scope:** subscription:read
 - [DELETE /subscription/{id}](https://docs.easypay.pt/openapi/subscription-payment/delete_subscription_id.md): Deletes the subscription **Required scope:** subscription:delete
 - [PATCH /subscription/{id}](https://docs.easypay.pt/openapi/subscription-payment/patch_subscription_id.md): Updates the subscription payment details **Required scope:** subscription:update
 - [GET /subscription/{id}/cycle](https://docs.easypay.pt/openapi/subscription-payment/get_subscription_id_cycles.md): Returns the cycles attached to a subscription, ordered from newest to oldest. Use `status[]` to narrow the result set — values are case-insensitive. Pagination is cursor-based: pass the previous respo
 - [POST /subscription/{id}/cycle](https://docs.easypay.pt/openapi/subscription-payment/post_subscription_id_cycles.md): Triggers an extra capture against an active subscription's saved payment method — useful for billing ad-hoc items like setup fees, add-ons, or upgrades without touching the recurring schedule. The reg
 - [GET /subscription/{id}/cycle/{cycle_id}](https://docs.easypay.pt/openapi/subscription-payment/get_subscription_id_cycle_id.md): Returns a single cycle that belongs to the given subscription. A cycle that doesn't exist — or that belongs to a different account — returns `404 Not Found`. **Required scope:** subscription:read
 - [PATCH /subscription/{id}/cycle/{cycle_id}](https://docs.easypay.pt/openapi/subscription-payment/patch_subscription_id_cycle_id.md): Overrides the charge amount for a single cycle without touching the subscription's recurring schedule or default value. Only `RENEWABLE` cycles in `PENDING` status can be patched — anything else (one-
## Captures

 - [GET /capture](https://docs.easypay.pt/openapi/captures/paths/~1capture/get.md): **Required scope:** capture:read
 - [POST /capture/{id}](https://docs.easypay.pt/openapi/captures/paths/~1capture~1%7Bid%7D/post.md): **Required scope:** capture:create
 - [GET /capture/{id}](https://docs.easypay.pt/openapi/captures/paths/~1capture~1%7Bid%7D/get.md): **Required scope:** capture:read
 - [DELETE /capture/{id}](https://docs.easypay.pt/openapi/captures/capture-delete.md): **This endpoint is rolling out shortly.** The shape below is stable, but calls against it will not succeed until the feature ships. Cancels a capture before it is processed. Only captures still in **d
 - [PATCH /capture/{capture-uuid}/splits/{capture-split-uuid}](https://docs.easypay.pt/openapi/captures/patch_capture_capture_uuid_splits_capture_split_uuid.md): **Required scope:** capture:update
## Authorisations

 - [GET /authorisation/{id}](https://docs.easypay.pt/openapi/authorisations/get_authorisation_id.md): Retrieves the details of an authorisation **Required scope:** authorisation:read
## Voids

 - [GET /void/{id}](https://docs.easypay.pt/openapi/voids/get_void_id.md): Returns the details and current status of a void, including the authorisation it cancelled. Use this to track a void's outcome after creation, since processing is asynchronous. **Required scope:** voi
 - [POST /void/{id}](https://docs.easypay.pt/openapi/voids/post_void_id.md): Cancels a payment authorisation before it is captured, releasing the amount held on the card. Works for **single** and **frequent** authorisations. **Required scope:** void:create
## Refunds

 - [GET /refund](https://docs.easypay.pt/openapi/refunds/list-refund.md): Cursor based endpoint to retrieve all account refunds. **Required scope:** refund:read
 - [POST /refund/{id}](https://docs.easypay.pt/openapi/refunds/paths/~1refund~1%7Bid%7D/post.md): Each method has a specific time window during which a refund can be issued. Once this period expires, refunds can no longer be processed via the API for that payment. ### Refund Deadlines by Payment M
 - [GET /refund/{id}](https://docs.easypay.pt/openapi/refunds/paths/~1refund~1%7Bid%7D/get.md): **Required scope:** refund:read
## Chargebacks

 - [GET /chargeback](https://docs.easypay.pt/openapi/chargebacks/list-chargeback.md): This endpoint retrieves a list of chargebacks associated with your account. A Chargeback is a mandatory transaction reversal initiated by the consumer's card issuer or bank, usually due to a dispute o
 - [GET /chargeback/{id}](https://docs.easypay.pt/openapi/chargebacks/get-chargeback-details.md): This endpoint retrieves the details of a specific chargeback by its unique identifier. A Chargeback is a mandatory transaction reversal initiated by the consumer's card issuer or bank, usually due to
## Notifications / Webhooks

 - [POST yourGenericNotificationEndpoint](https://docs.easypay.pt/openapi/notifications-webhooks/paths/yourgenericnotificationendpoint/post.md): We will send you this json in our notifications
 - [POST yourAuthorisationNotificationEndpoint](https://docs.easypay.pt/openapi/notifications-webhooks/paths/yourauthorisationnotificationendpoint/post.md): We will send you this json in our notification
 - [POST yourNotificationEndpoint](https://docs.easypay.pt/openapi/notifications-webhooks/paths/yournotificationendpoint/post.md): We will send you this json in our notification
## Reports

 - [GET /report/ledger](https://docs.easypay.pt/openapi/reports/get_report_ledger.md): The /reports/ledger endpoint provides access to detailed reports of ledger entries within the Easypay reconciliation system. This endpoint retrieves comprehensive financial data for each transaction r
 - [GET /report/transactions](https://docs.easypay.pt/openapi/reports/get_report_transactions.md): **This endpoint is end of life and will be removed on 2026-07-31.** Use `/report/ledger` instead. List your transactions **Required scope:** report:read
## Settlements

 - [GET /settlement](https://docs.easypay.pt/openapi/settlements/get-settlement.md): Returns your settlements, newest first. Each settlement groups the transactions paid out together in a single bank transfer. Narrow the results with `status[]`, `created_at`, and `updated_at`. Paginat
 - [GET /settlement/{id}](https://docs.easypay.pt/openapi/settlements/get-settlement-id.md): Retrieve a single settlement by its ID. **Required scope:** settlement:read
## Out Payment

 - [GET /out_payment](https://docs.easypay.pt/openapi/out-payment/get_out_payment.md): Full report with all the out payments from your Account Id **Required scope:** out_payment:read
 - [POST /out_payment](https://docs.easypay.pt/openapi/out-payment/post_out_payment.md): Get your strong authentication RSA private key from Easypay Backoffice on menu:Web Services->Configuration API 2.0->Keys. **Required scope:** out_payment:create
 - [GET /out_payment/{id}](https://docs.easypay.pt/openapi/out-payment/get_out_payment_id.md): **Required scope:** out_payment:read
 - [DELETE /out_payment/{id}](https://docs.easypay.pt/openapi/out-payment/delete_out_payment_id.md): If the payment is not processed, it will be cancelled. Get your strong authentication RSA private key from Easypay Backoffice on menu: Web Services->Configuration API 2.0->Keys. **Required scope:**
## Config

 - [GET /config](https://docs.easypay.pt/openapi/config/get_config.md): **Required scope:** config:read
 - [PATCH /config](https://docs.easypay.pt/openapi/config/patch_config.md): This endpoint is useful for setting up the correct URLs for event notifications. For more details, see [Notifications-Webhooks.](https://docs.easypay.pt/#tag/Notifications-Webhooks) **Required scope:*
## Checkout

 - [GET /checkout/{id}](https://docs.easypay.pt/openapi/checkout/get_checkout_id.md): **Required scope:** checkout:read
 - [DELETE /checkout/{id}](https://docs.easypay.pt/openapi/checkout/delete_checkout_id.md): This cancels the Checkout and deletes the payment associated with it if possible. **Required scope:** checkout:delete
 - [POST /checkout](https://docs.easypay.pt/openapi/checkout/checkout-post.md): Creates a Checkout Session. **Required scope:** checkout:create
## Pay By Link

 - [POST /link](https://docs.easypay.pt/openapi/pay-by-link/post-link.md): Generates a link that takes customers straight to a secure and ready-to-pay checkout. **Required scope:** link:create
 - [GET /link](https://docs.easypay.pt/openapi/pay-by-link/get-link.md): List all the payment links. Results come back a page at a time, with limit capped at 100. Ask for more than that and you get a 409, ask for less than 1 and you get a 400. **Required scope:** link:read
 - [GET /link/{id}](https://docs.easypay.pt/openapi/pay-by-link/get-link-id.md): Lists a payment link with all the details identified by its unique ID. **Required scope:** link:read
 - [DELETE /link/{id}](https://docs.easypay.pt/openapi/pay-by-link/delete-link-id.md): Deletes a payment link identified by its unique ID. The link moves to the CANCELLED status, which makes it invalid and unusable from then on. This action is irreversible, and a link that is already ca
 - [PATCH /link/{id}](https://docs.easypay.pt/openapi/pay-by-link/patch-link.md): Updates the expiration time of a payment link identified by its unique ID. Pushing the expiration of an already expired link back into the future makes it active again. A link that is cancelled or fin
## Customer

 - [GET /customer/{id}](https://docs.easypay.pt/openapi/customer/get_customer_id.md): Retrieves the customer details, including reward balances. **Required scope:** customer:read
 - [GET /customer/{id}/rewards](https://docs.easypay.pt/openapi/customer/get_customer_id_rewards.md): Lists reward ledger entries for a customer. Each entry is a single movement — a reward earned (`type: REWARD`), a redemption against a reward (`type: REDEMPTION`), an unused reward swept at its expiry
## Terminals

 - [GET /terminal](https://docs.easypay.pt/openapi/terminals/get_terminal.md): List all terminals (POS devices) from your account. **Required scope:** terminal:read
 - [POST /terminal](https://docs.easypay.pt/openapi/terminals/post_terminal.md): Creates a new terminal (POS device). **Required scope:** terminal:create
 - [GET /terminal/{id}](https://docs.easypay.pt/openapi/terminals/get_terminal_id.md): Retrieves the terminal details. **Required scope:** terminal:read
 - [DELETE /terminal/{id}](https://docs.easypay.pt/openapi/terminals/delete_terminal_id.md): Deletes the terminal. **Required scope:** terminal:delete
 - [PATCH /terminal/{id}](https://docs.easypay.pt/openapi/terminals/patch_terminal_id.md): Updates the terminal details. **Required scope:** terminal:update
## System

 - [GET /system/ping](https://docs.easypay.pt/openapi/system/ping.md): This endpoint allows you to verify connectivity to the API and validate your authentication credentials. A successful response indicates that the API is reachable and your credentials are valid. **Req
