Plorea Payments API

Unified API for payment links, stored payment methods, subscriptions, recurring charges, refunds, cancellations and webhook handling.

Overview

Plorea Payments provides a unified payment layer built on top of Adyen. It allows platforms like Done, POS systems and other services to create payment links, store payment methods, create subscriptions, run recurring charges, handle refunds and manage payment lifecycle events.

Architecture

Client Platform ↓ Plorea Payments API ↓ Adyen Payments Platform

Payments Flow

1. POST /payments/link Customer receives hosted payment page 2. POST /payments/webhook/adyen Webhook updates transaction status 3. GET /payments/status/{reference} Check payment status 4. POST /payments/refund Refund payment 5. POST /payments/cancel Cancel payment

Subscriptions Flow

1. POST /payment-methods/setup Create hosted card setup flow 2. Customer completes hosted setup page The customer must actively choose to save the card when askForConsent is used 3. GET /payment-methods/{paymentMethodId} Verify stored payment method and storedPaymentMethodId 4. POST /subscriptions Create subscription 5. POST /subscriptions/{subscriptionId}/charge Optional manual recurring charge 6. GET /subscriptions/{subscriptionId}/charges Review charge history 7. POST /subscriptions/{subscriptionId}/cancel Cancel subscription
Consent note: The current payment method setup flow uses Adyen's storePaymentMethodMode=askForConsent. That means the customer must actively choose to save the card in the hosted Adyen page. If the customer does not save the card, the payment method can still exist in Plorea, but it will not have a usable storedPaymentMethodId for recurring subscription charges. This can later be changed if consent is collected in the platform before redirecting to Adyen.
Charge state note: Subscription fields such as lastChargeAt currently represent the last successful charge. Failed retry attempts update retry fields and failureReason, but do not overwrite the timestamp of the last successful charge.
Subscription scheduling note: The nextChargeAt field is only present when a future charge is scheduled. It may be omitted or null when the subscription is canceled, ended, or has no upcoming charges.