Skip to content
Download OpenAPI description
Overview
Easypay Documentation
License
Languages
Servers
Sandbox
https://api.test.easypay.pt/2.0
Production
https://api.prod.easypay.pt/2.0

Single Payment

Create and manage one-time payment transactions

Operations

Frequent Payment

Tokenize payment details for variable on-demand charges

Operations

Subscription Payment

Set up and manage automated recurring payments

Operations

Captures

Operations for managing payment captures

Operations

Authorisations

Operations for managing payment authorisations

Operations

Voids

Operations for managing payment voids

Operations

Refunds

Operations for managing payment refunds

Operations

Chargebacks

Operations for managing chargebacks

Operations

Notifications / Webhooks

Configure and manage webhook notifications for payment events

Webhooks

Reports

Access transaction and ledger reports

Operations

Out Payment

Transfer funds from Easypay accounts to SEPA bank accounts

Operations

Config

Configure account URLs for notifications and credit card transactions

Operations

Checkout

Embedded payment form solution for websites

Operations

Request

Security
accountId and apiKey
Path
idstring(uuid)required

Resource Identification

curl -i -X GET \
  'https://api.test.easypay.pt/2.0/checkout/{id}' \
  -H 'AccountId: 2b0f63e2-9fb5-4e52-aca0-b4bf0339bbe6' \
  -H 'ApiKey: eae4aa59-8e5b-4ec2-887d-b02768481a92'

Responses

OK

Bodyapplication/json
statusstring
Enum"failed""success"
messageArray of strings
checkoutobject
paymentobject
valuenumber
Response
application/json
{ "status": "failed", "message": [ "string" ], "checkout": { "id": "string", "status": "pending" }, "payment": { "id": "string", "status": "waiting", "methods": [], "type": "single", "expiration_time": "string", "currency": "string", "key": "string", "max_value": 0, "min_value": 0, "unlimited_payments": true, "frequency": "string", "max_captures": 0, "start_time": "string", "failover": true, "capture_now": true, "retries": 0, "notification": {} }, "value": 0 }

Request

This cancels the Checkout and deletes the payment associated with it if possible.

Security
accountId and apiKey
Path
idstring(uuid)required

Resource Identification

curl -i -X DELETE \
  'https://api.test.easypay.pt/2.0/checkout/{id}' \
  -H 'AccountId: 2b0f63e2-9fb5-4e52-aca0-b4bf0339bbe6' \
  -H 'ApiKey: eae4aa59-8e5b-4ec2-887d-b02768481a92'

Responses

No Content

Response
No content

Request

Creates a Checkout Session.

Security
accountId and apiKey
Bodyapplication/jsonrequired

Checkout request details

typestring(checkout-payment-types-request)required

Only the first value in the Array is considered (e.g. ['single', 'frequent'] would be equivalent to ['single']).

Enum"single""frequent""subscription"
paymentobject(checkout-payment-object-request)required

Describing the payment configuration.

payment.​methodsArray of strings(checkout-payment-methods-request)
Payment MethodSingle PaymentFrequent PaymentSubscription Payment
CC (Credit Card)xxx
DD (Direct Debit)xxx
MBW (MB WAY)xx-
MB (Multibanco)xx-
VI (Virtual IBAN)xx-
SW (Samsung Wallet)x--
AP (Apple Pay)x--
GP (Google Pay)x--
Items Enum"MB""MBW""DD""CC""VI""AP""GP""SW"
Example: ["MBW"]
payment.​typeany

Specifies the type of financial operation being performed.
This property is used only for Single Payments.

TYPEDESCRIPTION
salea complete transaction where funds are immediately captured.
authorisationa temporary hold on funds pending a future capture.
Enum"sale""authorisation"
Example: "sale"
payment.​captureobject(checkout-capture-object-request)

Required only if the payment type is sale.

payment.​sdd_mandateobject(sdd-mandate)

The SDD Mandate object contains the necessary fields to create a SEPA Direct Debit mandate. This object ensures that all required information is provided to authorize and process SEPA Direct Debit transactions. Object required when method is Direct Debit.

payment.​expiration_timestring(date)

The last possible time to make the payment. Applicable in Multibanco payments.

Note: If the expiration time is less than the default checkout session expiration (which is 30 minutes), the user won't be able to interact with the Checkout after that time.

Example: "2027-12-12 16:05"
payment.​currencystring

The currency code in ISO 4217 format (e.g., "EUR" for Euro). This field specifies the type of currency used in financial operation.

Default "EUR"
payment.​keystring<= 50 characters

The merchant's key for identifying the payment.

payment.​max_valuenumber(double)>= 0.5

Additional property for frequent payments.

payment.​min_valuenumber(double)>= 0.5

Additional property for frequent payments.

payment.​unlimited_paymentsboolean

Additional property for frequent payments.

payment.​frequencyany

Additional property for subscription payments.

Enum"1D""1W""2W""1M""2M""3M""4M""6M""1Y""2Y"
payment.​max_capturesinteger

Additional property for subscription payments.

Defines a maximum number of captures, is required when no expiration_time is set.

payment.​start_timestring(date)

Additional property for subscription payments. Defines the start of the billing cycles.

payment.​failoverboolean

Additional property for subscription payments.

After all retries failed, the payment cycle can have another try with another single method.

payment.​capture_nowboolean

Additional property for subscription payments.

Whether to schedule an immediate capture and schedule the second one for start_time.

payment.​retriesnumber

Additional property for subscription payments.

Number of retries in each payment cycle.
The chosen frequency will define the max number of possible retries.

Default 0
payment.​multibancoobject

An object that holds the details specific to a Multibanco transaction. This property is used only for Single Payments.

payment.​notificationobject(notification)

Notification settings for payment methods.

orderobject(checkout-order-response)

Order represent the order/cart being paid. Order is required if type is one single or subscription.

customerobject(checkout-customer-request)

The customer details.

curl -i -X POST \
  https://api.test.easypay.pt/2.0/checkout \
  -H 'AccountId: 2b0f63e2-9fb5-4e52-aca0-b4bf0339bbe6' \
  -H 'ApiKey: eae4aa59-8e5b-4ec2-887d-b02768481a92' \
  -H 'Content-Type: application/json' \
  -d '{
    "type": [
      "single"
    ],
    "payment": {
      "methods": [
        "mb",
        "cc",
        "mbw",
        "dd",
        "vi",
        "ap",
        "gp",
        "sw"
      ],
      "type": "sale",
      "capture": {
        "descriptive": "Descriptive Example"
      },
      "expiration_time": "2025-06-12 11:24",
      "currency": "EUR",
      "key": "Example Key",
      "sdd_mandate": {
        "iban": "PT50002700000001234567833",
        "name": "Name Example",
        "email": "customer@example.com",
        "phone": "911234567",
        "account_holder": "Acount Name Example"
      },
      "max_value": 20,
      "min_value": 2,
      "unlimited_payments": false,
      "frequency": "1W",
      "max_captures": 10,
      "start_time": "2025-06-12 11:24",
      "failover": true,
      "capture_now": true,
      "retries": 2,
      "multibanco": {
        "product": "SPG",
        "start_time": "2025-07-25T10:22:53Z",
        "expiration_time": "2025-08-24T10:22:52Z"
      }
    },
    "order": {
      "items": [
        {
          "description": "Item in Shopping Cart",
          "quantity": 2,
          "key": "Example Key",
          "value": 17.5
        }
      ],
      "key": "Example Key",
      "value": 17.5
    },
    "customer": {
      "name": "Customer Example",
      "email": "customer@example.com",
      "phone": "911234567"
    }
  }'

Responses

Created

Bodyapplication/json
idstring(uuid)

UUID of the checkout.

Example: "5db36b83-0664-4bc4-a760-7040ac3726f0"
sessionstring

Session token to be used by the rest of the Checkout process.

Example: "PX2duB7zMRISp6WrKdkOHLcvhIj-7-yUXMYHDQf5k7L5b5mA3D_m5TCdsYT-mCOaALGw4k95I_gjYQS-tcsxAAjTqU4G0UM5sd2o5wdGTGOOuoZVv0CwmiBwhUY9j4Dq4MDryEEPXtqMHEYi7PJz7dakeBemaWFg9GCEvdE6BM_uDBjZLBIS--_uFjRWpKm5enhwTkGvF3iTXuNrsRAxrW8YTsPUGJZumz2s-xSwa6XVaqRqO9uTvuHWy9TrEs1eCTeiWpqwZaj8_aNry5Tc44Epvvw4-4yebDaMQ1gJIHyJDzkLQ9mv4lNPjOFFtJPHihzgIybJdxzE1f6oBnjudMJa0LHsyzkHt29_j4FNRwSyU0Sti2vtW9SEAJ9D8pqrhvMg7zDQkvYLxjNJrME8EVqlGA_il0hc75wigX3hRdoVokF7u0-0ac0HYltG2zYEgE2lxqzPaG_lSbidSBAIoFWhY5rij3TyQHg6lPhHF6jYhn0ytvsBRauIdlZnJau18KzcOH4fcwN8d59SuhffuSyD_Mtd7trlzz6lWM9AeoY="
configany or null
Response
application/json
{ "id": "10d3a41a-c9c4-486e-8da7-9490e5f097b7", "session": "XkhRqoQtbBakUnjEJA4lYSCtboITWSb-ijxRMWKj7C9ormZ_4JubSB3qjy4XuORJFSrR0OsQ0ypE2Ws9Zl0N2REmR0CMNewH8ghyR1NBnPzDJ1AAuj9LvAhdv9SS-MXRh20_jmVz0MTcaD6E9WfHMiGSyej8eLMaE2hbSHn8DAO7kUSy8nzIIIUbR3pbpEpwxeO6fgHB3hdLGWrGUjeRq-Dq1Q_RF_ZWDPOGPwehXb3YRTatcjBG_2yoyGWWBaABOlkOx_uLaZIdrHMRXaDwLFDoN-eiu3BH1KKrut6pcE_Gc6laTf2AINBQIuSzKHLT4MFpTkrxdfPiD67w8aENm2HuzFc08I46KxdQG-2dSN522jZWDC2z4r4HFZ8LWVlDPuLbpui-WoWOJrJAnW3nPhyaKfUeu4KuU3BKYtJrtOoqs5ingkKWen0jm6AuFeZDeYRlRtj19S6d3P4q7Om3PVwil7c0K0brq31SmLHZdvsG_gHOPSZ6qrQy_95NZO0x934tBIUK91C1Bnm1Z9wA2Pp2hIeprOXMuZXkuanODro=", "config": null }

System

System health check endpoints

Operations