Add Activepieces integration for workflow automation

- Add Activepieces fork with SmoothSchedule custom piece
- Create integrations app with Activepieces service layer
- Add embed token endpoint for iframe integration
- Create Automations page with embedded workflow builder
- Add sidebar visibility fix for embed mode
- Add list inactive customers endpoint to Public API
- Include SmoothSchedule triggers: event created/updated/cancelled
- Include SmoothSchedule actions: create/update/cancel events, list resources/services/customers

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
poduck
2025-12-18 22:59:37 -05:00
parent 9848268d34
commit 3aa7199503
16292 changed files with 1284892 additions and 4708 deletions

View File

@@ -0,0 +1,33 @@
{
"extends": [
"../../../../.eslintrc.base.json"
],
"ignorePatterns": [
"!**/*"
],
"overrides": [
{
"files": [
"*.ts",
"*.tsx",
"*.js",
"*.jsx"
],
"rules": {}
},
{
"files": [
"*.ts",
"*.tsx"
],
"rules": {}
},
{
"files": [
"*.js",
"*.jsx"
],
"rules": {}
}
]
}

View File

@@ -0,0 +1,7 @@
# pieces-mollie
This library was generated with [Nx](https://nx.dev).
## Building
Run `nx build pieces-mollie` to build the library.

View File

@@ -0,0 +1,10 @@
{
"name": "@activepieces/piece-mollie",
"version": "0.0.3",
"type": "commonjs",
"main": "./src/index.js",
"types": "./src/index.d.ts",
"dependencies": {
"tslib": "^2.3.0"
}
}

View File

@@ -0,0 +1,65 @@
{
"name": "pieces-mollie",
"$schema": "../../../../node_modules/nx/schemas/project-schema.json",
"sourceRoot": "packages/pieces/community/mollie/src",
"projectType": "library",
"release": {
"version": {
"manifestRootsToUpdate": [
"dist/{projectRoot}"
],
"currentVersionResolver": "git-tag",
"fallbackCurrentVersionResolver": "disk"
}
},
"tags": [],
"targets": {
"build": {
"executor": "@nx/js:tsc",
"outputs": [
"{options.outputPath}"
],
"options": {
"outputPath": "dist/packages/pieces/community/mollie",
"tsConfig": "packages/pieces/community/mollie/tsconfig.lib.json",
"packageJson": "packages/pieces/community/mollie/package.json",
"main": "packages/pieces/community/mollie/src/index.ts",
"assets": [
"packages/pieces/community/mollie/*.md",
{
"input": "packages/pieces/community/mollie/src/i18n",
"output": "./src/i18n",
"glob": "**/!(i18n.json)"
}
],
"buildableProjectDepsInPackageJsonType": "dependencies",
"updateBuildableProjectDepsInPackageJson": true
},
"dependsOn": [
"^build",
"prebuild"
]
},
"nx-release-publish": {
"options": {
"packageRoot": "dist/{projectRoot}"
}
},
"lint": {
"executor": "@nx/eslint:lint",
"outputs": [
"{options.outputFile}"
]
},
"prebuild": {
"executor": "nx:run-commands",
"options": {
"cwd": "packages/pieces/community/mollie",
"command": "bun install --no-save --silent"
},
"dependsOn": [
"^build"
]
}
}
}

View File

@@ -0,0 +1,265 @@
{
"Automate Mollie payments, orders, refunds, customers, and invoices. Triggers on payment events and statuses.": "Automatisieren von Mollie Zahlungen, Bestellungen, Rückerstattungen, Kunden und Rechnungen. Trigger über Zahlungsereignisse und Status.",
"Enter your Mollie API key (starts with live_ or test_)": "Gib deinen Mollie API-Schlüssel ein (beginnt mit live_ oder test_)",
"Create Order": "Bestellung erstellen",
"Create Payment Link": "Zahlungslink erstellen",
"Create Payment": "Zahlung erstellen",
"Create Customer": "Kunde erstellen",
"Create Payment Refund": "Zahlungsrückerstattung erstellen",
"Search Order": "Suchauftrag",
"Search Payment": "Zahlung suchen",
"Search Customer": "Kunden suchen",
"⚠️ We no longer recommend using the Orders API. Please refer to the Payments API instead.\n\nCreate a new order in Mollie": ":Warnung: Wir empfehlen nicht mehr die Verwendung der Bestell-API. Bitte beachten Sie stattdessen die Zahlungs-API.\n\nErstellen Sie eine neue Bestellung in Mollie",
"Generate a new payment link targeting a customer, product, or specific amount": "Generieren Sie einen neuen Zahlungslink, der auf einen Kunden, einen Artikel oder einen bestimmten Betrag abzielt",
"Creates a new payment in Mollie": "Erstellt eine neue Zahlung in Mollie",
"Creates a new customer in Mollie": "Erstellt einen neuen Kunden in Mollie",
"Creates refund for payment": "Erstellt Erstattung für Zahlung",
"⚠️ We no longer recommend using the Orders API. Please refer to the Payments API instead.\n\nSearches for orders in Mollie": ":Warnung: Wir empfehlen nicht mehr die Verwendung der Bestell-API. Bitte wenden Sie sich stattdessen an die Payment-API.\n\nSuchen Sie nach Bestellungen in Mollie",
"Retrieve all payments created with the current website profile": "Alle mit dem aktuellen Website-Profil erstellten Zahlungen abrufen",
"Retrieve a list of all customers": "Liste aller Kunden abrufen",
"Order Number": "Bestellnummer",
"Currency": "Währung",
"Total Amount": "Gesamtbetrag",
"Order Lines": "Bestelllinien",
"Billing Title": "Rechnungstitel",
"Billing Given Name": "Rechnungsname",
"Billing Family Name": "Rechnungsfamilie",
"Billing Organization Name": "Rechnungsorganisationsname",
"Billing Street and Number": "Rechnungsstraße und Nummer",
"Billing Street Additional": "Rechnungsstraße Zusatzkosten",
"Billing Postal Code": "Rechnungspostleitzahl",
"Billing Email": "Rechnung E-Mail",
"Billing Phone": "Rechnung Telefon",
"Billing City": "Rechnungsort",
"Billing Region": "Rechnungsbereich",
"Billing Country": "Rechnungsland",
"Include Shipping Address": "Lieferadresse einschließen",
"Shipping Title": "Versandtitel",
"Shipping Given Name": "Versandname",
"Shipping Family Name": "Versandfamilie",
"Shipping Organization Name": "Name der Versandorganisation",
"Shipping Street and Number": "Versandstraße und Nummer",
"Shipping Street Additional": "Versandstraße Zusatzkosten",
"Shipping Postal Code": "Versand Postleitzahl",
"Shipping Email": "Versand E-Mail",
"Shipping Phone": "Versand Telefon",
"Shipping City": "Versandort",
"Shipping Region": "Versandregion",
"Shipping Country": "Versandland",
"Locale": "Lokal",
"Redirect URL": "Weiterleitungs-URL",
"Cancel URL": "URL abbrechen",
"Webhook URL": "Webhook-URL",
"Payment Method": "Zahlungsmethode",
"Shopper Country Must Match Billing Country": "Shopper Land muss Abrechnungsland sein",
"Expires At": "Gültig bis",
"Consumer Date of Birth": "Verbrauchergeburt",
"Test Mode": "Testmodus",
"Description": "Beschreibung",
"Include Fixed Amount": "Festen Betrag einbeziehen",
"Amount": "Betrag",
"Include Minimum Amount": "Mindestbetrag einbeziehen",
"Minimum Amount Currency": "Mindestbetrag Währung",
"Minimum Amount": "Mindestbetrag",
"Include Order Lines": "Bestelllinien einbeziehen",
"Include Billing Address": "Rechnungsadresse einbeziehen",
"Billing Organization": "Rechnungsorganisation",
"Shipping Organization": "Versandorganisation",
"Reusable": "Wiederverwendbar",
"Allowed Payment Methods": "Erlaubte Zahlungsarten",
"Sequence Type": "Sequenztyp",
"Customer ID": "Kunden-ID",
"Restrict Payment Methods to Country": "Zahlungsmethoden auf Land beschränken",
"Mandate ID": "Mandate ID",
"Capture Mode": "Aufnahmemodus",
"Capture Delay": "Aufnahmeverzögerung",
"Name": "Name",
"Email": "E-Mail",
"Metadata": "Metadaten",
"Payment": "Zahlung",
"Refund Amount": "Erstattungsbetrag",
"Include External Reference": "Externe Referenz einbeziehen",
"External Reference Type": "Externer Referenztyp",
"External Reference ID": "Externe Referenz-ID",
"Reverse Routing": "Routing umkehren",
"Include Routing Reversals": "Routing-Umkehrungen einbeziehen",
"Routing Reversals": "Routing-Umkehrungen",
"From Order ID": "Von Bestell-ID",
"Limit": "Limit",
"Sort Direction": "Sortierrichtung",
"Profile ID": "Profil-ID",
"From Payment ID": "Von Zahlungs-ID",
"From Customer ID": "Von Kunden-ID",
"The order number for this order. We recommend each order number to be unique.": "Die Bestellnummer für diese Bestellung. Wir empfehlen Ihnen, dass jede Bestellnummer eindeutig ist.",
"A three-character ISO 4217 currency code (e.g. EUR, USD)": "Ein dreistelliger ISO 4217 Währungscode (z.B. EUR, USD)",
"The total amount to charge (e.g. \"10.00\")": "Der zu berechnende Gesamtbetrag (z.B. \"10.00\")",
"The order lines for the order": "Die Bestelllinien für die Bestellung",
"The title of the person (e.g. Mr., Mrs.)": "Der Titel der Person (z.B. Mr., Mrs.)",
"The given name (first name) of the person": "Der angegebene Name (Vorname) der Person",
"The family name (surname) of the person": "Der Familienname (Nachname) der Person",
"The name of the organization": "Der Name der Organisation",
"A street and street number": "Eine Straßen- und Straßennummer",
"Any additional addressing details": "Zusätzliche Adressierungsdetails",
"A postal code": "Eine Postleitzahl",
"Email address": "E-Mail-Adresse",
"Phone number in E.164 format": "Telefonnummer im E.164-Format",
"City name": "Stadtname",
"Region or state": "Bundesland",
"A country code in ISO 3166-1 alpha-2 format": "Ein Ländercode im ISO 3166-1 Alpha-2 Format",
"Whether to include a separate shipping address": "Gibt an, ob eine separate Lieferadresse enthalten soll",
"The language to be used in the hosted payment pages": "Die Sprache, die auf den gehosteten Zahlungsseiten verwendet werden soll",
"The URL your customer will be redirected to after the payment process": "Die URL, zu der Ihr Kunde nach dem Zahlungsvorgang weitergeleitet wird",
"The URL your customer will be redirected to when they cancel the payment": "Die URL, auf die Ihr Kunde umgeleitet wird, wenn er die Zahlung annulliert",
"The webhook URL where order status updates will be sent": "Die Webhook-URL, in der Bestellstatus-Updates gesendet werden",
"Specific payment method to use (optional)": "Spezifische Zahlungsart (optional)",
"Restrict payment methods to those from the billing country only": "Bezahlmethoden nur aus dem Rechnungsland einschränken",
"The date the order should expire in YYYY-MM-DD format": "Das Datum des Ablaufs der Bestellung im Format JJJJ-MM-TT",
"The date of birth of the consumer in YYYY-MM-DD format": "Geburtsdatum des Verbrauchers im Format JJJJ-MM-TT",
"Whether to create the order in test mode": "Ob die Bestellung im Testmodus erstellt werden soll",
"A short description of the payment link (max 255 characters)": "Eine kurze Beschreibung des Zahlungslinks (max. 255 Zeichen)",
"Whether to include a fixed amount or let customer enter amount": "Gibt an, ob ein Festbetrag oder der Betrag des Kunden eingegeben werden soll",
"The amount to charge (e.g. \"10.00\")": "Der zu berechnende Betrag (z.B. \"10.00\")",
"Whether to set a minimum amount (only when no fixed amount)": "Festlegen eines Mindestbetrags (nur wenn kein festgelegter Betrag)",
"Currency for minimum amount": "Währung für Mindestbetrag",
"The minimum amount (e.g. \"5.00\")": "Der Mindestbetrag (z.B. \"5.00\")",
"URL to redirect customer after payment completion": "URL zur Weiterleitung nach Zahlungsabschluss",
"URL for payment status updates": "URL für Aktualisierungen des Zahlungsstatus",
"Whether to include detailed order line items": "Gibt an, ob Detailbestellungen enthalten sind",
"Order line items (required for certain payment methods)": "Bestellzeile-Artikel (erforderlich für bestimmte Zahlungsmethoden)",
"Whether to include billing address details": "Gibt an, ob die Rechnungsadressendetails enthalten sollen",
"Title (e.g. Mr., Mrs.)": "Titel (z.B. Mr., Mrs.)",
"First name": "Vorname",
"Last name": "Nachname",
"Organization name": "Name der Organisation",
"Street address with number": "Adresse mit Rufnummer",
"Additional address details": "Zusätzliche Adressdetails",
"Postal code": "Postleitzahl",
"Phone in E.164 format": "Telefon im E.164-Format",
"State or region": "Bundesland oder Region",
"ISO 3166-1 alpha-2 country code": "ISO 3166-1 alpha-2 Ländercode",
"Whether to include shipping address details": "Gibt an, ob die Versandadressendetails enthalten sollen",
"Allow multiple payments using the same link": "Erlaube mehrere Zahlungen mit demselben Link",
"Expiry date in ISO 8601 format (e.g. 2024-12-31T23:59:59Z)": "Expiry date in ISO 8601 format (e.g. 2024-12-31T23:59:59Z)",
"Payment methods allowed for this link (empty = all enabled methods)": "Für diesen Link erlaubte Zahlungsmethoden (leer = alle aktivierten Methoden)",
"Type of payment sequence": "Zahlungstyp",
"Customer ID (only relevant for first sequence type)": "Kunden-ID (nur relevant für den Typ der ersten Sequenz)",
"Whether to create the payment link in test mode": "Gibt an, ob der Zahlungslink im Testmodus erstellt werden soll",
"Description of the payment (max 255 characters)": "Beschreibung der Zahlung (max. 255 Zeichen)",
"URL to redirect customer when they cancel payment": "URL zum Umleiten bei Stornierung der Zahlung",
"ISO 3166-1 alpha-2 country code to restrict payment methods": "ISO 3166-1 alpha-2 Ländercode zur Einschränkung der Zahlungsmethoden",
"Customer ID (required for recurring payments)": "Kunden-ID (erforderlich für wiederkehrende Zahlungen)",
"Mandate ID (for recurring payments)": "Mandats-ID (für wiederkehrende Zahlungen)",
"When to capture the payment": "Wann die Zahlung erfasst wird",
"Delay before automatic capture (e.g. \"8 hours\", \"2 days\")": "Verzögerung vor automatischer Aufnahme (z.B. \"8 Stunden\", \"2 Tage\")",
"Whether to create the payment in test mode": "Ob die Zahlung im Testmodus erstellt werden soll",
"The full name of the customer": "Der vollständige Name des Kunden",
"The email address of the customer": "Die E-Mail-Adresse des Kunden",
"Additional data to save alongside the customer (JSON string)": "Zusätzliche Daten, die neben dem Kunden gespeichert werden (JSON-Zeichenkette)",
"Whether to create the customer in test mode": "Kunden im Testmodus erstellen",
"Select the payment to refund": "Wählen Sie die zu erstattende Zahlung aus",
"The description of the refund (max 255 characters)": "Die Beschreibung der Rückerstattung (max. 255 Zeichen)",
"The amount to refund (e.g. \"10.00\")": "Der zu erstattende Betrag (z.B. \"10.00\")",
"Additional data to save alongside the refund (JSON string)": "Zusätzliche Daten neben der Erstattung (JSON-Zeichenkette)",
"Whether to include external reference details": "Externe Referenzdetails einfügen",
"Type of external reference": "Art der externen Referenz",
"Unique reference from the payment provider": "Eindeutige Referenz vom Zahlungsanbieter",
"Pull back funds routed to connected merchants (full refund only)": "Zurückziehen von Guthaben zu verbundenen Händlern (nur vollständige Erstattung)",
"Specify detailed routing reversals for partial refunds": "Detaillierte Routing-Umkehrungen für Teilerstattung angeben",
"Detailed routing reversals for connected merchants": "Detaillierte Routing-Umkehrungen für verbundene Händler",
"Whether to create the refund in test mode": "Gibt an, ob die Erstattung im Testmodus erstellt werden soll",
"Start the result set from this order ID onwards": "Das Ergebnis von dieser Bestell-ID starten",
"Maximum number of orders to return (1-250, default: 50)": "Maximale Anzahl der zurückzusenden Bestellungen (1-250, Standardwert: 50)",
"Sort orders by creation date": "Bestellungen nach Erstellungsdatum sortieren",
"Profile ID to retrieve orders for (optional)": "Profil-ID zum Abrufen von Bestellungen für (optional)",
"Whether to search in test mode": "Ob im Testmodus gesucht werden soll",
"Start the result set from this payment ID onwards": "Das Ergebnis von dieser Zahlungs-ID ab starten",
"Maximum number of payments to return (1-250, default: 50)": "Maximale Anzahl der zurückzuzahlenden Zahlungen (1-250, Standardwert: 50)",
"Sort payments by creation date": "Zahlungen nach Erstellungsdatum sortieren",
"Profile ID to retrieve payments for (optional)": "Profil-ID zum Abrufen von Zahlungen für (optional)",
"Start the result set from this customer ID onwards": "Das Ergebnis von dieser Kunden-ID ab starten",
"Maximum number of customers to return (1-250, default: 50)": "Maximale Kundenanzahl (1-250, Standard: 50)",
"Sort customers by creation date": "Kunden nach Erstellungsdatum sortieren",
"English (US)": "Englisch (USA)",
"English (GB)": "Englisch (GB)",
"Dutch (NL)": "Niederländisch (NL)",
"Dutch (BE)": "Niederländisch (BE)",
"German (DE)": "Deutsch (DE)",
"German (AT)": "Deutsch (AT)",
"German (CH)": "Deutsch (CH)",
"French (FR)": "Französisch (FR)",
"French (BE)": "Französisch (BE)",
"Spanish (ES)": "Spanisch (ES)",
"Catalan (ES)": "Katalanisch (ES)",
"Portuguese (PT)": "Portugiesisch (PT)",
"Italian (IT)": "Italienisch (IT)",
"Norwegian (NO)": "Norwegisch (NO)",
"Swedish (SE)": "Schwedisch (SE)",
"Finnish (FI)": "Finnisch (FI)",
"Danish (DK)": "Dänisch (DK)",
"Icelandic (IS)": "Isländisch (IS)",
"Hungarian (HU)": "Ungarisch (HU)",
"Polish (PL)": "Polnisch (PL)",
"Latvian (LV)": "Lettisch (LV)",
"Lithuanian (LT)": "Litauisch (LT)",
"Apple Pay": "Apfelzins",
"Bancomat Pay": "Bancomat Bezahlung",
"Bancontact": "Sperrung",
"Bank Transfer": "Banküberweisung",
"Belfius": "Belfius",
"Billie": "Lila",
"Credit Card": "Kreditkarte",
"Direct Debit": "Lastschrift",
"EPS": "EPS",
"Gift Card": "Geschenkkarte",
"iDEAL": "iDEAL",
"in3": "in3",
"KBC": "KBC",
"Klarna": "Klarna",
"Klarna Pay Later": "Klarna Bezahlung später",
"Klarna Pay Now": "Klarna bezahlen jetzt",
"Klarna Slice It": "Klarna Slice es",
"MyBank": "MyBank",
"PayPal": "PayPal",
"Paysafecard": "Paysafecard",
"Przelewy24": "Przelewy24",
"Riverty": "Fluss",
"Satispay": "Satispay",
"Trustly": "Treu",
"Twint": "Twint",
"Voucher": "Gutschein",
"One-off Payment": "Einmalzahlung",
"First Payment (establishes mandate)": "Erste Zahlung (Mandat)",
"Alma": "Alma",
"BACS": "BACS",
"Bizum": "Bizum",
"BLIK": "BLIK",
"MB Way": "MB Weg",
"Multibanco": "Multibanco",
"Pay by Bank": "Per Bank bezahlen",
"Payconiq": "Payconiq",
"Point of Sale": "Punkt des Verkaufs",
"Swish": "Twein",
"Recurring Payment": "Wiederkehrende Zahlung",
"Automatic": "Automatisch",
"Manual": "Manuell",
"Acquirer Reference": "Referenz des Erwerbers",
"Newest first (Descending)": "Neueste zuerst (absteigend)",
"Oldest first (Ascending)": "Älteste zuerst (absteigend)",
"New Customer": "Neuer Kunde",
"New Order": "Neue Bestellung",
"New Settlement": "Neue Abrechnung",
"New Invoice": "Neue Rechnung",
"New Payment": "Neue Zahlung",
"New Refund": "Neue Rückerstattung",
"New Payment Chargeback": "Neue Zahlung Rückbuchung",
"Fires when a new customer is created in Mollie": "Feuer, wenn ein neuer Kunde in Mollie erstellt wird",
"Fires when a new order is created in Mollie": "Feuert ab, wenn eine neue Bestellung in Mollie erstellt wird",
"Fires upon a new settlement event (e.g. payout)": "Feuern bei einem neuen Abrechnungsereignis (z.B. Auszahlung)",
"Fires when a new invoice is generated": "Feuer wenn eine neue Rechnung erstellt wird",
"Fires when a new payment is created/received": "Feuer wenn eine neue Zahlung erstellt/empfangen wird",
"Fires when a payment refund is created": "Feuer wenn eine Zahlungsrückerstattung erstellt wird",
"Fires upon a payment chargeback event": "Feuer, wenn eine Zahlung rückerstattet Ereignis",
"Payment ID": "Zahlungs-ID",
"The payment to monitor for refunds": "Die zu überwachende Zahlung für Erstattungen",
"The payment to monitor for chargebacks": "Die zu überwachende Zahlung für Rückbuchungen"
}

View File

@@ -0,0 +1,265 @@
{
"Automate Mollie payments, orders, refunds, customers, and invoices. Triggers on payment events and statuses.": "Automatiza los pagos, pedidos, reembolsos, clientes y facturas. Activa los eventos y estados de pago.",
"Enter your Mollie API key (starts with live_ or test_)": "Introduzca su clave API de Mollie (comienza con live_ o test_)",
"Create Order": "Crear pedido",
"Create Payment Link": "Crear enlace de pago",
"Create Payment": "Crear Pago",
"Create Customer": "Crear cliente",
"Create Payment Refund": "Crear reembolso de pago",
"Search Order": "Buscar pedido",
"Search Payment": "Buscar pago",
"Search Customer": "Buscar cliente",
"⚠️ We no longer recommend using the Orders API. Please refer to the Payments API instead.\n\nCreate a new order in Mollie": "⚠️ Ya no recomendamos el uso de la API de pedidos. Por favor, consulte la API de pagos en su lugar.\n\nCrear un nuevo pedido en Mollie",
"Generate a new payment link targeting a customer, product, or specific amount": "Generar un nuevo enlace de pago dirigido a un cliente, producto o cantidad específica",
"Creates a new payment in Mollie": "Crea un nuevo pago en Mollie",
"Creates a new customer in Mollie": "Crea un nuevo cliente en Mollie",
"Creates refund for payment": "Crea reembolso para el pago",
"⚠️ We no longer recommend using the Orders API. Please refer to the Payments API instead.\n\nSearches for orders in Mollie": "⚠️ Ya no recomendamos el uso de la API de pedidos. Por favor, consulte la API de pagos en su lugar.\n\nBusca pedidos en Mollie",
"Retrieve all payments created with the current website profile": "Recuperar todos los pagos creados con el perfil actual del sitio web",
"Retrieve a list of all customers": "Recuperar una lista de todos los clientes",
"Order Number": "Número de pedido",
"Currency": "Moneda",
"Total Amount": "Cantidad total",
"Order Lines": "Líneas de pedido",
"Billing Title": "Título de facturación",
"Billing Given Name": "Nombre de Facturación",
"Billing Family Name": "Nombre de familia de facturación",
"Billing Organization Name": "Nombre de la organización de facturación",
"Billing Street and Number": "Calle de facturación y número",
"Billing Street Additional": "Calle de facturación adicional",
"Billing Postal Code": "Código postal de facturación",
"Billing Email": "Email de facturación",
"Billing Phone": "Teléfono de facturación",
"Billing City": "Ciudad de facturación",
"Billing Region": "Región de facturación",
"Billing Country": "País de facturación",
"Include Shipping Address": "Incluye la dirección de envío",
"Shipping Title": "Título de envío",
"Shipping Given Name": "Nombre del envío",
"Shipping Family Name": "Nombre de familia de envío",
"Shipping Organization Name": "Nombre de la organización de envío",
"Shipping Street and Number": "Calle de envío y número",
"Shipping Street Additional": "Calle de envío adicional",
"Shipping Postal Code": "Código postal de envío",
"Shipping Email": "Correo de envío",
"Shipping Phone": "Telefono de envío",
"Shipping City": "Ciudad de envío",
"Shipping Region": "Región de envío",
"Shipping Country": "País de envío",
"Locale": "Local",
"Redirect URL": "URL de redirección",
"Cancel URL": "Cancelar URL",
"Webhook URL": "URL de Webhook",
"Payment Method": "Método de pago",
"Shopper Country Must Match Billing Country": "El país comprador debe coincidir con el país de facturación",
"Expires At": "Caduca el",
"Consumer Date of Birth": "Fecha de nacimiento del consumidor",
"Test Mode": "Modo de prueba",
"Description": "Descripción",
"Include Fixed Amount": "Incluye cantidad fija",
"Amount": "Cantidad",
"Include Minimum Amount": "Incluye la cantidad mínima",
"Minimum Amount Currency": "Moneda mínima",
"Minimum Amount": "Cantidad Mínima",
"Include Order Lines": "Incluye líneas de pedidos",
"Include Billing Address": "Incluye la dirección de facturación",
"Billing Organization": "Organización de facturación",
"Shipping Organization": "Organización de envío",
"Reusable": "Reutilizable",
"Allowed Payment Methods": "Métodos de pago permitidos",
"Sequence Type": "Tipo de secuencia",
"Customer ID": "ID del cliente",
"Restrict Payment Methods to Country": "Restringir métodos de pago al país",
"Mandate ID": "Mandate ID",
"Capture Mode": "Modo de captura",
"Capture Delay": "Retraso de captura",
"Name": "Nombre",
"Email": "E-mail",
"Metadata": "Metadatos",
"Payment": "Pago",
"Refund Amount": "Importe del reembolso",
"Include External Reference": "Incluye referencia externa",
"External Reference Type": "Tipo de referencia externa",
"External Reference ID": "ID de referencia externa",
"Reverse Routing": "Invertir ruta",
"Include Routing Reversals": "Incluye Reversals de Ruta",
"Routing Reversals": "Rutting Reversales",
"From Order ID": "ID del pedido",
"Limit": "Límite",
"Sort Direction": "Ordenar dirección",
"Profile ID": "ID del perfil",
"From Payment ID": "ID de pago",
"From Customer ID": "Del ID del cliente",
"The order number for this order. We recommend each order number to be unique.": "El número de pedido para este pedido. Recomendamos que cada número de pedido sea único.",
"A three-character ISO 4217 currency code (e.g. EUR, USD)": "Un código de moneda ISO 4217 de tres caracteres (por ejemplo, EUR, USD)",
"The total amount to charge (e.g. \"10.00\")": "El importe total a cargar (p. ej., \"10.00\")",
"The order lines for the order": "Las líneas de pedido para el pedido",
"The title of the person (e.g. Mr., Mrs.)": "El título de la persona (p. ej...",
"The given name (first name) of the person": "El nombre dado (nombre) de la persona",
"The family name (surname) of the person": "El apellido (apellido) de la persona",
"The name of the organization": "El nombre de la organización",
"A street and street number": "Un número de calle y calle",
"Any additional addressing details": "Cualquier información adicional de dirección",
"A postal code": "Un código postal",
"Email address": "Dirección de email",
"Phone number in E.164 format": "Número de teléfono en formato E.164",
"City name": "Nombre de ciudad",
"Region or state": "Región o estado",
"A country code in ISO 3166-1 alpha-2 format": "Un código de país en formato ISO 3166-1 alpha-2",
"Whether to include a separate shipping address": "Si incluir una dirección de envío separada",
"The language to be used in the hosted payment pages": "El idioma a utilizar en las páginas de pago alojadas",
"The URL your customer will be redirected to after the payment process": "La URL a la que su cliente será redirigido después del proceso de pago",
"The URL your customer will be redirected to when they cancel the payment": "La URL a la que su cliente será redireccionado cuando cancele el pago",
"The webhook URL where order status updates will be sent": "La URL del webhook donde se enviarán las actualizaciones de estado del pedido",
"Specific payment method to use (optional)": "Método de pago específico a usar (opcional)",
"Restrict payment methods to those from the billing country only": "Restringir métodos de pago sólo a los del país de facturación",
"The date the order should expire in YYYY-MM-DD format": "La fecha en la que la orden debe expirar en formato AAA-MM-DD",
"The date of birth of the consumer in YYYY-MM-DD format": "La fecha de nacimiento del consumidor en formato AAA-MM-DD",
"Whether to create the order in test mode": "Si crear el orden en modo de prueba",
"A short description of the payment link (max 255 characters)": "Una breve descripción del enlace de pago (máx. 255 caracteres)",
"Whether to include a fixed amount or let customer enter amount": "Si incluir una cantidad fija o dejar que el cliente ingrese la cantidad",
"The amount to charge (e.g. \"10.00\")": "El importe a cargar (p. ej., \"10.00\")",
"Whether to set a minimum amount (only when no fixed amount)": "Establecer una cantidad mínima (sólo cuando no hay una cantidad fija)",
"Currency for minimum amount": "Moneda por monto mínimo",
"The minimum amount (e.g. \"5.00\")": "La cantidad mínima (por ejemplo, \"5.00\")",
"URL to redirect customer after payment completion": "URL para redirigir al cliente después de completar el pago",
"URL for payment status updates": "URL para actualizaciones de estado de pago",
"Whether to include detailed order line items": "Si incluir elementos detallados de la línea de pedido",
"Order line items (required for certain payment methods)": "Artículos de línea de pedido (requeridos para ciertos métodos de pago)",
"Whether to include billing address details": "Si incluir los detalles de la dirección de facturación",
"Title (e.g. Mr., Mrs.)": "Título (p. ej.... . . . . .",
"First name": "Nombre",
"Last name": "Apellido",
"Organization name": "Nombre de la organización",
"Street address with number": "Dirección de la calle con número",
"Additional address details": "Detalles adicionales de la dirección",
"Postal code": "Código postal",
"Phone in E.164 format": "Teléfono en formato E.164",
"State or region": "Estado o región",
"ISO 3166-1 alpha-2 country code": "ISO 3166-1 alpha-2 código de país",
"Whether to include shipping address details": "Si incluir los detalles de la dirección de envío",
"Allow multiple payments using the same link": "Permitir múltiples pagos usando el mismo enlace",
"Expiry date in ISO 8601 format (e.g. 2024-12-31T23:59:59Z)": "Expiry date in ISO 8601 format (e.g. 2024-12-31T23:59:59Z)",
"Payment methods allowed for this link (empty = all enabled methods)": "Métodos de pago permitidos para este enlace (vacío = todos los métodos habilitados)",
"Type of payment sequence": "Tipo de secuencia de pago",
"Customer ID (only relevant for first sequence type)": "ID de cliente (sólo relevante para el primer tipo de secuencia)",
"Whether to create the payment link in test mode": "Si crear el enlace de pago en modo de prueba",
"Description of the payment (max 255 characters)": "Descripción del pago (máx. 255 caracteres)",
"URL to redirect customer when they cancel payment": "URL para redirigir al cliente cuando cancela el pago",
"ISO 3166-1 alpha-2 country code to restrict payment methods": "Código de país ISO 3166-1 alpha-2 para restringir métodos de pago",
"Customer ID (required for recurring payments)": "ID de cliente (requerido para pagos recurrientes)",
"Mandate ID (for recurring payments)": "ID Mandate (para pagos recurrientes)",
"When to capture the payment": "Cuándo capturar el pago",
"Delay before automatic capture (e.g. \"8 hours\", \"2 days\")": "Retraso antes de la captura automática (por ejemplo, \"8 horas\", \"2 días\")",
"Whether to create the payment in test mode": "Si crear el pago en modo de prueba",
"The full name of the customer": "El nombre completo del cliente",
"The email address of the customer": "La dirección de correo electrónico del cliente",
"Additional data to save alongside the customer (JSON string)": "Datos adicionales a guardar junto al cliente (cadena JSON)",
"Whether to create the customer in test mode": "Si crear el cliente en modo de prueba",
"Select the payment to refund": "Seleccione el pago a reembolsar",
"The description of the refund (max 255 characters)": "La descripción del reembolso (máx. 255 caracteres)",
"The amount to refund (e.g. \"10.00\")": "La cantidad a reembolsar (por ejemplo, \"10.00\")",
"Additional data to save alongside the refund (JSON string)": "Datos adicionales a guardar junto al reembolso (cadena JSON)",
"Whether to include external reference details": "Si incluir los detalles de referencia externa",
"Type of external reference": "Tipo de referencia externa",
"Unique reference from the payment provider": "Referencia única del proveedor de pagos",
"Pull back funds routed to connected merchants (full refund only)": "Recuperar fondos enrutados a los comerciantes conectados (sólo reembolso completo)",
"Specify detailed routing reversals for partial refunds": "Especifique reversales detallados para reembolsos parciales",
"Detailed routing reversals for connected merchants": "Reversos detallados de enrutamiento para los comerciantes conectados",
"Whether to create the refund in test mode": "Si crear el reembolso en modo de prueba",
"Start the result set from this order ID onwards": "Iniciar el resultado establecido a partir de este ID de pedido",
"Maximum number of orders to return (1-250, default: 50)": "Número máximo de órdenes a devolver (1-250, por defecto: 50)",
"Sort orders by creation date": "Ordenar por fecha de creación",
"Profile ID to retrieve orders for (optional)": "ID de perfil para recuperar pedidos de (opcional)",
"Whether to search in test mode": "Buscar en modo de prueba",
"Start the result set from this payment ID onwards": "Iniciar el resultado establecido a partir de este ID de pago",
"Maximum number of payments to return (1-250, default: 50)": "Número máximo de pagos a devolver (1-250, por defecto: 50)",
"Sort payments by creation date": "Ordenar pagos por fecha de creación",
"Profile ID to retrieve payments for (optional)": "ID del perfil para recuperar pagos (opcional)",
"Start the result set from this customer ID onwards": "Iniciar el conjunto de resultados a partir de este ID de cliente",
"Maximum number of customers to return (1-250, default: 50)": "Número máximo de clientes a devolver (1-250, por defecto: 50)",
"Sort customers by creation date": "Ordenar clientes por fecha de creación",
"English (US)": "Inglés (US)",
"English (GB)": "Inglés (GB)",
"Dutch (NL)": "Holandés (NL)",
"Dutch (BE)": "Holandés (BE)",
"German (DE)": "Alemán (DE)",
"German (AT)": "Alemán (AT)",
"German (CH)": "Alemán (CH)",
"French (FR)": "Francés (FR)",
"French (BE)": "Francés (BE)",
"Spanish (ES)": "Español",
"Catalan (ES)": "Catalán",
"Portuguese (PT)": "Portugués (PT)",
"Italian (IT)": "Italiano (IT)",
"Norwegian (NO)": "Noruego (NT)",
"Swedish (SE)": "Sueco (SE)",
"Finnish (FI)": "Finlandés (FI)",
"Danish (DK)": "Danés (DK)",
"Icelandic (IS)": "Isándico (IS)",
"Hungarian (HU)": "Húngaro (HU)",
"Polish (PL)": "Polaco (PL)",
"Latvian (LV)": "Letón (LV)",
"Lithuanian (LT)": "Lituano (LT)",
"Apple Pay": "Manzana pago",
"Bancomat Pay": "Pago de Bancomat",
"Bancontact": "Bancontacto",
"Bank Transfer": "Transferencia bancaria",
"Belfius": "Belfius",
"Billie": "mentira",
"Credit Card": "Tarjeta de crédito",
"Direct Debit": "Débito directo",
"EPS": "EPS",
"Gift Card": "Tarjeta de regalo",
"iDEAL": "iDEAL",
"in3": "en3",
"KBC": "KBC",
"Klarna": "Klarna",
"Klarna Pay Later": "Klarna paga más tarde",
"Klarna Pay Now": "Klarna paga ahora",
"Klarna Slice It": "Cortar Klarna",
"MyBank": "MyBank",
"PayPal": "PayPal",
"Paysafecard": "Paysafecard",
"Przelewy24": "Przelewy24",
"Riverty": "Riviera",
"Satispay": "Satispay",
"Trustly": "Confianza",
"Twint": "Twint",
"Voucher": "Cupón",
"One-off Payment": "Pago único",
"First Payment (establishes mandate)": "Primer pago (establece obligación)",
"Alma": "Alma",
"BACS": "BACS",
"Bizum": "Bizum",
"BLIK": "BLIK",
"MB Way": "Mb",
"Multibanco": "Multibanco",
"Pay by Bank": "Pagar por banco",
"Payconiq": "Payconiq",
"Point of Sale": "Punto de venta",
"Swish": "Desear",
"Recurring Payment": "Pago recurrente",
"Automatic": "Automático",
"Manual": "Manual",
"Acquirer Reference": "Referencia Adquirente",
"Newest first (Descending)": "Más nuevo primero (Descender)",
"Oldest first (Ascending)": "Lo más antiguo primero (Ascendente)",
"New Customer": "Nuevo cliente",
"New Order": "Nuevo pedido",
"New Settlement": "Nuevo Acuerdo",
"New Invoice": "Nueva factura",
"New Payment": "Nuevo pago",
"New Refund": "Nuevo reembolso",
"New Payment Chargeback": "Nuevo reembolso de pago",
"Fires when a new customer is created in Mollie": "Dispara cuando un nuevo cliente es creado en Mollie",
"Fires when a new order is created in Mollie": "Dispara cuando se crea un nuevo pedido en Mollie",
"Fires upon a new settlement event (e.g. payout)": "Dispara sobre un nuevo evento de liquidación (p. ej., pago)",
"Fires when a new invoice is generated": "Dispara cuando se genera una nueva factura",
"Fires when a new payment is created/received": "Dispara cuando un nuevo pago es creado/recibido",
"Fires when a payment refund is created": "Dispara cuando se crea un reembolso de pago",
"Fires upon a payment chargeback event": "Dispara sobre un evento de cargo de pago",
"Payment ID": "ID de pago",
"The payment to monitor for refunds": "El pago para monitorear los reembolsos",
"The payment to monitor for chargebacks": "El pago para monitorear los reembolsos"
}

View File

@@ -0,0 +1,265 @@
{
"Automate Mollie payments, orders, refunds, customers, and invoices. Triggers on payment events and statuses.": "Automatiser les paiements, les commandes, les remboursements, les clients et les factures. Déclencher les événements de paiement et les statuts.",
"Enter your Mollie API key (starts with live_ or test_)": "Entrez votre clé API Mollie (commence par live_ ou test_)",
"Create Order": "Créer une commande",
"Create Payment Link": "Créer un lien de paiement",
"Create Payment": "Créer un paiement",
"Create Customer": "Créer un client",
"Create Payment Refund": "Créer un remboursement de paiement",
"Search Order": "Rechercher une commande",
"Search Payment": "Rechercher un paiement",
"Search Customer": "Rechercher un client",
"⚠️ We no longer recommend using the Orders API. Please refer to the Payments API instead.\n\nCreate a new order in Mollie": "⚠️ Nous ne recommandons plus d'utiliser l'API des commandes. Veuillez vous référer à l'API des paiements.\n\nCréer une nouvelle commande dans Mollie",
"Generate a new payment link targeting a customer, product, or specific amount": "Générer un nouveau lien de paiement ciblant un client, un produit ou un montant spécifique",
"Creates a new payment in Mollie": "Crée un nouveau paiement dans Mollie",
"Creates a new customer in Mollie": "Crée un nouveau client dans Mollie",
"Creates refund for payment": "Crée un remboursement pour le paiement",
"⚠️ We no longer recommend using the Orders API. Please refer to the Payments API instead.\n\nSearches for orders in Mollie": "⚠️ Nous ne recommandons plus d'utiliser l'API des commandes. Veuillez vous référer à l'API des paiements.\n\nRecherche des commandes dans Mollie",
"Retrieve all payments created with the current website profile": "Récupérer tous les paiements créés avec le profil actuel du site",
"Retrieve a list of all customers": "Récupérer une liste de tous les clients",
"Order Number": "Numéro de commande",
"Currency": "Devise",
"Total Amount": "Montant total",
"Order Lines": "Lignes de commande",
"Billing Title": "Titre de la facturation",
"Billing Given Name": "Prénom de facturation",
"Billing Family Name": "Nom de la famille de facturation",
"Billing Organization Name": "Nom de l'organisation de facturation",
"Billing Street and Number": "Rue et numéro de facturation",
"Billing Street Additional": "Rue de facturation supplémentaire",
"Billing Postal Code": "Code postal de facturation",
"Billing Email": "Courriel de facturation",
"Billing Phone": "Téléphone de facturation",
"Billing City": "Ville de facturation",
"Billing Region": "Région de facturation",
"Billing Country": "Pays de facturation",
"Include Shipping Address": "Inclure l'adresse de livraison",
"Shipping Title": "Titre de la livraison",
"Shipping Given Name": "Prénom de livraison",
"Shipping Family Name": "Nom de famille de livraison",
"Shipping Organization Name": "Nom de l'organisme d'expédition",
"Shipping Street and Number": "Rue et numéro de livraison",
"Shipping Street Additional": "Rue d'expédition supplémentaire",
"Shipping Postal Code": "Code postal de livraison",
"Shipping Email": "E-mail de livraison",
"Shipping Phone": "Téléphone de livraison",
"Shipping City": "Ville d'expédition",
"Shipping Region": "Région d'expédition",
"Shipping Country": "Pays de livraison",
"Locale": "Locale",
"Redirect URL": "URL de redirection",
"Cancel URL": "Annuler l'URL",
"Webhook URL": "URL du Webhook",
"Payment Method": "Méthode de paiement",
"Shopper Country Must Match Billing Country": "Le pays de la boutique doit correspondre au pays de facturation",
"Expires At": "Expire à",
"Consumer Date of Birth": "Date de naissance du consommateur",
"Test Mode": "Mode de test",
"Description": "Libellé",
"Include Fixed Amount": "Inclure le montant fixe",
"Amount": "Montant",
"Include Minimum Amount": "Inclure le montant minimum",
"Minimum Amount Currency": "Devise minimale du montant",
"Minimum Amount": "Montant minimum",
"Include Order Lines": "Inclure les lignes de commande",
"Include Billing Address": "Inclure l'adresse de facturation",
"Billing Organization": "Organisation de facturation",
"Shipping Organization": "Organisation d'expédition",
"Reusable": "Réutilisable",
"Allowed Payment Methods": "Méthodes de paiement autorisées",
"Sequence Type": "Type de séquence",
"Customer ID": "ID du client",
"Restrict Payment Methods to Country": "Restreindre les modes de paiement au pays",
"Mandate ID": "Mandate ID",
"Capture Mode": "Mode de capture",
"Capture Delay": "Délai de capture",
"Name": "Nom",
"Email": "Courriel",
"Metadata": "Métadonnées",
"Payment": "Paiement",
"Refund Amount": "Montant du remboursement",
"Include External Reference": "Inclure la référence externe",
"External Reference Type": "Type de référence externe",
"External Reference ID": "ID de référence externe",
"Reverse Routing": "Routage inversé",
"Include Routing Reversals": "Inclure les inversations de routage",
"Routing Reversals": "Inversations de routage",
"From Order ID": "Depuis l'ID de la commande",
"Limit": "Limite",
"Sort Direction": "Direction de tri",
"Profile ID": "ID du profil",
"From Payment ID": "À partir de l'ID de paiement",
"From Customer ID": "Depuis l'ID du client",
"The order number for this order. We recommend each order number to be unique.": "Le numéro de commande pour cette commande. Nous recommandons à chaque numéro de commande d'être unique.",
"A three-character ISO 4217 currency code (e.g. EUR, USD)": "Un code de devise ISO 4217 à trois caractères (par exemple, EUR, USD)",
"The total amount to charge (e.g. \"10.00\")": "Le montant total à facturer (par exemple \"10.00\")",
"The order lines for the order": "Les lignes de commande pour la prescription",
"The title of the person (e.g. Mr., Mrs.)": "Le titre de la personne (ex: M.M., M.M.)",
"The given name (first name) of the person": "Le nom donné (prénom) de la personne",
"The family name (surname) of the person": "Le nom de famille (prénom) de la personne",
"The name of the organization": "Le nom de l'organisation",
"A street and street number": "Une rue et numéro de rue",
"Any additional addressing details": "Tous les détails d'adressage supplémentaires",
"A postal code": "Un code postal",
"Email address": "Adresse e-mail",
"Phone number in E.164 format": "Numéro de téléphone au format E.164",
"City name": "Nom de ville",
"Region or state": "Région ou état",
"A country code in ISO 3166-1 alpha-2 format": "Un code pays au format ISO 3166-1 alpha-2",
"Whether to include a separate shipping address": "Indiquer s'il faut inclure une adresse de livraison séparée",
"The language to be used in the hosted payment pages": "La langue à utiliser dans les pages de paiement hébergées",
"The URL your customer will be redirected to after the payment process": "L'URL vers laquelle votre client sera redirigé après le processus de paiement",
"The URL your customer will be redirected to when they cancel the payment": "L'URL vers laquelle votre client sera redirigé lorsqu'il annulera le paiement",
"The webhook URL where order status updates will be sent": "L'URL du webhook où les mises à jour du statut de la commande seront envoyées",
"Specific payment method to use (optional)": "Méthode de paiement spécifique à utiliser (facultatif)",
"Restrict payment methods to those from the billing country only": "Restreindre les méthodes de paiement à celles du pays de facturation uniquement",
"The date the order should expire in YYYY-MM-DD format": "La date à laquelle la commande doit expirer au format AAAA-MM-JJ",
"The date of birth of the consumer in YYYY-MM-DD format": "La date de naissance du consommateur au format AAAA-MM-JJ",
"Whether to create the order in test mode": "S'il faut créer l'ordre en mode test",
"A short description of the payment link (max 255 characters)": "Une courte description du lien de paiement (max 255 caractères)",
"Whether to include a fixed amount or let customer enter amount": "Si vous voulez inclure un montant fixe ou laisser le client entrer le montant",
"The amount to charge (e.g. \"10.00\")": "Le montant à facturer (par exemple \"10.00\")",
"Whether to set a minimum amount (only when no fixed amount)": "Définir un montant minimum (uniquement si aucun montant fixe)",
"Currency for minimum amount": "Devise pour le montant minimum",
"The minimum amount (e.g. \"5.00\")": "Le montant minimum (par ex. \"5.00\")",
"URL to redirect customer after payment completion": "URL pour rediriger le client après la fin du paiement",
"URL for payment status updates": "URL de mise à jour du statut de paiement",
"Whether to include detailed order line items": "Inclure ou non les articles de la ligne de commande détaillée",
"Order line items (required for certain payment methods)": "Articles de la ligne de commande (requis pour certains modes de paiement)",
"Whether to include billing address details": "Inclure ou non les détails de l'adresse de facturation",
"Title (e.g. Mr., Mrs.)": "Titre (ex: M.M., M.M.)",
"First name": "Prénom",
"Last name": "Nom de famille",
"Organization name": "Nom de l'organisation",
"Street address with number": "Adresse postale avec numéro",
"Additional address details": "Coordonnées additionnelles",
"Postal code": "Code postal",
"Phone in E.164 format": "Téléphone au format E.164",
"State or region": "État ou région",
"ISO 3166-1 alpha-2 country code": "Code pays ISO 3166-1 alpha-2",
"Whether to include shipping address details": "Inclure ou non les détails de l'adresse de livraison",
"Allow multiple payments using the same link": "Autoriser plusieurs paiements en utilisant le même lien",
"Expiry date in ISO 8601 format (e.g. 2024-12-31T23:59:59Z)": "Expiry date in ISO 8601 format (e.g. 2024-12-31T23:59:59Z)",
"Payment methods allowed for this link (empty = all enabled methods)": "Méthodes de paiement autorisées pour ce lien (vide = toutes les méthodes activées)",
"Type of payment sequence": "Type de séquence de paiement",
"Customer ID (only relevant for first sequence type)": "ID du client (pertinent uniquement pour le type de la première séquence)",
"Whether to create the payment link in test mode": "S'il faut créer le lien de paiement en mode test",
"Description of the payment (max 255 characters)": "Description du paiement (max 255 caractères)",
"URL to redirect customer when they cancel payment": "URL pour rediriger le client quand il annule le paiement",
"ISO 3166-1 alpha-2 country code to restrict payment methods": "Code pays ISO 3166-1 alpha-2 pour restreindre les méthodes de paiement",
"Customer ID (required for recurring payments)": "ID du client (requis pour les paiements récurrents)",
"Mandate ID (for recurring payments)": "ID du mandat (pour les paiements récurrents)",
"When to capture the payment": "Quand capturer le paiement",
"Delay before automatic capture (e.g. \"8 hours\", \"2 days\")": "Délai avant la capture automatique (par exemple \"8 heures\", \"2 jours\")",
"Whether to create the payment in test mode": "S'il faut créer le paiement en mode test",
"The full name of the customer": "Le nom complet du client",
"The email address of the customer": "L'adresse e-mail du client",
"Additional data to save alongside the customer (JSON string)": "Données supplémentaires à enregistrer à côté du client (chaîne JSON)",
"Whether to create the customer in test mode": "S'il faut créer le client en mode test",
"Select the payment to refund": "Sélectionnez le paiement à rembourser",
"The description of the refund (max 255 characters)": "La description du remboursement (max 255 caractères)",
"The amount to refund (e.g. \"10.00\")": "Le montant à rembourser (par exemple \"10.00\")",
"Additional data to save alongside the refund (JSON string)": "Données supplémentaires à enregistrer parallèlement au remboursement (chaîne JSON)",
"Whether to include external reference details": "Inclure ou non les détails de référence externe",
"Type of external reference": "Type de référence externe",
"Unique reference from the payment provider": "Référence unique du fournisseur de paiement",
"Pull back funds routed to connected merchants (full refund only)": "Retirer les fonds vers les marchands connectés (remboursement complet seulement)",
"Specify detailed routing reversals for partial refunds": "Spécifier les retours de routage détaillés pour les remboursements partiels",
"Detailed routing reversals for connected merchants": "Inversion détaillée du routage pour les marchands connectés",
"Whether to create the refund in test mode": "S'il faut créer le remboursement en mode test",
"Start the result set from this order ID onwards": "Démarrer le jeu de résultats à partir de cet ID de commande",
"Maximum number of orders to return (1-250, default: 50)": "Nombre maximum de commandes à retourner (1-250, par défaut: 50)",
"Sort orders by creation date": "Trier les ordres par date de création",
"Profile ID to retrieve orders for (optional)": "ID du profil pour récupérer les commandes (optionnel)",
"Whether to search in test mode": "Si vous souhaitez rechercher en mode test",
"Start the result set from this payment ID onwards": "Démarrer le jeu de résultats à partir de cet ID de paiement",
"Maximum number of payments to return (1-250, default: 50)": "Nombre maximum de paiements à retourner (1-250, valeur par défaut : 50)",
"Sort payments by creation date": "Trier les paiements par date de création",
"Profile ID to retrieve payments for (optional)": "ID du profil pour récupérer les paiements (facultatif)",
"Start the result set from this customer ID onwards": "Démarrer le jeu de résultats à partir de cet ID client",
"Maximum number of customers to return (1-250, default: 50)": "Nombre maximum de clients à retourner (1-250, par défaut: 50)",
"Sort customers by creation date": "Trier les clients par date de création",
"English (US)": "Anglais (US)",
"English (GB)": "Anglais (GB)",
"Dutch (NL)": "Néerlandais (NL)",
"Dutch (BE)": "Néerlandais (BE)",
"German (DE)": "Allemand (DE)",
"German (AT)": "Allemand (AT)",
"German (CH)": "Allemand (CH)",
"French (FR)": "Français (FR)",
"French (BE)": "Français (BE)",
"Spanish (ES)": "Espagnol (ES)",
"Catalan (ES)": "Catalan (ES)",
"Portuguese (PT)": "Portugais (PT)",
"Italian (IT)": "Italien (IT)",
"Norwegian (NO)": "Norvégien (NO)",
"Swedish (SE)": "Suédois (SE)",
"Finnish (FI)": "Finlandais (FI)",
"Danish (DK)": "Danois (DK)",
"Icelandic (IS)": "Islandais (IS)",
"Hungarian (HU)": "Hongrois (HU)",
"Polish (PL)": "Polonais (PL)",
"Latvian (LV)": "Lettonie (LV)",
"Lithuanian (LT)": "Lituanien (LT)",
"Apple Pay": "Apple Pay",
"Bancomat Pay": "Bancomat Pay",
"Bancontact": "Bancontact",
"Bank Transfer": "Virement bancaire",
"Belfius": "Belfius",
"Billie": "Billie",
"Credit Card": "Carte de Crédit",
"Direct Debit": "Débit direct",
"EPS": "EPS",
"Gift Card": "Carte-cadeau",
"iDEAL": "iDEAL",
"in3": "in3",
"KBC": "KBC",
"Klarna": "Klarna",
"Klarna Pay Later": "Klarna paie plus tard",
"Klarna Pay Now": "Klarna paie maintenant",
"Klarna Slice It": "Klarna Slice",
"MyBank": "MyBank",
"PayPal": "PayPal",
"Paysafecard": "Paysafecard",
"Przelewy24": "Przelewy24",
"Riverty": "Rivière",
"Satispay": "Satispay",
"Trustly": "En toute confiance",
"Twint": "Twint",
"Voucher": "Bon de réduction",
"One-off Payment": "Paiement unique",
"First Payment (establishes mandate)": "Premier paiement (établit le mandat)",
"Alma": "Alma",
"BACS": "BACS",
"Bizum": "Bizum",
"BLIK": "BLIK",
"MB Way": "Mémoire Mo",
"Multibanco": "Multibanco",
"Pay by Bank": "Payer par banque",
"Payconiq": "Payconiq",
"Point of Sale": "Point de vente",
"Swish": "Souffle",
"Recurring Payment": "Paiement récurrent",
"Automatic": "Automatique",
"Manual": "Manuelle",
"Acquirer Reference": "Référence acquéreur",
"Newest first (Descending)": "Plus récent en premier (Descendant)",
"Oldest first (Ascending)": "Le plus ancien en premier (Ascendant)",
"New Customer": "Nouveau client",
"New Order": "Nouvelle commande",
"New Settlement": "Nouveau règlement",
"New Invoice": "Nouvelle facture",
"New Payment": "Nouveau paiement",
"New Refund": "Nouveau remboursement",
"New Payment Chargeback": "Nouveau rejet de débit de paiement",
"Fires when a new customer is created in Mollie": "Tire quand un nouveau client est créé dans Mollie",
"Fires when a new order is created in Mollie": "Tire quand une nouvelle commande est créée dans Mollie",
"Fires upon a new settlement event (e.g. payout)": "Tire lors d'un nouvel événement de colonisation (par exemple paiement par exemple)",
"Fires when a new invoice is generated": "Déclenche quand une nouvelle facture est générée",
"Fires when a new payment is created/received": "Tire quand un nouveau paiement est créé/reçu",
"Fires when a payment refund is created": "Se déclenche lorsqu'un remboursement de paiement est créé",
"Fires upon a payment chargeback event": "Se déclenche lors d'un événement de rejet de débit de paiement",
"Payment ID": "ID de paiement",
"The payment to monitor for refunds": "Le paiement à surveiller pour les remboursements",
"The payment to monitor for chargebacks": "Le paiement à surveiller pour les débits de débit"
}

View File

@@ -0,0 +1,265 @@
{
"Automate Mollie payments, orders, refunds, customers, and invoices. Triggers on payment events and statuses.": "Mollieの支払い、注文、払い戻し、顧客、請求書を自動化します。支払いイベントとステータスをトリガーします。",
"Enter your Mollie API key (starts with live_ or test_)": "Mollie APIキーを入力してくださいlive_またはtest_で始まります",
"Create Order": "注文を作成",
"Create Payment Link": "支払いリンクを作成",
"Create Payment": "支払いを作成",
"Create Customer": "顧客を作成",
"Create Payment Refund": "支払い払い戻しを作成",
"Search Order": "検索順序",
"Search Payment": "支払いを検索",
"Search Customer": "顧客を検索",
"⚠️ We no longer recommend using the Orders API. Please refer to the Payments API instead.\n\nCreate a new order in Mollie": "⚠️ Orders API の使用はお勧めしません。代わりに支払いAPI を参照してください。\n\nMollieで新しい注文を作成します。",
"Generate a new payment link targeting a customer, product, or specific amount": "顧客、商品、または特定の金額を対象とした新しい支払いリンクを生成する",
"Creates a new payment in Mollie": "Mollieで新しい支払いを作成します",
"Creates a new customer in Mollie": "Mollieで新規顧客を作成",
"Creates refund for payment": "支払いの払い戻しを作成する",
"⚠️ We no longer recommend using the Orders API. Please refer to the Payments API instead.\n\nSearches for orders in Mollie": "⚠️ Orders API の使用はお勧めしません。代わりに支払いAPI を参照してください。\n\nMollieの注文検索",
"Retrieve all payments created with the current website profile": "現在のウェブサイトプロフィールで作成されたすべての支払いを取得します",
"Retrieve a list of all customers": "すべての顧客のリストを取得",
"Order Number": "注文番号",
"Currency": "通貨",
"Total Amount": "合計金額",
"Order Lines": "注文行数",
"Billing Title": "請求先タイトル",
"Billing Given Name": "請求者の名前",
"Billing Family Name": "請求先のファミリー 名",
"Billing Organization Name": "請求先組織名",
"Billing Street and Number": "請求先住所と電話番号",
"Billing Street Additional": "請求先住所の追加",
"Billing Postal Code": "郵便番号(請求先)",
"Billing Email": "請求先メールアドレス",
"Billing Phone": "請求先電話番号",
"Billing City": "市区町村名",
"Billing Region": "請求地域",
"Billing Country": "請求先の国",
"Include Shipping Address": "配送先住所を含める",
"Shipping Title": "配送タイトル",
"Shipping Given Name": "配送の指定名",
"Shipping Family Name": "配送ファミリー名",
"Shipping Organization Name": "配送先組織名",
"Shipping Street and Number": "配送先住所と電話番号",
"Shipping Street Additional": "配送先住所追加",
"Shipping Postal Code": "配送先郵便番号",
"Shipping Email": "配送先メールアドレス",
"Shipping Phone": "配送先電話番号",
"Shipping City": "配送先住所",
"Shipping Region": "配送地域",
"Shipping Country": "配送先国",
"Locale": "ロケール",
"Redirect URL": "リダイレクトURL",
"Cancel URL": "キャンセル URL",
"Webhook URL": "Webhook URL",
"Payment Method": "支払い方法",
"Shopper Country Must Match Billing Country": "買い物客の国は請求先の国と一致しなければなりません",
"Expires At": "有効期限",
"Consumer Date of Birth": "生年月日。",
"Test Mode": "テストモード",
"Description": "Description",
"Include Fixed Amount": "固定金額を含める",
"Amount": "金額",
"Include Minimum Amount": "最小金額を含める",
"Minimum Amount Currency": "最小金額の通貨",
"Minimum Amount": "最小金額",
"Include Order Lines": "注文行を含める",
"Include Billing Address": "請求先住所を含める",
"Billing Organization": "請求組織",
"Shipping Organization": "配送組織",
"Reusable": "再利用可能",
"Allowed Payment Methods": "許可された支払い方法",
"Sequence Type": "シーケンスタイプ",
"Customer ID": "顧客 ID",
"Restrict Payment Methods to Country": "支払い方法を国に制限する",
"Mandate ID": "Mandate ID",
"Capture Mode": "キャプチャモード",
"Capture Delay": "キャプチャ遅延",
"Name": "Name",
"Email": "Eメールアドレス",
"Metadata": "メタデータ",
"Payment": "支払い",
"Refund Amount": "払い戻し額",
"Include External Reference": "外部参照を含める",
"External Reference Type": "外部参照タイプ",
"External Reference ID": "外部参照ID",
"Reverse Routing": "逆ルーティング",
"Include Routing Reversals": "ルーティングの破棄を含める",
"Routing Reversals": "ルーティング破棄",
"From Order ID": "注文IDから",
"Limit": "制限",
"Sort Direction": "並べ替え方向",
"Profile ID": "プロファイルID",
"From Payment ID": "支払いIDから",
"From Customer ID": "顧客IDから",
"The order number for this order. We recommend each order number to be unique.": "この注文の注文番号。各注文番号は一意であることをお勧めします。",
"A three-character ISO 4217 currency code (e.g. EUR, USD)": "ISO 4217の3文字通貨コード (EUR、USDなど)",
"The total amount to charge (e.g. \"10.00\")": "請求する合計金額(例:\"10.00\")",
"The order lines for the order": "注文の注文行",
"The title of the person (e.g. Mr., Mrs.)": "人(例:Mr.)のタイトル。",
"The given name (first name) of the person": "本人の氏名(名)",
"The family name (surname) of the person": "人物の姓(姓)",
"The name of the organization": "組織名",
"A street and street number": "通りと通り",
"Any additional addressing details": "追加のアドレスの詳細",
"A postal code": "郵便番号",
"Email address": "メールアドレス",
"Phone number in E.164 format": "E.164形式の電話番号です",
"City name": "市区町村名",
"Region or state": "地域または状態",
"A country code in ISO 3166-1 alpha-2 format": "ISO 3166-1 alpha-2 形式の国コード",
"Whether to include a separate shipping address": "別の配送先住所を含めるかどうか",
"The language to be used in the hosted payment pages": "ホストされている支払いページで使用する言語",
"The URL your customer will be redirected to after the payment process": "お客様のURLは支払い処理後にリダイレクトされます。",
"The URL your customer will be redirected to when they cancel the payment": "顧客が支払いをキャンセルしたときにリダイレクトされるURL",
"The webhook URL where order status updates will be sent": "注文ステータスが更新されるWebhookのURLです",
"Specific payment method to use (optional)": "特定の支払い方法(オプション)",
"Restrict payment methods to those from the billing country only": "支払い方法を請求国のみに制限する",
"The date the order should expire in YYYY-MM-DD format": "注文がYYYY-MM-DD形式で期限切れになる日",
"The date of birth of the consumer in YYYY-MM-DD format": "YYYY-MM-DD形式の消費者誕生日",
"Whether to create the order in test mode": "テストモードで順序を作成するかどうか",
"A short description of the payment link (max 255 characters)": "支払いリンクの簡単な説明 (最大 255 文字)",
"Whether to include a fixed amount or let customer enter amount": "固定金額を含めるか、顧客に金額を入力させるか",
"The amount to charge (e.g. \"10.00\")": "請求金額(例:\"10.00\")",
"Whether to set a minimum amount (only when no fixed amount)": "最小金額を設定するかどうか (一定額がない場合のみ)",
"Currency for minimum amount": "最小金額の通貨",
"The minimum amount (e.g. \"5.00\")": "最小金額(例:\"5.00\")",
"URL to redirect customer after payment completion": "支払い完了後に顧客にリダイレクトするURL",
"URL for payment status updates": "支払状態の更新URL",
"Whether to include detailed order line items": "注文明細を含めるかどうか",
"Order line items (required for certain payment methods)": "注文明細書(特定の支払い方法に必要)",
"Whether to include billing address details": "請求先住所の詳細を含めるかどうか",
"Title (e.g. Mr., Mrs.)": "タイトル (例:Mr.)",
"First name": "名",
"Last name": "姓",
"Organization name": "組織名",
"Street address with number": "番号のある番地",
"Additional address details": "追加住所の詳細",
"Postal code": "郵便番号",
"Phone in E.164 format": "電話番号はE.164形式です",
"State or region": "都道府県または地域",
"ISO 3166-1 alpha-2 country code": "ISO 3166-1 alpha-2 国コード",
"Whether to include shipping address details": "配送先住所の詳細を含めるかどうか",
"Allow multiple payments using the same link": "同じリンクを使用して複数の支払いを許可する",
"Expiry date in ISO 8601 format (e.g. 2024-12-31T23:59:59Z)": "Expiry date in ISO 8601 format (e.g. 2024-12-31T23:59:59Z)",
"Payment methods allowed for this link (empty = all enabled methods)": "このリンクで許可された支払い方法(空の場合はすべて有効)",
"Type of payment sequence": "支払い方法の種類",
"Customer ID (only relevant for first sequence type)": "顧客 ID (最初のシーケンスタイプに関連するもののみ)",
"Whether to create the payment link in test mode": "テストモードで支払いリンクを作成する",
"Description of the payment (max 255 characters)": "支払いの説明 (最大 255 文字)",
"URL to redirect customer when they cancel payment": "支払いをキャンセルしたときに顧客にリダイレクトするURL",
"ISO 3166-1 alpha-2 country code to restrict payment methods": "ISO 3166-1 alpha-2 国コード",
"Customer ID (required for recurring payments)": "顧客ID定期支払いには必須",
"Mandate ID (for recurring payments)": "ID を必須にします(定期支払いの場合)",
"When to capture the payment": "支払いを取得する時",
"Delay before automatic capture (e.g. \"8 hours\", \"2 days\")": "自動キャプチャまでの遅延 (例: \"8時間\", \"2日\")",
"Whether to create the payment in test mode": "テストモードで支払いを作成するかどうか",
"The full name of the customer": "顧客のフルネーム",
"The email address of the customer": "顧客のメールアドレス",
"Additional data to save alongside the customer (JSON string)": "顧客と一緒に保存する追加データ (JSON 文字列)",
"Whether to create the customer in test mode": "テストモードで顧客を作成するか",
"Select the payment to refund": "返金する支払いを選択してください",
"The description of the refund (max 255 characters)": "返金の説明 (最大 255 文字)",
"The amount to refund (e.g. \"10.00\")": "返金額(例:\"10.00\")",
"Additional data to save alongside the refund (JSON string)": "返金とともに保存する追加データ (JSON 文字列)",
"Whether to include external reference details": "外部参照の詳細を含めるかどうか",
"Type of external reference": "外部参照のタイプ",
"Unique reference from the payment provider": "支払いプロバイダからのユニークな参照",
"Pull back funds routed to connected merchants (full refund only)": "接続されたマーチャントにルーティングされた資金を引き戻します(全額返金のみ)",
"Specify detailed routing reversals for partial refunds": "部分払い戻しの詳細なルーティングリバーサルを指定してください",
"Detailed routing reversals for connected merchants": "接続された商人のための詳細なルーティングの反転",
"Whether to create the refund in test mode": "テストモードで払い戻しを作成するか",
"Start the result set from this order ID onwards": "この注文IDから以降の結果セットを開始",
"Maximum number of orders to return (1-250, default: 50)": "返品注文の最大数 (1-250, デフォルト: 50)",
"Sort orders by creation date": "作成日で並べ替え",
"Profile ID to retrieve orders for (optional)": "注文を取得するためのプロファイル ID (オプション)",
"Whether to search in test mode": "テストモードで検索するかどうか",
"Start the result set from this payment ID onwards": "以降の支払いIDから設定された結果を開始する",
"Maximum number of payments to return (1-250, default: 50)": "返品する支払いの最大数1-250、デフォルト50",
"Sort payments by creation date": "作成日で支払いをソート",
"Profile ID to retrieve payments for (optional)": "支払いを取得するためのプロファイルID (オプション)",
"Start the result set from this customer ID onwards": "顧客ID以降の結果セットを開始する",
"Maximum number of customers to return (1-250, default: 50)": "返品する顧客の最大数1-250、デフォルト50",
"Sort customers by creation date": "作成日で顧客をソート",
"English (US)": "英語 (米国)",
"English (GB)": "英語 (GB)",
"Dutch (NL)": "オランダ語NL",
"Dutch (BE)": "オランダ語BE",
"German (DE)": "ドイツ語 (DE)",
"German (AT)": "ドイツ語 (AT)",
"German (CH)": "ドイツ語 (CH)",
"French (FR)": "フランス語 (FR)",
"French (BE)": "フランス語 (BE)",
"Spanish (ES)": "スペイン語 (ES)",
"Catalan (ES)": "カタロニア語(ES)",
"Portuguese (PT)": "ポルトガル語 (PT)",
"Italian (IT)": "イタリア語(IT)",
"Norwegian (NO)": "ノルウェー語 (NO)",
"Swedish (SE)": "スウェーデン語 (SE)",
"Finnish (FI)": "フィンランド語 (FI)",
"Danish (DK)": "デンマーク語 (DK)",
"Icelandic (IS)": "アイスランド語 (IS)",
"Hungarian (HU)": "ハンガリー語 (HU)",
"Polish (PL)": "ポーランド語PL",
"Latvian (LV)": "ラトビア語 (LV)",
"Lithuanian (LT)": "リトアニア語 (TT)",
"Apple Pay": "Apple Pay",
"Bancomat Pay": "Bancomatの支払い",
"Bancontact": "接触禁止",
"Bank Transfer": "銀行送金",
"Belfius": "Belfius",
"Billie": "ビリー語",
"Credit Card": "クレジットカード",
"Direct Debit": "ダイレクトデビット(自動引落)",
"EPS": "EPS",
"Gift Card": "Gift Card",
"iDEAL": "iDEAL",
"in3": "in3",
"KBC": "KBC",
"Klarna": "Klarna",
"Klarna Pay Later": "Klarna Pay Later",
"Klarna Pay Now": "Klarna Pay Now",
"Klarna Slice It": "Klarna Slice It",
"MyBank": "MyBank",
"PayPal": "PayPal",
"Paysafecard": "Paysafecard",
"Przelewy24": "Przelewy24",
"Riverty": "Riverty",
"Satispay": "Satispay",
"Trustly": "Trustly",
"Twint": "Twint",
"Voucher": "クーポン",
"One-off Payment": "一回限りの支払い",
"First Payment (establishes mandate)": "最初の支払い(必須項目を確立)",
"Alma": "Alma",
"BACS": "BACS",
"Bizum": "Bizum",
"BLIK": "BLIK",
"MB Way": "MB Way",
"Multibanco": "Multibanco",
"Pay by Bank": "銀行で支払う",
"Payconiq": "Payconiq",
"Point of Sale": "Pt of Sales",
"Swish": "Swish",
"Recurring Payment": "定期的な支払い",
"Automatic": "自動",
"Manual": "マニュアル",
"Acquirer Reference": "取得者の参照",
"Newest first (Descending)": "最も新しい順 (降順)",
"Oldest first (Ascending)": "古い順 (昇順)",
"New Customer": "新規顧客",
"New Order": "新規注文",
"New Settlement": "新規受領日",
"New Invoice": "新しい請求書",
"New Payment": "新しい支払い",
"New Refund": "新しい返金",
"New Payment Chargeback": "新しい支払いチャージバック",
"Fires when a new customer is created in Mollie": "Mollieで新規顧客が作成されたときに発火する",
"Fires when a new order is created in Mollie": "Mollieで新しい注文が作成されたときに発生します。",
"Fires upon a new settlement event (e.g. payout)": "新しい決済イベント(例:支払い)が発生しました",
"Fires when a new invoice is generated": "新しい請求書が生成されたときに発行されます",
"Fires when a new payment is created/received": "新しい支払いが作成/受信されたときに発生します。",
"Fires when a payment refund is created": "支払いの払い戻しが作成されたときに発行されます。",
"Fires upon a payment chargeback event": "支払いチャージバックイベントが発生します",
"Payment ID": "支払いID",
"The payment to monitor for refunds": "The payment to monitor for refunds",
"The payment to monitor for chargebacks": "チャージバックを監視するための支払い"
}

View File

@@ -0,0 +1,265 @@
{
"Automate Mollie payments, orders, refunds, customers, and invoices. Triggers on payment events and statuses.": "Automatiseren Mollie betalingen, bestellingen, terugbetalingen, klanten en facturen. Activeert betalingsgebeurtenissen en statussen.",
"Enter your Mollie API key (starts with live_ or test_)": "Voer uw Mollie API-sleutel in (begint met live_ of test_)",
"Create Order": "Bestelling aanmaken",
"Create Payment Link": "Maak Payment Link",
"Create Payment": "Betaling aanmaken",
"Create Customer": "Klant aanmaken",
"Create Payment Refund": "Betalingsterugbetaling aanmaken",
"Search Order": "Zoek bestelling",
"Search Payment": "Betaling zoeken",
"Search Customer": "Klant zoeken",
"⚠️ We no longer recommend using the Orders API. Please refer to the Payments API instead.\n\nCreate a new order in Mollie": "⚠️ We no longer recommend using the Orders API. Please refer to the Payments API instead.\n\nCreate a new order in Mollie",
"Generate a new payment link targeting a customer, product, or specific amount": "Genereer een nieuwe betalingslink gericht op een klant, product of specifiek bedrag",
"Creates a new payment in Mollie": "Maakt een nieuwe betaling in Mollie",
"Creates a new customer in Mollie": "Maakt een nieuwe klant in Mollie",
"Creates refund for payment": "Maakt restitutie aan voor betaling",
"⚠️ We no longer recommend using the Orders API. Please refer to the Payments API instead.\n\nSearches for orders in Mollie": "⚠️ We no longer recommend using the Orders API. Please refer to the Payments API instead.\n\nSearches for orders in Mollie",
"Retrieve all payments created with the current website profile": "Haal alle gemaakte betalingen op met het huidige website profiel",
"Retrieve a list of all customers": "Haal een lijst op van alle klanten",
"Order Number": "Bestelnummer",
"Currency": "valuta",
"Total Amount": "Totaal bedrag",
"Order Lines": "Lijnen bestellen",
"Billing Title": "Titel voor facturering",
"Billing Given Name": "Facturering opgegeven naam",
"Billing Family Name": "Factuur Familie Naam",
"Billing Organization Name": "Facturering organisatie naam",
"Billing Street and Number": "Factuuradres en nummer",
"Billing Street Additional": "Extra factuurstraat",
"Billing Postal Code": "Factuur postcode",
"Billing Email": "E-mailadres voor facturering",
"Billing Phone": "Telefoon factuur",
"Billing City": "Facturering stad",
"Billing Region": "Factuur Regio",
"Billing Country": "Facturatie land",
"Include Shipping Address": "Verzendadres opnemen",
"Shipping Title": "Verzend titel",
"Shipping Given Name": "Verzending opgegeven naam",
"Shipping Family Name": "Familienaam van verzending",
"Shipping Organization Name": "Naam verzendorganisatie",
"Shipping Street and Number": "Verzend straat en Nummer",
"Shipping Street Additional": "Extra verzendstraat",
"Shipping Postal Code": "Afleveradres Postcode",
"Shipping Email": "E-mail verzendadres",
"Shipping Phone": "Telefoon verzendadres",
"Shipping City": "Verzend stad",
"Shipping Region": "Regio afleveradres",
"Shipping Country": "Afleveradres Land",
"Locale": "Lokalisatie",
"Redirect URL": "Omleidings URL",
"Cancel URL": "Annuleer URL",
"Webhook URL": "Webhook URL",
"Payment Method": "Betaalmethode",
"Shopper Country Must Match Billing Country": "Shopper Land moet overeenkomen met het land Facturatie",
"Expires At": "Verloopt op",
"Consumer Date of Birth": "Consumer Date of Birth",
"Test Mode": "Test modus",
"Description": "Beschrijving",
"Include Fixed Amount": "Vast bedrag opnemen",
"Amount": "Hoeveelheid",
"Include Minimum Amount": "Inclusief minimumbedrag",
"Minimum Amount Currency": "Minimum bedrag valuta",
"Minimum Amount": "Minimale hoeveelheid",
"Include Order Lines": "Orderregels opnemen",
"Include Billing Address": "Factuuradres opnemen",
"Billing Organization": "Facturering organisatie",
"Shipping Organization": "Verzend organisatie",
"Reusable": "Herbruikbaar",
"Allowed Payment Methods": "Toegestane betaalmethodes",
"Sequence Type": "Sequence Type",
"Customer ID": "Klant ID",
"Restrict Payment Methods to Country": "Beperk betaalmethodes tot het land",
"Mandate ID": "Mandate ID",
"Capture Mode": "Capture Mode",
"Capture Delay": "Vertraging vastleggen",
"Name": "Naam",
"Email": "E-mail",
"Metadata": "Metagegevens",
"Payment": "Betaling",
"Refund Amount": "Restitutie bedrag",
"Include External Reference": "Externe referentie opnemen",
"External Reference Type": "Type externe referentie",
"External Reference ID": "Externe referentie ID",
"Reverse Routing": "Omgekeerde routering",
"Include Routing Reversals": "Routering omkeren opnemen",
"Routing Reversals": "Routering omkering",
"From Order ID": "Van order-ID",
"Limit": "Limiet",
"Sort Direction": "Sorteer richting",
"Profile ID": "Profiel ID",
"From Payment ID": "Van betaling ID",
"From Customer ID": "Van klant-ID",
"The order number for this order. We recommend each order number to be unique.": "Het bestelnummer voor deze bestelling. Wij raden elk bestelnummer aan om uniek te zijn.",
"A three-character ISO 4217 currency code (e.g. EUR, USD)": "Een drie-teken ISO 4217 valuta code (bijv. EUR, USD)",
"The total amount to charge (e.g. \"10.00\")": "De in rekening te brengen totaalbedrag (bijv. \"10.00\")",
"The order lines for the order": "De bestelregels voor de bestelling",
"The title of the person (e.g. Mr., Mrs.)": "De titel van de persoon (bijv. Mr., Mrs.)",
"The given name (first name) of the person": "De opgegeven naam (voornaam) van de persoon",
"The family name (surname) of the person": "De familienaam (achternaam) van de persoon",
"The name of the organization": "De naam van de organisatie",
"A street and street number": "Een straat en straat nummer",
"Any additional addressing details": "Eventuele aanvullende adresgegevens",
"A postal code": "Een postcode",
"Email address": "E-mail adres",
"Phone number in E.164 format": "Telefoonnummer in E.164-formaat",
"City name": "Plaats naam",
"Region or state": "Regio of staat",
"A country code in ISO 3166-1 alpha-2 format": "Een landcode in ISO 3166-1 alpha-2 formaat",
"Whether to include a separate shipping address": "Of een apart verzendadres moet worden toegevoegd",
"The language to be used in the hosted payment pages": "De taal die gebruikt moet worden in de gehoste betaalpagina's",
"The URL your customer will be redirected to after the payment process": "De URL waarnaar uw klant na het betalingsproces wordt doorverwezen",
"The URL your customer will be redirected to when they cancel the payment": "De URL waarnaar uw klant wordt doorgestuurd wanneer ze de betaling annuleren",
"The webhook URL where order status updates will be sent": "De webhook URL waar statusupdates van de bestelling worden verzonden",
"Specific payment method to use (optional)": "Specifieke betaalmethode om te gebruiken (optioneel)",
"Restrict payment methods to those from the billing country only": "Beperk de betalingsmethoden tot alleen die van het facturatieland",
"The date the order should expire in YYYY-MM-DD format": "De datum waarop de bestelling moet verlopen in het formaat YYYY-MM-DD",
"The date of birth of the consumer in YYYY-MM-DD format": "De geboortedatum van de consument in formaat YYYY-MM-DD",
"Whether to create the order in test mode": "Of de bestelling moet worden aangemaakt in testmodus",
"A short description of the payment link (max 255 characters)": "Een korte beschrijving van de betalingslink (max 255 tekens)",
"Whether to include a fixed amount or let customer enter amount": "Geef of een vast bedrag op of laat de klant het bedrag invoeren",
"The amount to charge (e.g. \"10.00\")": "De te berekenen hoeveelheid (bijv. \"10.00\")",
"Whether to set a minimum amount (only when no fixed amount)": "Of een minimum bedrag moet worden ingesteld (alleen wanneer geen vast bedrag is vastgesteld)",
"Currency for minimum amount": "Valuta voor het minimum bedrag",
"The minimum amount (e.g. \"5.00\")": "Het minimum bedrag (bijv. \"5.00\")",
"URL to redirect customer after payment completion": "URL om de klant na voltooiing van de betaling te doorverwijzen",
"URL for payment status updates": "URL voor betalingsstatus updates",
"Whether to include detailed order line items": "Of gedetailleerde producten van de bestellingslijn moeten worden opgenomen",
"Order line items (required for certain payment methods)": "Items in de bestellijn (vereist voor bepaalde betaalmethoden)",
"Whether to include billing address details": "Of u factuuradres gegevens wilt toevoegen",
"Title (e.g. Mr., Mrs.)": "Titel (bijv. Mr., Mrs.)",
"First name": "Voornaam is vereist.",
"Last name": "Achternaam is vereist.",
"Organization name": "Naam organisatie",
"Street address with number": "Adres met nummer",
"Additional address details": "Extra adresgegevens",
"Postal code": "Post Code",
"Phone in E.164 format": "Telefoon in E.164-formaat",
"State or region": "Staat of regio",
"ISO 3166-1 alpha-2 country code": "ISO 3166-1 alpha-2 landcode",
"Whether to include shipping address details": "Of verzendadres details moeten worden toegevoegd",
"Allow multiple payments using the same link": "Meerdere betalingen toestaan via dezelfde link",
"Expiry date in ISO 8601 format (e.g. 2024-12-31T23:59:59Z)": "Expiry date in ISO 8601 format (e.g. 2024-12-31T23:59:59Z)",
"Payment methods allowed for this link (empty = all enabled methods)": "Betaalmethoden toegestaan voor deze link (leeg = alle ingeschakelde methoden)",
"Type of payment sequence": "Soort betalingsvolgorde",
"Customer ID (only relevant for first sequence type)": "Klant-ID (alleen relevant voor de eerste reeks type)",
"Whether to create the payment link in test mode": "Of de betaallink in testmodus moet worden aangemaakt",
"Description of the payment (max 255 characters)": "Beschrijving van de betaling (max 255 karakters)",
"URL to redirect customer when they cancel payment": "URL om klant om te leiden wanneer deze betaling annuleert",
"ISO 3166-1 alpha-2 country code to restrict payment methods": "ISO 3166-1 alpha-2 landcode om betaalmethoden te beperken",
"Customer ID (required for recurring payments)": "Klantnummer (vereist voor herhalende betalingen)",
"Mandate ID (for recurring payments)": "Mandate ID (voor terugkerende betalingen)",
"When to capture the payment": "Wanneer de betaling moet worden vastgelegd",
"Delay before automatic capture (e.g. \"8 hours\", \"2 days\")": "Vertraging voor automatische opname (bijv. \"8 uur\", \"2 dagen\")",
"Whether to create the payment in test mode": "Of de betaling moet worden aangemaakt in testmodus",
"The full name of the customer": "De volledige naam van de klant",
"The email address of the customer": "Het e-mailadres van de klant",
"Additional data to save alongside the customer (JSON string)": "Extra gegevens om naast de klant op te slaan (JSON string)",
"Whether to create the customer in test mode": "Maak een klant aan in testmodus",
"Select the payment to refund": "Selecteer de betaling voor terugbetaling",
"The description of the refund (max 255 characters)": "De beschrijving van de restitutie (max 255 karakters)",
"The amount to refund (e.g. \"10.00\")": "De terugbetalingshoeveelheid (bijv. \"10.00\")",
"Additional data to save alongside the refund (JSON string)": "Extra gegevens om op te slaan naast de restitutie (JSON string)",
"Whether to include external reference details": "Of u externe referentie-details wilt toevoegen",
"Type of external reference": "Soort externe referentie",
"Unique reference from the payment provider": "Unieke referentie van de betalingsprovider",
"Pull back funds routed to connected merchants (full refund only)": "Trek fondsen terug naar verbonden handelaren (alleen volledige terugbetaling)",
"Specify detailed routing reversals for partial refunds": "Geef gedetailleerde omschakelingen van routing voor gedeeltelijke terugbetalingen",
"Detailed routing reversals for connected merchants": "Gedetailleerde omkeringen voor verbonden winkeliers",
"Whether to create the refund in test mode": "Maak de restitutie aan in de testmodus",
"Start the result set from this order ID onwards": "Start het resultaat vanaf deze order-ID aan",
"Maximum number of orders to return (1-250, default: 50)": "Maximum aantal te retourneren bestellingen (1-250, standaard: 50)",
"Sort orders by creation date": "Sorteer bestellingen op aanmaakdatum",
"Profile ID to retrieve orders for (optional)": "Profiel ID om orders op te halen voor (optioneel)",
"Whether to search in test mode": "In testmodus zoeken",
"Start the result set from this payment ID onwards": "Start het resultaat dat vanaf deze betalings-ID is ingesteld",
"Maximum number of payments to return (1-250, default: 50)": "Maximum aantal te retourneren betalingen (1-250, standaard: 50)",
"Sort payments by creation date": "Sorteer betalingen op aanmaakdatum",
"Profile ID to retrieve payments for (optional)": "Profiel ID om betalingen op te halen voor (optioneel)",
"Start the result set from this customer ID onwards": "Start het resultaat dat vanaf deze klant-ID is ingesteld",
"Maximum number of customers to return (1-250, default: 50)": "Maximum aantal te retourneren klanten (1-250, standaard: 50)",
"Sort customers by creation date": "Sorteer klanten op aanmaakdatum",
"English (US)": "Engels (VS)",
"English (GB)": "Nederlands (GB)",
"Dutch (NL)": "Nederlands (NL)",
"Dutch (BE)": "Nederlands (BE)",
"German (DE)": "Duits (DE)",
"German (AT)": "Duits (AT)",
"German (CH)": "Duits (CH)",
"French (FR)": "Frans (FR)",
"French (BE)": "Frans (BE)",
"Spanish (ES)": "Spaanse (ES)",
"Catalan (ES)": "Catalaans (ES)",
"Portuguese (PT)": "Portugees (PT)",
"Italian (IT)": "Italiaans (IT)",
"Norwegian (NO)": "Noors (NO)",
"Swedish (SE)": "Zweeds (SE)",
"Finnish (FI)": "Fins (FI)",
"Danish (DK)": "Deens (DK)",
"Icelandic (IS)": "IJslands (IS)",
"Hungarian (HU)": "Hongaars (HU)",
"Polish (PL)": "Pools (PL)",
"Latvian (LV)": "(LV) Lets (LV)",
"Lithuanian (LT)": "Litouwse (LT)",
"Apple Pay": "Apple betalen",
"Bancomat Pay": "Bancomat betalen",
"Bancontact": "Bancontact",
"Bank Transfer": "Bank overschrijving",
"Belfius": "Belfius",
"Billie": "Billiaans",
"Credit Card": "Creditcard",
"Direct Debit": "Automatische incasso",
"EPS": "EPS",
"Gift Card": "Cadeau kaart",
"iDEAL": "iDEAAL",
"in3": "in3",
"KBC": "KBC",
"Klarna": "Klarna",
"Klarna Pay Later": "Klarna betalen Later",
"Klarna Pay Now": "Klarna betalen",
"Klarna Slice It": "Klarna Slice Het",
"MyBank": "MyBank",
"PayPal": "Paypal",
"Paysafecard": "Paysafecard",
"Przelewy24": "Przelewy24",
"Riverty": "Rivierhoek",
"Satispay": "Satispay",
"Trustly": "Vertrouwelijk",
"Twint": "Twint",
"Voucher": "Tegoedbon",
"One-off Payment": "Eenmalige betaling",
"First Payment (establishes mandate)": "Eerste betaling (stelt mandaat)",
"Alma": "Alma",
"BACS": "BACS",
"Bizum": "Bizum",
"BLIK": "BLIK",
"MB Way": "MB weg",
"Multibanco": "Multibanco",
"Pay by Bank": "Betaal via Bank",
"Payconiq": "Payconiq",
"Point of Sale": "Punt van verkoop",
"Swish": "Zegen",
"Recurring Payment": "Terugkerende betaling",
"Automatic": "Automatisch",
"Manual": "Handleiding",
"Acquirer Reference": "Referentie van acquirer",
"Newest first (Descending)": "Nieuwste eerst (Aflopend)",
"Oldest first (Ascending)": "Oudste eerst (scend)",
"New Customer": "Nieuwe klant",
"New Order": "Nieuwe bestelling",
"New Settlement": "Nieuwe afwikkeling",
"New Invoice": "Nieuwe factuur",
"New Payment": "Nieuwe betaling",
"New Refund": "Nieuwe terugbetaling",
"New Payment Chargeback": "Nieuwe betaling terugvordering",
"Fires when a new customer is created in Mollie": "Vuurt wanneer een nieuwe klant wordt gemaakt in Mollie",
"Fires when a new order is created in Mollie": "Vuurt wanneer een nieuwe order wordt gemaakt in Mollie",
"Fires upon a new settlement event (e.g. payout)": "Vuurt op een nieuwe afwikkelingsgebeurtenis (bijvoorbeeld uitbetaling)",
"Fires when a new invoice is generated": "Vuurt wanneer een nieuwe factuur wordt gegenereerd",
"Fires when a new payment is created/received": "Vuurt wanneer een nieuwe betaling is aangemaakt/ontvangen",
"Fires when a payment refund is created": "Vuurt wanneer een betalingsrestitutie is aangemaakt",
"Fires upon a payment chargeback event": "Vuurt bij een betalings terugboeking gebeurtenis",
"Payment ID": "Betaling ID",
"The payment to monitor for refunds": "De betaling om te controleren voor restituties",
"The payment to monitor for chargebacks": "De betaling voor het monitoren van terugboekingen"
}

View File

@@ -0,0 +1,265 @@
{
"Automate Mollie payments, orders, refunds, customers, and invoices. Triggers on payment events and statuses.": "Automatize os pagamentos, pedidos, reembolsos, clientes e faturas. Disparadores em eventos de pagamento e status.",
"Enter your Mollie API key (starts with live_ or test_)": "Digite sua chave de API Mollie (começa com live_ ou teste_)",
"Create Order": "Criar pedido",
"Create Payment Link": "Criar Link de Pagamento",
"Create Payment": "Criar Pagamento",
"Create Customer": "Criar Cliente",
"Create Payment Refund": "Criar reembolso de pagamento",
"Search Order": "Pesquisar Pedido",
"Search Payment": "Pesquisar Pagamento",
"Search Customer": "Pesquisar Cliente",
"⚠️ We no longer recommend using the Orders API. Please refer to the Payments API instead.\n\nCreate a new order in Mollie": "⚠️ We no longer recommend using the Orders API. Please refer to the Payments API instead.\n\nCreate a new order in Mollie",
"Generate a new payment link targeting a customer, product, or specific amount": "Gerar um novo link de pagamento direcionado a um cliente, produto ou quantidade específica",
"Creates a new payment in Mollie": "Cria um novo pagamento em Mollie",
"Creates a new customer in Mollie": "Cria um novo cliente no Mollie",
"Creates refund for payment": "Cria reembolso para pagamento",
"⚠️ We no longer recommend using the Orders API. Please refer to the Payments API instead.\n\nSearches for orders in Mollie": "⚠️ We no longer recommend using the Orders API. Please refer to the Payments API instead.\n\nSearches for orders in Mollie",
"Retrieve all payments created with the current website profile": "Recuperar todos os pagamentos criados com o perfil do site atual",
"Retrieve a list of all customers": "Recuperar uma lista de todos os clientes",
"Order Number": "Número do pedido",
"Currency": "moeda",
"Total Amount": "Montante Total",
"Order Lines": "Linhas do pedido",
"Billing Title": "Título de Cobrança",
"Billing Given Name": "Nome de Cobrança",
"Billing Family Name": "Família de faturamento",
"Billing Organization Name": "Nome da Organização Faturamento",
"Billing Street and Number": "Faturamento - Rua e Número",
"Billing Street Additional": "Endereço de Faturamento Adicional",
"Billing Postal Code": "Código de faturamento",
"Billing Email": "E-mail de faturamento",
"Billing Phone": "Telefone para faturamento",
"Billing City": "Cidade de Cobrança",
"Billing Region": "Região de Cobrança",
"Billing Country": "Billing País",
"Include Shipping Address": "Incluir endereço de envio",
"Shipping Title": "Título de envio",
"Shipping Given Name": "Nome Dado de Entrega",
"Shipping Family Name": "Nome da Família Entrega",
"Shipping Organization Name": "Nome da Organização de Envio",
"Shipping Street and Number": "Rua e Número de Entrega",
"Shipping Street Additional": "Endereço de Entrega Adicional",
"Shipping Postal Code": "Código da Entrega",
"Shipping Email": "E-mail de entrega",
"Shipping Phone": "Telefone de Entrega",
"Shipping City": "Cidade de Entrega",
"Shipping Region": "Região de Entrega",
"Shipping Country": "O envio País",
"Locale": "Localidade",
"Redirect URL": "URL de redirecionamento",
"Cancel URL": "URL de cancelamento",
"Webhook URL": "URL do webhook",
"Payment Method": "Forma de pagamento",
"Shopper Country Must Match Billing Country": "País do comprador deve combinar o país de faturamento",
"Expires At": "Expira em",
"Consumer Date of Birth": "Data de nascimento do consumidor",
"Test Mode": "Modo de teste",
"Description": "Descrição",
"Include Fixed Amount": "Incluir valor fixo",
"Amount": "Quantidade",
"Include Minimum Amount": "Incluir valor mínimo",
"Minimum Amount Currency": "Moeda Mínima",
"Minimum Amount": "Valor Mínimo",
"Include Order Lines": "Incluir Linhas de Pedidos",
"Include Billing Address": "Incluir endereço de cobrança",
"Billing Organization": "Organização de Cobrança",
"Shipping Organization": "Organização de envio",
"Reusable": "Reutilizável",
"Allowed Payment Methods": "Métodos de pagamento permitidos",
"Sequence Type": "Tipo de Sequência",
"Customer ID": "ID do cliente",
"Restrict Payment Methods to Country": "Restringir métodos de pagamento a país",
"Mandate ID": "Mandate ID",
"Capture Mode": "Modo de Captura",
"Capture Delay": "Atraso de Captura",
"Name": "Nome",
"Email": "e-mail",
"Metadata": "Metadados",
"Payment": "Pagamento",
"Refund Amount": "Montante do reembolso",
"Include External Reference": "Incluir referência externa",
"External Reference Type": "Tipo de referência externa",
"External Reference ID": "Referência externa de ID",
"Reverse Routing": "Roteamento reverso",
"Include Routing Reversals": "Incluir reversos de roteamento",
"Routing Reversals": "Reverter Roteadores",
"From Order ID": "Da ID do pedido",
"Limit": "Limitar",
"Sort Direction": "Ordenar direção",
"Profile ID": "ID do perfil",
"From Payment ID": "De ID de Pagamento",
"From Customer ID": "Da ID do Cliente",
"The order number for this order. We recommend each order number to be unique.": "O número do pedido para este pedido. Recomendamos que cada número de pedido seja único.",
"A three-character ISO 4217 currency code (e.g. EUR, USD)": "Um código de moeda ISO 4217 de três caracteres (por exemplo, EUR, USD)",
"The total amount to charge (e.g. \"10.00\")": "O valor total a cobrar (ex: \"10.00\")",
"The order lines for the order": "As linhas de pedidos para a ordem",
"The title of the person (e.g. Mr., Mrs.)": "O título da pessoa (ex. Mr., Srs.)",
"The given name (first name) of the person": "O nome dado (primeiro nome) da pessoa",
"The family name (surname) of the person": "O nome de família (sobrenome) da pessoa",
"The name of the organization": "O nome da organização",
"A street and street number": "Uma rua e número de rua",
"Any additional addressing details": "Quaisquer detalhes adicionais de endereçamento",
"A postal code": "Um CEP",
"Email address": "Endereço de e-mail",
"Phone number in E.164 format": "Número de telefone no formato E.164",
"City name": "Nome da cidade",
"Region or state": "Região ou estado",
"A country code in ISO 3166-1 alpha-2 format": "Um código de país no formato ISO 3166-1 alpha-2",
"Whether to include a separate shipping address": "Se deve incluir um endereço de envio separado",
"The language to be used in the hosted payment pages": "O idioma a ser usado nas páginas de pagamento hospedadas",
"The URL your customer will be redirected to after the payment process": "A URL para a qual seu cliente será redirecionado após o processo de pagamento",
"The URL your customer will be redirected to when they cancel the payment": "A URL para a qual seu cliente será redirecionado quando cancelar o pagamento",
"The webhook URL where order status updates will be sent": "A URL do webhook onde será enviada a atualização de status da ordem",
"Specific payment method to use (optional)": "Método de pagamento específico para usar (opcional)",
"Restrict payment methods to those from the billing country only": "Restringir métodos de pagamento apenas para aqueles do país de cobrança",
"The date the order should expire in YYYY-MM-DD format": "A data da ordem deve expirar em formato YYYY-MM-DD",
"The date of birth of the consumer in YYYY-MM-DD format": "A data de nascimento do consumidor em formato YYYY-MM-DD",
"Whether to create the order in test mode": "Se deseja criar um pedido no modo de teste",
"A short description of the payment link (max 255 characters)": "Uma breve descrição do link de pagamento (máx. de 255 caracteres)",
"Whether to include a fixed amount or let customer enter amount": "Se deve incluir um valor fixo ou permitir que o cliente insira o valor",
"The amount to charge (e.g. \"10.00\")": "O valor a ser cobrado (ex: \"10.00\")",
"Whether to set a minimum amount (only when no fixed amount)": "Se deve definir um valor mínimo (somente quando nenhum valor fixo)",
"Currency for minimum amount": "Moeda para o valor mínimo",
"The minimum amount (e.g. \"5.00\")": "O valor mínimo (por exemplo, \"5.00\")",
"URL to redirect customer after payment completion": "URL para redirecionar o cliente após a conclusão do pagamento",
"URL for payment status updates": "URL para atualizações de status de pagamento",
"Whether to include detailed order line items": "Inclua itens de linha de pedido detalhado",
"Order line items (required for certain payment methods)": "Itens de linha do pedido (necessário para certos meios de pagamento)",
"Whether to include billing address details": "Se deseja incluir detalhes do endereço de cobrança",
"Title (e.g. Mr., Mrs.)": "Título (ex.: Mr., Mrs.)",
"First name": "Primeiro nome",
"Last name": "Último Nome",
"Organization name": "Nome da organização",
"Street address with number": "Endereço da rua com número",
"Additional address details": "Detalhes de endereço adicional",
"Postal code": "CEP Correspondência",
"Phone in E.164 format": "Telefone no formato E.164",
"State or region": "Estado ou região",
"ISO 3166-1 alpha-2 country code": "Código de país ISO 3166-1 alpha-2",
"Whether to include shipping address details": "Se deseja incluir detalhes do endereço de envio",
"Allow multiple payments using the same link": "Permitir vários pagamentos usando o mesmo link",
"Expiry date in ISO 8601 format (e.g. 2024-12-31T23:59:59Z)": "Expiry date in ISO 8601 format (e.g. 2024-12-31T23:59:59Z)",
"Payment methods allowed for this link (empty = all enabled methods)": "Métodos de pagamento permitidos para este link (vazio = todos os métodos ativados)",
"Type of payment sequence": "Tipo de Sequência de Pagamento",
"Customer ID (only relevant for first sequence type)": "ID do Cliente (somente relevante para o primeiro tipo de sequência)",
"Whether to create the payment link in test mode": "Se deseja criar o link de pagamento no modo de teste",
"Description of the payment (max 255 characters)": "Descrição do pagamento (máx. de 255 caracteres)",
"URL to redirect customer when they cancel payment": "URL para redirecionar o cliente quando cancelar o pagamento",
"ISO 3166-1 alpha-2 country code to restrict payment methods": "Código de país ISO 3166-1 alpha-2 para restringir métodos de pagamento",
"Customer ID (required for recurring payments)": "ID do cliente (necessário para pagamentos recorrentes)",
"Mandate ID (for recurring payments)": "ID mandante (para pagamentos recorrentes)",
"When to capture the payment": "Quando capturar o pagamento",
"Delay before automatic capture (e.g. \"8 hours\", \"2 days\")": "Atraso antes da captura automática (por exemplo, \"8 horas\", \"2 dias\")",
"Whether to create the payment in test mode": "Criar o pagamento no modo de teste",
"The full name of the customer": "O nome completo do cliente",
"The email address of the customer": "O endereço de e-mail do cliente",
"Additional data to save alongside the customer (JSON string)": "Dados adicionais para salvar junto com o cliente (JSON string)",
"Whether to create the customer in test mode": "Se deseja criar o cliente no modo de teste",
"Select the payment to refund": "Selecione o pagamento para reembolso",
"The description of the refund (max 255 characters)": "A descrição do reembolso (máximo de 255 caracteres)",
"The amount to refund (e.g. \"10.00\")": "O montante a reembolsar (ex: \"10.00\")",
"Additional data to save alongside the refund (JSON string)": "Dados adicionais para salvar junto com o reembolso (string JSON)",
"Whether to include external reference details": "Adicionar detalhes externos de referência",
"Type of external reference": "Tipo de referência externa",
"Unique reference from the payment provider": "Referência única do provedor de pagamento",
"Pull back funds routed to connected merchants (full refund only)": "Puxar fundos de volta encaminhados para comerciantes conectados (apenas reembolso total)",
"Specify detailed routing reversals for partial refunds": "Especificar reversões de roteamento detalhadas para reembolsos parciais",
"Detailed routing reversals for connected merchants": "Reverter roteamento detalhado para comerciantes conectados",
"Whether to create the refund in test mode": "Criar o reembolso no modo de teste",
"Start the result set from this order ID onwards": "Iniciar o resultado definido a partir deste ID de ordem",
"Maximum number of orders to return (1-250, default: 50)": "Número máximo de ordens para retornar (1-250, padrão: 50)",
"Sort orders by creation date": "Ordenar pedidos por data de criação",
"Profile ID to retrieve orders for (optional)": "ID do perfil para recuperar pedidos para (opcional)",
"Whether to search in test mode": "Se deseja pesquisar no modo de teste",
"Start the result set from this payment ID onwards": "Iniciar o resultado definido a partir deste ID de pagamento",
"Maximum number of payments to return (1-250, default: 50)": "Número máximo de pagamentos para retornar (1-250, padrão: 50)",
"Sort payments by creation date": "Ordenar pagamentos por data de criação",
"Profile ID to retrieve payments for (optional)": "ID do perfil para recuperar pagamentos para (opcional)",
"Start the result set from this customer ID onwards": "Iniciar o resultado definido a partir deste ID de cliente em diante",
"Maximum number of customers to return (1-250, default: 50)": "Número máximo de clientes a retornar (1-250, padrão: 50)",
"Sort customers by creation date": "Ordenar clientes por data de criação",
"English (US)": "Português Brasileiro (pt-BR)",
"English (GB)": "Portuguese (Brazil) pt-BR",
"Dutch (NL)": "Holandês (NL)",
"Dutch (BE)": "Holandês (BE)",
"German (DE)": "Alemão (DE)",
"German (AT)": "Alemão (AT)",
"German (CH)": "Alemão (CH)",
"French (FR)": "Francês (FR)",
"French (BE)": "Francês (BE)",
"Spanish (ES)": "Espanhol (ES)",
"Catalan (ES)": "Catalão (ES)",
"Portuguese (PT)": "Português (PT)",
"Italian (IT)": "Italiano (IT)",
"Norwegian (NO)": "Norueguês (NO)",
"Swedish (SE)": "Sueco (SE)",
"Finnish (FI)": "(FI) finlandês",
"Danish (DK)": "Dinamarquês (DK)",
"Icelandic (IS)": "Islandês (IS)",
"Hungarian (HU)": "Húngaro (HU)",
"Polish (PL)": "Polonês (PL)",
"Latvian (LV)": "Letão (LV)",
"Lithuanian (LT)": "Lituano (LT)",
"Apple Pay": "Apple Pay",
"Bancomat Pay": "Pagamento Bancomat",
"Bancontact": "Banquete",
"Bank Transfer": "Transferência Bancária",
"Belfius": "Belfius",
"Billie": "Billie",
"Credit Card": "Cartão de Crédito",
"Direct Debit": "Débito Bancário",
"EPS": "EPS",
"Gift Card": "Cartão presente",
"iDEAL": "IDEAL",
"in3": "pol3",
"KBC": "KBC",
"Klarna": "Klarna",
"Klarna Pay Later": "Klarna Paga mais tarde",
"Klarna Pay Now": "Klarna Pagar Agora",
"Klarna Slice It": "format@@0 Klarna Slice It",
"MyBank": "MyBank",
"PayPal": "Paypal",
"Paysafecard": "Paysafecard",
"Przelewy24": "Przelewy24",
"Riverty": "Rios",
"Satispay": "Satispay",
"Trustly": "Confiável",
"Twint": "Piscar",
"Voucher": "Cupom",
"One-off Payment": "Pagamento único",
"First Payment (establishes mandate)": "Primeiro pagamento (estabelece um mandato)",
"Alma": "Alma",
"BACS": "BACS",
"Bizum": "Bizum",
"BLIK": "BLIK",
"MB Way": "Caminho MB",
"Multibanco": "Multibanco",
"Pay by Bank": "Pagar por banco",
"Payconiq": "Payconiq",
"Point of Sale": "Ponto de venda",
"Swish": "Assobio",
"Recurring Payment": "Pagamento recorrente",
"Automatic": "Automático",
"Manual": "Manualmente",
"Acquirer Reference": "Referência do Adquirente",
"Newest first (Descending)": "Mais recentes primeiro (Descendente)",
"Oldest first (Ascending)": "Mais antigos primeiro (ascendente)",
"New Customer": "Novo Cliente",
"New Order": "Novo Pedido",
"New Settlement": "Novo assentamento",
"New Invoice": "Nova fatura",
"New Payment": "Novo pagamento",
"New Refund": "Novo Reembolso",
"New Payment Chargeback": "Nova contestação de pagamento",
"Fires when a new customer is created in Mollie": "aciona quando um novo cliente é criado em Mollie",
"Fires when a new order is created in Mollie": "Atira quando uma nova ordem é criada em Mollie",
"Fires upon a new settlement event (e.g. payout)": "Atira em um novo evento de liquidação (por exemplo, pagar)",
"Fires when a new invoice is generated": "aciona quando uma nova fatura é gerada",
"Fires when a new payment is created/received": "Efetua quando um novo pagamento é criado/recebido",
"Fires when a payment refund is created": "aciona quando um reembolso de pagamento é criado",
"Fires upon a payment chargeback event": "Atira em um evento de estorno de pagamento",
"Payment ID": "ID de Pagamento",
"The payment to monitor for refunds": "O pagamento para monitorar os reembolsos",
"The payment to monitor for chargebacks": "O pagamento para monitorar por chargebacks"
}

View File

@@ -0,0 +1,265 @@
{
"Automate Mollie payments, orders, refunds, customers, and invoices. Triggers on payment events and statuses.": "Automate Mollie payments, orders, refunds, customers, and invoices. Triggers on payment events and statuses.",
"Enter your Mollie API key (starts with live_ or test_)": "Enter your Mollie API key (starts with live_ or test_)",
"Create Order": "Create Order",
"Create Payment Link": "Create Payment Link",
"Create Payment": "Create Payment",
"Create Customer": "Create Customer",
"Create Payment Refund": "Create Payment Refund",
"Search Order": "Search Order",
"Search Payment": "Search Payment",
"Search Customer": "Search Customer",
"⚠️ We no longer recommend using the Orders API. Please refer to the Payments API instead.\n\nCreate a new order in Mollie": "⚠️ We no longer recommend using the Orders API. Please refer to the Payments API instead.\n\nCreate a new order in Mollie",
"Generate a new payment link targeting a customer, product, or specific amount": "Generate a new payment link targeting a customer, product, or specific amount",
"Creates a new payment in Mollie": "Creates a new payment in Mollie",
"Creates a new customer in Mollie": "Creates a new customer in Mollie",
"Creates refund for payment": "Creates refund for payment",
"⚠️ We no longer recommend using the Orders API. Please refer to the Payments API instead.\n\nSearches for orders in Mollie": "⚠️ We no longer recommend using the Orders API. Please refer to the Payments API instead.\n\nSearches for orders in Mollie",
"Retrieve all payments created with the current website profile": "Retrieve all payments created with the current website profile",
"Retrieve a list of all customers": "Retrieve a list of all customers",
"Order Number": "Order Number",
"Currency": "Currency",
"Total Amount": "Total Amount",
"Order Lines": "Order Lines",
"Billing Title": "Billing Title",
"Billing Given Name": "Billing Given Name",
"Billing Family Name": "Billing Family Name",
"Billing Organization Name": "Billing Organization Name",
"Billing Street and Number": "Billing Street and Number",
"Billing Street Additional": "Billing Street Additional",
"Billing Postal Code": "Billing Postal Code",
"Billing Email": "Billing Email",
"Billing Phone": "Billing Phone",
"Billing City": "Billing City",
"Billing Region": "Billing Region",
"Billing Country": "Billing Country",
"Include Shipping Address": "Include Shipping Address",
"Shipping Title": "Shipping Title",
"Shipping Given Name": "Shipping Given Name",
"Shipping Family Name": "Shipping Family Name",
"Shipping Organization Name": "Shipping Organization Name",
"Shipping Street and Number": "Shipping Street and Number",
"Shipping Street Additional": "Shipping Street Additional",
"Shipping Postal Code": "Shipping Postal Code",
"Shipping Email": "Shipping Email",
"Shipping Phone": "Shipping Phone",
"Shipping City": "Shipping City",
"Shipping Region": "Shipping Region",
"Shipping Country": "Shipping Country",
"Locale": "Locale",
"Redirect URL": "Redirect URL",
"Cancel URL": "Cancel URL",
"Webhook URL": "Webhook URL",
"Payment Method": "Payment Method",
"Shopper Country Must Match Billing Country": "Shopper Country Must Match Billing Country",
"Expires At": "Expires At",
"Consumer Date of Birth": "Consumer Date of Birth",
"Test Mode": "Test Mode",
"Description": "Description",
"Include Fixed Amount": "Include Fixed Amount",
"Amount": "Amount",
"Include Minimum Amount": "Include Minimum Amount",
"Minimum Amount Currency": "Minimum Amount Currency",
"Minimum Amount": "Minimum Amount",
"Include Order Lines": "Include Order Lines",
"Include Billing Address": "Include Billing Address",
"Billing Organization": "Billing Organization",
"Shipping Organization": "Shipping Organization",
"Reusable": "Reusable",
"Allowed Payment Methods": "Allowed Payment Methods",
"Sequence Type": "Sequence Type",
"Customer ID": "Customer ID",
"Restrict Payment Methods to Country": "Restrict Payment Methods to Country",
"Mandate ID": "Mandate ID",
"Capture Mode": "Capture Mode",
"Capture Delay": "Capture Delay",
"Name": "Name",
"Email": "Email",
"Metadata": "Metadata",
"Payment": "Payment",
"Refund Amount": "Refund Amount",
"Include External Reference": "Include External Reference",
"External Reference Type": "External Reference Type",
"External Reference ID": "External Reference ID",
"Reverse Routing": "Reverse Routing",
"Include Routing Reversals": "Include Routing Reversals",
"Routing Reversals": "Routing Reversals",
"From Order ID": "From Order ID",
"Limit": "Limit",
"Sort Direction": "Sort Direction",
"Profile ID": "Profile ID",
"From Payment ID": "From Payment ID",
"From Customer ID": "From Customer ID",
"The order number for this order. We recommend each order number to be unique.": "The order number for this order. We recommend each order number to be unique.",
"A three-character ISO 4217 currency code (e.g. EUR, USD)": "A three-character ISO 4217 currency code (e.g. EUR, USD)",
"The total amount to charge (e.g. \"10.00\")": "The total amount to charge (e.g. \"10.00\")",
"The order lines for the order": "The order lines for the order",
"The title of the person (e.g. Mr., Mrs.)": "The title of the person (e.g. Mr., Mrs.)",
"The given name (first name) of the person": "The given name (first name) of the person",
"The family name (surname) of the person": "The family name (surname) of the person",
"The name of the organization": "The name of the organization",
"A street and street number": "A street and street number",
"Any additional addressing details": "Any additional addressing details",
"A postal code": "A postal code",
"Email address": "Email address",
"Phone number in E.164 format": "Phone number in E.164 format",
"City name": "City name",
"Region or state": "Region or state",
"A country code in ISO 3166-1 alpha-2 format": "A country code in ISO 3166-1 alpha-2 format",
"Whether to include a separate shipping address": "Whether to include a separate shipping address",
"The language to be used in the hosted payment pages": "The language to be used in the hosted payment pages",
"The URL your customer will be redirected to after the payment process": "The URL your customer will be redirected to after the payment process",
"The URL your customer will be redirected to when they cancel the payment": "The URL your customer will be redirected to when they cancel the payment",
"The webhook URL where order status updates will be sent": "The webhook URL where order status updates will be sent",
"Specific payment method to use (optional)": "Specific payment method to use (optional)",
"Restrict payment methods to those from the billing country only": "Restrict payment methods to those from the billing country only",
"The date the order should expire in YYYY-MM-DD format": "The date the order should expire in YYYY-MM-DD format",
"The date of birth of the consumer in YYYY-MM-DD format": "The date of birth of the consumer in YYYY-MM-DD format",
"Whether to create the order in test mode": "Whether to create the order in test mode",
"A short description of the payment link (max 255 characters)": "A short description of the payment link (max 255 characters)",
"Whether to include a fixed amount or let customer enter amount": "Whether to include a fixed amount or let customer enter amount",
"The amount to charge (e.g. \"10.00\")": "The amount to charge (e.g. \"10.00\")",
"Whether to set a minimum amount (only when no fixed amount)": "Whether to set a minimum amount (only when no fixed amount)",
"Currency for minimum amount": "Currency for minimum amount",
"The minimum amount (e.g. \"5.00\")": "The minimum amount (e.g. \"5.00\")",
"URL to redirect customer after payment completion": "URL to redirect customer after payment completion",
"URL for payment status updates": "URL for payment status updates",
"Whether to include detailed order line items": "Whether to include detailed order line items",
"Order line items (required for certain payment methods)": "Order line items (required for certain payment methods)",
"Whether to include billing address details": "Whether to include billing address details",
"Title (e.g. Mr., Mrs.)": "Title (e.g. Mr., Mrs.)",
"First name": "First name",
"Last name": "Last name",
"Organization name": "Organization name",
"Street address with number": "Street address with number",
"Additional address details": "Additional address details",
"Postal code": "Postal code",
"Phone in E.164 format": "Phone in E.164 format",
"State or region": "State or region",
"ISO 3166-1 alpha-2 country code": "ISO 3166-1 alpha-2 country code",
"Whether to include shipping address details": "Whether to include shipping address details",
"Allow multiple payments using the same link": "Allow multiple payments using the same link",
"Expiry date in ISO 8601 format (e.g. 2024-12-31T23:59:59Z)": "Expiry date in ISO 8601 format (e.g. 2024-12-31T23:59:59Z)",
"Payment methods allowed for this link (empty = all enabled methods)": "Payment methods allowed for this link (empty = all enabled methods)",
"Type of payment sequence": "Type of payment sequence",
"Customer ID (only relevant for first sequence type)": "Customer ID (only relevant for first sequence type)",
"Whether to create the payment link in test mode": "Whether to create the payment link in test mode",
"Description of the payment (max 255 characters)": "Description of the payment (max 255 characters)",
"URL to redirect customer when they cancel payment": "URL to redirect customer when they cancel payment",
"ISO 3166-1 alpha-2 country code to restrict payment methods": "ISO 3166-1 alpha-2 country code to restrict payment methods",
"Customer ID (required for recurring payments)": "Customer ID (required for recurring payments)",
"Mandate ID (for recurring payments)": "Mandate ID (for recurring payments)",
"When to capture the payment": "When to capture the payment",
"Delay before automatic capture (e.g. \"8 hours\", \"2 days\")": "Delay before automatic capture (e.g. \"8 hours\", \"2 days\")",
"Whether to create the payment in test mode": "Whether to create the payment in test mode",
"The full name of the customer": "The full name of the customer",
"The email address of the customer": "The email address of the customer",
"Additional data to save alongside the customer (JSON string)": "Additional data to save alongside the customer (JSON string)",
"Whether to create the customer in test mode": "Whether to create the customer in test mode",
"Select the payment to refund": "Select the payment to refund",
"The description of the refund (max 255 characters)": "The description of the refund (max 255 characters)",
"The amount to refund (e.g. \"10.00\")": "The amount to refund (e.g. \"10.00\")",
"Additional data to save alongside the refund (JSON string)": "Additional data to save alongside the refund (JSON string)",
"Whether to include external reference details": "Whether to include external reference details",
"Type of external reference": "Type of external reference",
"Unique reference from the payment provider": "Unique reference from the payment provider",
"Pull back funds routed to connected merchants (full refund only)": "Pull back funds routed to connected merchants (full refund only)",
"Specify detailed routing reversals for partial refunds": "Specify detailed routing reversals for partial refunds",
"Detailed routing reversals for connected merchants": "Detailed routing reversals for connected merchants",
"Whether to create the refund in test mode": "Whether to create the refund in test mode",
"Start the result set from this order ID onwards": "Start the result set from this order ID onwards",
"Maximum number of orders to return (1-250, default: 50)": "Maximum number of orders to return (1-250, default: 50)",
"Sort orders by creation date": "Sort orders by creation date",
"Profile ID to retrieve orders for (optional)": "Profile ID to retrieve orders for (optional)",
"Whether to search in test mode": "Whether to search in test mode",
"Start the result set from this payment ID onwards": "Start the result set from this payment ID onwards",
"Maximum number of payments to return (1-250, default: 50)": "Maximum number of payments to return (1-250, default: 50)",
"Sort payments by creation date": "Sort payments by creation date",
"Profile ID to retrieve payments for (optional)": "Profile ID to retrieve payments for (optional)",
"Start the result set from this customer ID onwards": "Start the result set from this customer ID onwards",
"Maximum number of customers to return (1-250, default: 50)": "Maximum number of customers to return (1-250, default: 50)",
"Sort customers by creation date": "Sort customers by creation date",
"English (US)": "English (US)",
"English (GB)": "English (GB)",
"Dutch (NL)": "Dutch (NL)",
"Dutch (BE)": "Dutch (BE)",
"German (DE)": "German (DE)",
"German (AT)": "German (AT)",
"German (CH)": "German (CH)",
"French (FR)": "French (FR)",
"French (BE)": "French (BE)",
"Spanish (ES)": "Spanish (ES)",
"Catalan (ES)": "Catalan (ES)",
"Portuguese (PT)": "Portuguese (PT)",
"Italian (IT)": "Italian (IT)",
"Norwegian (NO)": "Norwegian (NO)",
"Swedish (SE)": "Swedish (SE)",
"Finnish (FI)": "Finnish (FI)",
"Danish (DK)": "Danish (DK)",
"Icelandic (IS)": "Icelandic (IS)",
"Hungarian (HU)": "Hungarian (HU)",
"Polish (PL)": "Polish (PL)",
"Latvian (LV)": "Latvian (LV)",
"Lithuanian (LT)": "Lithuanian (LT)",
"Apple Pay": "Apple Pay",
"Bancomat Pay": "Bancomat Pay",
"Bancontact": "Bancontact",
"Bank Transfer": "Bank Transfer",
"Belfius": "Belfius",
"Billie": "Billie",
"Credit Card": "Credit Card",
"Direct Debit": "Direct Debit",
"EPS": "EPS",
"Gift Card": "Gift Card",
"iDEAL": "iDEAL",
"in3": "in3",
"KBC": "KBC",
"Klarna": "Klarna",
"Klarna Pay Later": "Klarna Pay Later",
"Klarna Pay Now": "Klarna Pay Now",
"Klarna Slice It": "Klarna Slice It",
"MyBank": "MyBank",
"PayPal": "PayPal",
"Paysafecard": "Paysafecard",
"Przelewy24": "Przelewy24",
"Riverty": "Riverty",
"Satispay": "Satispay",
"Trustly": "Trustly",
"Twint": "Twint",
"Voucher": "Voucher",
"One-off Payment": "One-off Payment",
"First Payment (establishes mandate)": "First Payment (establishes mandate)",
"Alma": "Alma",
"BACS": "BACS",
"Bizum": "Bizum",
"BLIK": "BLIK",
"MB Way": "MB Way",
"Multibanco": "Multibanco",
"Pay by Bank": "Pay by Bank",
"Payconiq": "Payconiq",
"Point of Sale": "Point of Sale",
"Swish": "Swish",
"Recurring Payment": "Recurring Payment",
"Automatic": "Automatic",
"Manual": "Manual",
"Acquirer Reference": "Acquirer Reference",
"Newest first (Descending)": "Newest first (Descending)",
"Oldest first (Ascending)": "Oldest first (Ascending)",
"New Customer": "New Customer",
"New Order": "New Order",
"New Settlement": "New Settlement",
"New Invoice": "New Invoice",
"New Payment": "New Payment",
"New Refund": "New Refund",
"New Payment Chargeback": "New Payment Chargeback",
"Fires when a new customer is created in Mollie": "Fires when a new customer is created in Mollie",
"Fires when a new order is created in Mollie": "Fires when a new order is created in Mollie",
"Fires upon a new settlement event (e.g. payout)": "Fires upon a new settlement event (e.g. payout)",
"Fires when a new invoice is generated": "Fires when a new invoice is generated",
"Fires when a new payment is created/received": "Fires when a new payment is created/received",
"Fires when a payment refund is created": "Fires when a payment refund is created",
"Fires upon a payment chargeback event": "Fires upon a payment chargeback event",
"Payment ID": "Payment ID",
"The payment to monitor for refunds": "The payment to monitor for refunds",
"The payment to monitor for chargebacks": "The payment to monitor for chargebacks"
}

View File

@@ -0,0 +1,265 @@
{
"Automate Mollie payments, orders, refunds, customers, and invoices. Triggers on payment events and statuses.": "Automate Mollie payments, orders, refunds, customers, and invoices. Triggers on payment events and statuses.",
"Enter your Mollie API key (starts with live_ or test_)": "Enter your Mollie API key (starts with live_ or test_)",
"Create Order": "Create Order",
"Create Payment Link": "Create Payment Link",
"Create Payment": "Create Payment",
"Create Customer": "Create Customer",
"Create Payment Refund": "Create Payment Refund",
"Search Order": "Search Order",
"Search Payment": "Search Payment",
"Search Customer": "Search Customer",
"⚠️ We no longer recommend using the Orders API. Please refer to the Payments API instead.\n\nCreate a new order in Mollie": "⚠️ We no longer recommend using the Orders API. Please refer to the Payments API instead.\n\nCreate a new order in Mollie",
"Generate a new payment link targeting a customer, product, or specific amount": "Generate a new payment link targeting a customer, product, or specific amount",
"Creates a new payment in Mollie": "Creates a new payment in Mollie",
"Creates a new customer in Mollie": "Creates a new customer in Mollie",
"Creates refund for payment": "Creates refund for payment",
"⚠️ We no longer recommend using the Orders API. Please refer to the Payments API instead.\n\nSearches for orders in Mollie": "⚠️ We no longer recommend using the Orders API. Please refer to the Payments API instead.\n\nSearches for orders in Mollie",
"Retrieve all payments created with the current website profile": "Retrieve all payments created with the current website profile",
"Retrieve a list of all customers": "Retrieve a list of all customers",
"Order Number": "Order Number",
"Currency": "Currency",
"Total Amount": "Total Amount",
"Order Lines": "Order Lines",
"Billing Title": "Billing Title",
"Billing Given Name": "Billing Given Name",
"Billing Family Name": "Billing Family Name",
"Billing Organization Name": "Billing Organization Name",
"Billing Street and Number": "Billing Street and Number",
"Billing Street Additional": "Billing Street Additional",
"Billing Postal Code": "Billing Postal Code",
"Billing Email": "Billing Email",
"Billing Phone": "Billing Phone",
"Billing City": "Billing City",
"Billing Region": "Billing Region",
"Billing Country": "Billing Country",
"Include Shipping Address": "Include Shipping Address",
"Shipping Title": "Shipping Title",
"Shipping Given Name": "Shipping Given Name",
"Shipping Family Name": "Shipping Family Name",
"Shipping Organization Name": "Shipping Organization Name",
"Shipping Street and Number": "Shipping Street and Number",
"Shipping Street Additional": "Shipping Street Additional",
"Shipping Postal Code": "Shipping Postal Code",
"Shipping Email": "Shipping Email",
"Shipping Phone": "Shipping Phone",
"Shipping City": "Shipping City",
"Shipping Region": "Shipping Region",
"Shipping Country": "Shipping Country",
"Locale": "Locale",
"Redirect URL": "重定向网址",
"Cancel URL": "Cancel URL",
"Webhook URL": "Webhook URL",
"Payment Method": "Payment Method",
"Shopper Country Must Match Billing Country": "Shopper Country Must Match Billing Country",
"Expires At": "Expires At",
"Consumer Date of Birth": "Consumer Date of Birth",
"Test Mode": "Test Mode",
"Description": "描述",
"Include Fixed Amount": "Include Fixed Amount",
"Amount": "Amount",
"Include Minimum Amount": "Include Minimum Amount",
"Minimum Amount Currency": "Minimum Amount Currency",
"Minimum Amount": "Minimum Amount",
"Include Order Lines": "Include Order Lines",
"Include Billing Address": "Include Billing Address",
"Billing Organization": "Billing Organization",
"Shipping Organization": "Shipping Organization",
"Reusable": "Reusable",
"Allowed Payment Methods": "Allowed Payment Methods",
"Sequence Type": "Sequence Type",
"Customer ID": "Customer ID",
"Restrict Payment Methods to Country": "Restrict Payment Methods to Country",
"Mandate ID": "Mandate ID",
"Capture Mode": "Capture Mode",
"Capture Delay": "Capture Delay",
"Name": "名称",
"Email": "电子邮件地址",
"Metadata": "Metadata",
"Payment": "Payment",
"Refund Amount": "Refund Amount",
"Include External Reference": "Include External Reference",
"External Reference Type": "External Reference Type",
"External Reference ID": "External Reference ID",
"Reverse Routing": "Reverse Routing",
"Include Routing Reversals": "Include Routing Reversals",
"Routing Reversals": "Routing Reversals",
"From Order ID": "From Order ID",
"Limit": "Limit",
"Sort Direction": "Sort Direction",
"Profile ID": "Profile ID",
"From Payment ID": "From Payment ID",
"From Customer ID": "From Customer ID",
"The order number for this order. We recommend each order number to be unique.": "The order number for this order. We recommend each order number to be unique.",
"A three-character ISO 4217 currency code (e.g. EUR, USD)": "A three-character ISO 4217 currency code (e.g. EUR, USD)",
"The total amount to charge (e.g. \"10.00\")": "The total amount to charge (e.g. \"10.00\")",
"The order lines for the order": "The order lines for the order",
"The title of the person (e.g. Mr., Mrs.)": "The title of the person (e.g. Mr., Mrs.)",
"The given name (first name) of the person": "The given name (first name) of the person",
"The family name (surname) of the person": "The family name (surname) of the person",
"The name of the organization": "The name of the organization",
"A street and street number": "A street and street number",
"Any additional addressing details": "Any additional addressing details",
"A postal code": "A postal code",
"Email address": "Email address",
"Phone number in E.164 format": "Phone number in E.164 format",
"City name": "City name",
"Region or state": "Region or state",
"A country code in ISO 3166-1 alpha-2 format": "A country code in ISO 3166-1 alpha-2 format",
"Whether to include a separate shipping address": "Whether to include a separate shipping address",
"The language to be used in the hosted payment pages": "The language to be used in the hosted payment pages",
"The URL your customer will be redirected to after the payment process": "The URL your customer will be redirected to after the payment process",
"The URL your customer will be redirected to when they cancel the payment": "The URL your customer will be redirected to when they cancel the payment",
"The webhook URL where order status updates will be sent": "The webhook URL where order status updates will be sent",
"Specific payment method to use (optional)": "Specific payment method to use (optional)",
"Restrict payment methods to those from the billing country only": "Restrict payment methods to those from the billing country only",
"The date the order should expire in YYYY-MM-DD format": "The date the order should expire in YYYY-MM-DD format",
"The date of birth of the consumer in YYYY-MM-DD format": "The date of birth of the consumer in YYYY-MM-DD format",
"Whether to create the order in test mode": "Whether to create the order in test mode",
"A short description of the payment link (max 255 characters)": "A short description of the payment link (max 255 characters)",
"Whether to include a fixed amount or let customer enter amount": "Whether to include a fixed amount or let customer enter amount",
"The amount to charge (e.g. \"10.00\")": "The amount to charge (e.g. \"10.00\")",
"Whether to set a minimum amount (only when no fixed amount)": "Whether to set a minimum amount (only when no fixed amount)",
"Currency for minimum amount": "Currency for minimum amount",
"The minimum amount (e.g. \"5.00\")": "The minimum amount (e.g. \"5.00\")",
"URL to redirect customer after payment completion": "URL to redirect customer after payment completion",
"URL for payment status updates": "URL for payment status updates",
"Whether to include detailed order line items": "Whether to include detailed order line items",
"Order line items (required for certain payment methods)": "Order line items (required for certain payment methods)",
"Whether to include billing address details": "Whether to include billing address details",
"Title (e.g. Mr., Mrs.)": "Title (e.g. Mr., Mrs.)",
"First name": "First name",
"Last name": "Last name",
"Organization name": "Organization name",
"Street address with number": "Street address with number",
"Additional address details": "Additional address details",
"Postal code": "Postal code",
"Phone in E.164 format": "Phone in E.164 format",
"State or region": "State or region",
"ISO 3166-1 alpha-2 country code": "ISO 3166-1 alpha-2 country code",
"Whether to include shipping address details": "Whether to include shipping address details",
"Allow multiple payments using the same link": "Allow multiple payments using the same link",
"Expiry date in ISO 8601 format (e.g. 2024-12-31T23:59:59Z)": "Expiry date in ISO 8601 format (e.g. 2024-12-31T23:59:59Z)",
"Payment methods allowed for this link (empty = all enabled methods)": "Payment methods allowed for this link (empty = all enabled methods)",
"Type of payment sequence": "Type of payment sequence",
"Customer ID (only relevant for first sequence type)": "Customer ID (only relevant for first sequence type)",
"Whether to create the payment link in test mode": "Whether to create the payment link in test mode",
"Description of the payment (max 255 characters)": "Description of the payment (max 255 characters)",
"URL to redirect customer when they cancel payment": "URL to redirect customer when they cancel payment",
"ISO 3166-1 alpha-2 country code to restrict payment methods": "ISO 3166-1 alpha-2 country code to restrict payment methods",
"Customer ID (required for recurring payments)": "Customer ID (required for recurring payments)",
"Mandate ID (for recurring payments)": "Mandate ID (for recurring payments)",
"When to capture the payment": "When to capture the payment",
"Delay before automatic capture (e.g. \"8 hours\", \"2 days\")": "Delay before automatic capture (e.g. \"8 hours\", \"2 days\")",
"Whether to create the payment in test mode": "Whether to create the payment in test mode",
"The full name of the customer": "The full name of the customer",
"The email address of the customer": "The email address of the customer",
"Additional data to save alongside the customer (JSON string)": "Additional data to save alongside the customer (JSON string)",
"Whether to create the customer in test mode": "Whether to create the customer in test mode",
"Select the payment to refund": "Select the payment to refund",
"The description of the refund (max 255 characters)": "The description of the refund (max 255 characters)",
"The amount to refund (e.g. \"10.00\")": "The amount to refund (e.g. \"10.00\")",
"Additional data to save alongside the refund (JSON string)": "Additional data to save alongside the refund (JSON string)",
"Whether to include external reference details": "Whether to include external reference details",
"Type of external reference": "Type of external reference",
"Unique reference from the payment provider": "Unique reference from the payment provider",
"Pull back funds routed to connected merchants (full refund only)": "Pull back funds routed to connected merchants (full refund only)",
"Specify detailed routing reversals for partial refunds": "Specify detailed routing reversals for partial refunds",
"Detailed routing reversals for connected merchants": "Detailed routing reversals for connected merchants",
"Whether to create the refund in test mode": "Whether to create the refund in test mode",
"Start the result set from this order ID onwards": "Start the result set from this order ID onwards",
"Maximum number of orders to return (1-250, default: 50)": "Maximum number of orders to return (1-250, default: 50)",
"Sort orders by creation date": "Sort orders by creation date",
"Profile ID to retrieve orders for (optional)": "Profile ID to retrieve orders for (optional)",
"Whether to search in test mode": "Whether to search in test mode",
"Start the result set from this payment ID onwards": "Start the result set from this payment ID onwards",
"Maximum number of payments to return (1-250, default: 50)": "Maximum number of payments to return (1-250, default: 50)",
"Sort payments by creation date": "Sort payments by creation date",
"Profile ID to retrieve payments for (optional)": "Profile ID to retrieve payments for (optional)",
"Start the result set from this customer ID onwards": "Start the result set from this customer ID onwards",
"Maximum number of customers to return (1-250, default: 50)": "Maximum number of customers to return (1-250, default: 50)",
"Sort customers by creation date": "Sort customers by creation date",
"English (US)": "English (US)",
"English (GB)": "English (GB)",
"Dutch (NL)": "Dutch (NL)",
"Dutch (BE)": "Dutch (BE)",
"German (DE)": "German (DE)",
"German (AT)": "German (AT)",
"German (CH)": "German (CH)",
"French (FR)": "French (FR)",
"French (BE)": "French (BE)",
"Spanish (ES)": "Spanish (ES)",
"Catalan (ES)": "Catalan (ES)",
"Portuguese (PT)": "Portuguese (PT)",
"Italian (IT)": "Italian (IT)",
"Norwegian (NO)": "Norwegian (NO)",
"Swedish (SE)": "Swedish (SE)",
"Finnish (FI)": "Finnish (FI)",
"Danish (DK)": "Danish (DK)",
"Icelandic (IS)": "Icelandic (IS)",
"Hungarian (HU)": "Hungarian (HU)",
"Polish (PL)": "Polish (PL)",
"Latvian (LV)": "Latvian (LV)",
"Lithuanian (LT)": "Lithuanian (LT)",
"Apple Pay": "Apple Pay",
"Bancomat Pay": "Bancomat Pay",
"Bancontact": "Bancontact",
"Bank Transfer": "Bank Transfer",
"Belfius": "Belfius",
"Billie": "Billie",
"Credit Card": "Credit Card",
"Direct Debit": "Direct Debit",
"EPS": "EPS",
"Gift Card": "Gift Card",
"iDEAL": "iDEAL",
"in3": "in3",
"KBC": "KBC",
"Klarna": "Klarna",
"Klarna Pay Later": "Klarna Pay Later",
"Klarna Pay Now": "Klarna Pay Now",
"Klarna Slice It": "Klarna Slice It",
"MyBank": "MyBank",
"PayPal": "PayPal",
"Paysafecard": "Paysafecard",
"Przelewy24": "Przelewy24",
"Riverty": "Riverty",
"Satispay": "Satispay",
"Trustly": "Trustly",
"Twint": "Twint",
"Voucher": "Voucher",
"One-off Payment": "One-off Payment",
"First Payment (establishes mandate)": "First Payment (establishes mandate)",
"Alma": "Alma",
"BACS": "BACS",
"Bizum": "Bizum",
"BLIK": "BLIK",
"MB Way": "MB Way",
"Multibanco": "Multibanco",
"Pay by Bank": "Pay by Bank",
"Payconiq": "Payconiq",
"Point of Sale": "Point of Sale",
"Swish": "Swish",
"Recurring Payment": "Recurring Payment",
"Automatic": "Automatic",
"Manual": "Manual",
"Acquirer Reference": "Acquirer Reference",
"Newest first (Descending)": "Newest first (Descending)",
"Oldest first (Ascending)": "Oldest first (Ascending)",
"New Customer": "New Customer",
"New Order": "New Order",
"New Settlement": "New Settlement",
"New Invoice": "New Invoice",
"New Payment": "New Payment",
"New Refund": "New Refund",
"New Payment Chargeback": "New Payment Chargeback",
"Fires when a new customer is created in Mollie": "Fires when a new customer is created in Mollie",
"Fires when a new order is created in Mollie": "Fires when a new order is created in Mollie",
"Fires upon a new settlement event (e.g. payout)": "Fires upon a new settlement event (e.g. payout)",
"Fires when a new invoice is generated": "Fires when a new invoice is generated",
"Fires when a new payment is created/received": "Fires when a new payment is created/received",
"Fires when a payment refund is created": "Fires when a payment refund is created",
"Fires upon a payment chargeback event": "Fires upon a payment chargeback event",
"Payment ID": "Payment ID",
"The payment to monitor for refunds": "The payment to monitor for refunds",
"The payment to monitor for chargebacks": "The payment to monitor for chargebacks"
}

View File

@@ -0,0 +1,53 @@
import { createPiece, PieceAuth } from '@activepieces/pieces-framework';
import { mollieCreateOrder } from './lib/actions/create-order';
import { mollieCreatePaymentLink } from './lib/actions/create-payment-link';
import { mollieCreatePayment } from './lib/actions/create-payment';
import { mollieCreateCustomer } from './lib/actions/create-customer';
import { mollieCreatePaymentRefund } from './lib/actions/create-payment-refund';
import { mollieSearchOrder } from './lib/actions/search-order';
import { mollieSearchPayment } from './lib/actions/search-payment';
import { mollieSearchCustomer } from './lib/actions/search-customer';
import { mollieNewCustomer } from './lib/triggers/new-customer';
import { mollieNewOrder } from './lib/triggers/new-order';
import { mollieNewSettlement } from './lib/triggers/new-settlement';
import { mollieNewInvoice } from './lib/triggers/new-invoice';
import { mollieNewPayment } from './lib/triggers/new-payment';
import { mollieNewRefund } from './lib/triggers/new-refund';
import { mollieNewChargeback } from './lib/triggers/new-chargeback';
import { PieceCategory } from '@activepieces/shared';
export const mollieAuth = PieceAuth.SecretText({
displayName: 'API Key',
description: 'Enter your Mollie API key (starts with live_ or test_)',
required: true,
});
export const mollie = createPiece({
displayName: 'Mollie',
auth: mollieAuth,
minimumSupportedRelease: '0.36.1',
logoUrl: 'https://cdn.activepieces.com/pieces/mollie.png',
authors: ['onyedikachi-david', 'Ani-4x'],
description:
'Automate Mollie payments, orders, refunds, customers, and invoices. Triggers on payment events and statuses.',
categories: [PieceCategory.PAYMENT_PROCESSING],
actions: [
mollieCreateOrder,
mollieCreatePaymentLink,
mollieCreatePayment,
mollieCreateCustomer,
mollieCreatePaymentRefund,
mollieSearchOrder,
mollieSearchPayment,
mollieSearchCustomer,
],
triggers: [
mollieNewCustomer,
mollieNewOrder,
mollieNewSettlement,
mollieNewInvoice,
mollieNewPayment,
mollieNewRefund,
mollieNewChargeback,
],
});

View File

@@ -0,0 +1,103 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { HttpMethod } from '@activepieces/pieces-common';
import { mollieCommon } from '../common';
import { mollieAuth } from '../../index';
export const mollieCreateCustomer = createAction({
auth: mollieAuth,
name: 'create_customer',
displayName: 'Create Customer',
description: 'Creates a new customer in Mollie',
props: {
name: Property.ShortText({
displayName: 'Name',
description: 'The full name of the customer',
required: false,
}),
email: Property.ShortText({
displayName: 'Email',
description: 'The email address of the customer',
required: false,
}),
locale: Property.StaticDropdown({
displayName: 'Locale',
description: 'The language to be used in the hosted payment pages',
required: false,
options: {
options: [
{ label: 'English (US)', value: 'en_US' },
{ label: 'English (GB)', value: 'en_GB' },
{ label: 'Dutch (NL)', value: 'nl_NL' },
{ label: 'Dutch (BE)', value: 'nl_BE' },
{ label: 'German (DE)', value: 'de_DE' },
{ label: 'German (AT)', value: 'de_AT' },
{ label: 'German (CH)', value: 'de_CH' },
{ label: 'French (FR)', value: 'fr_FR' },
{ label: 'French (BE)', value: 'fr_BE' },
{ label: 'Spanish (ES)', value: 'es_ES' },
{ label: 'Catalan (ES)', value: 'ca_ES' },
{ label: 'Portuguese (PT)', value: 'pt_PT' },
{ label: 'Italian (IT)', value: 'it_IT' },
{ label: 'Norwegian (NO)', value: 'nb_NO' },
{ label: 'Swedish (SE)', value: 'sv_SE' },
{ label: 'Finnish (FI)', value: 'fi_FI' },
{ label: 'Danish (DK)', value: 'da_DK' },
{ label: 'Icelandic (IS)', value: 'is_IS' },
{ label: 'Hungarian (HU)', value: 'hu_HU' },
{ label: 'Polish (PL)', value: 'pl_PL' },
{ label: 'Latvian (LV)', value: 'lv_LV' },
{ label: 'Lithuanian (LT)', value: 'lt_LT' },
],
},
}),
metadata: Property.ShortText({
displayName: 'Metadata',
description:
'Additional data to save alongside the customer (JSON string)',
required: false,
}),
testmode: Property.Checkbox({
displayName: 'Test Mode',
description: 'Whether to create the customer in test mode',
required: false,
defaultValue: false,
}),
},
async run({ auth, propsValue }) {
const apiKey = auth;
const customerData: Record<string, unknown> = {};
if (propsValue.name) {
customerData['name'] = propsValue.name;
}
if (propsValue.email) {
customerData['email'] = propsValue.email;
}
if (propsValue.locale) {
customerData['locale'] = propsValue.locale;
}
if (propsValue.metadata) {
try {
customerData['metadata'] = JSON.parse(propsValue.metadata);
} catch {
customerData['metadata'] = propsValue.metadata;
}
}
const response = await mollieCommon.makeRequest(
apiKey,
HttpMethod.POST,
'/customers',
customerData,
propsValue.testmode
);
return response;
},
});

View File

@@ -0,0 +1,518 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { HttpMethod } from '@activepieces/pieces-common';
import { mollieCommon, MollieOrder } from '../common';
import { mollieAuth } from '../../index';
export const mollieCreateOrder = createAction({
auth: mollieAuth,
name: 'create_order',
displayName: 'Create Order',
description:
'⚠️ We no longer recommend using the Orders API. Please refer to the Payments API instead.\n\nCreate a new order in Mollie',
props: {
orderNumber: Property.ShortText({
displayName: 'Order Number',
description:
'The order number for this order. We recommend each order number to be unique.',
required: true,
}),
currency: Property.ShortText({
displayName: 'Currency',
description: 'A three-character ISO 4217 currency code (e.g. EUR, USD)',
required: true,
defaultValue: 'EUR',
}),
amount: Property.ShortText({
displayName: 'Total Amount',
description: 'The total amount to charge (e.g. "10.00")',
required: true,
}),
lines: Property.Array({
displayName: 'Order Lines',
description: 'The order lines for the order',
required: true,
properties: {
type: Property.StaticDropdown({
displayName: 'Type',
description: 'The type of product purchased',
required: false,
defaultValue: 'physical',
options: {
options: [
{ label: 'Physical', value: 'physical' },
{ label: 'Digital', value: 'digital' },
{ label: 'Shipping Fee', value: 'shipping_fee' },
{ label: 'Discount', value: 'discount' },
{ label: 'Store Credit', value: 'store_credit' },
{ label: 'Gift Card', value: 'gift_card' },
{ label: 'Surcharge', value: 'surcharge' },
],
},
}),
name: Property.ShortText({
displayName: 'Name',
description: 'A description of the line item',
required: true,
}),
quantity: Property.Number({
displayName: 'Quantity',
description: 'The number of items',
required: true,
}),
unitPriceCurrency: Property.ShortText({
displayName: 'Unit Price Currency',
description: 'Currency for unit price (should match order currency)',
required: true,
defaultValue: 'EUR',
}),
unitPriceValue: Property.ShortText({
displayName: 'Unit Price Value',
description:
'The price of a single item including VAT (e.g. "10.00")',
required: true,
}),
totalAmountCurrency: Property.ShortText({
displayName: 'Total Amount Currency',
description:
'Currency for total amount (should match order currency)',
required: true,
defaultValue: 'EUR',
}),
totalAmountValue: Property.ShortText({
displayName: 'Total Amount Value',
description:
'The total amount of the line including VAT and discounts',
required: true,
}),
vatRate: Property.ShortText({
displayName: 'VAT Rate',
description:
'The VAT rate applied to the line (e.g. "21.00" for 21%)',
required: false,
}),
vatAmountCurrency: Property.ShortText({
displayName: 'VAT Amount Currency',
description: 'Currency for VAT amount',
required: false,
}),
vatAmountValue: Property.ShortText({
displayName: 'VAT Amount Value',
description: 'The amount of value-added tax on the line',
required: false,
}),
sku: Property.ShortText({
displayName: 'SKU',
description: 'The SKU, EAN, ISBN or UPC of the product sold',
required: false,
}),
discountAmountCurrency: Property.ShortText({
displayName: 'Discount Amount Currency',
description: 'Currency for discount amount',
required: false,
}),
discountAmountValue: Property.ShortText({
displayName: 'Discount Amount Value',
description: 'Any line-specific discounts, as a positive amount',
required: false,
}),
imageUrl: Property.LongText({
displayName: 'Image URL',
description: 'A link pointing to an image of the product sold',
required: false,
}),
productUrl: Property.LongText({
displayName: 'Product URL',
description: 'A link pointing to the product page in your web shop',
required: false,
}),
category: Property.StaticDropdown({
displayName: 'Category',
description: 'The voucher category (for voucher-eligible items)',
required: false,
options: {
options: [
{ label: 'Meal', value: 'meal' },
{ label: 'Eco', value: 'eco' },
{ label: 'Gift', value: 'gift' },
{ label: 'Sport & Culture', value: 'sport_culture' },
],
},
}),
},
}),
billingTitle: Property.ShortText({
displayName: 'Billing Title',
description: 'The title of the person (e.g. Mr., Mrs.)',
required: false,
}),
billingGivenName: Property.ShortText({
displayName: 'Billing Given Name',
description: 'The given name (first name) of the person',
required: true,
}),
billingFamilyName: Property.ShortText({
displayName: 'Billing Family Name',
description: 'The family name (surname) of the person',
required: true,
}),
billingOrganizationName: Property.ShortText({
displayName: 'Billing Organization Name',
description: 'The name of the organization',
required: false,
}),
billingStreetAndNumber: Property.ShortText({
displayName: 'Billing Street and Number',
description: 'A street and street number',
required: true,
}),
billingStreetAdditional: Property.ShortText({
displayName: 'Billing Street Additional',
description: 'Any additional addressing details',
required: false,
}),
billingPostalCode: Property.ShortText({
displayName: 'Billing Postal Code',
description: 'A postal code',
required: true,
}),
billingEmail: Property.ShortText({
displayName: 'Billing Email',
description: 'Email address',
required: true,
}),
billingPhone: Property.ShortText({
displayName: 'Billing Phone',
description: 'Phone number in E.164 format',
required: false,
}),
billingCity: Property.ShortText({
displayName: 'Billing City',
description: 'City name',
required: true,
}),
billingRegion: Property.ShortText({
displayName: 'Billing Region',
description: 'Region or state',
required: false,
}),
billingCountry: Property.ShortText({
displayName: 'Billing Country',
description: 'A country code in ISO 3166-1 alpha-2 format',
required: true,
}),
includeShippingAddress: Property.Checkbox({
displayName: 'Include Shipping Address',
description: 'Whether to include a separate shipping address',
required: false,
defaultValue: false,
}),
shippingTitle: Property.ShortText({
displayName: 'Shipping Title',
description: 'The title of the person (e.g. Mr., Mrs.)',
required: false,
}),
shippingGivenName: Property.ShortText({
displayName: 'Shipping Given Name',
description: 'The given name (first name) of the person',
required: false,
}),
shippingFamilyName: Property.ShortText({
displayName: 'Shipping Family Name',
description: 'The family name (surname) of the person',
required: false,
}),
shippingOrganizationName: Property.ShortText({
displayName: 'Shipping Organization Name',
description: 'The name of the organization',
required: false,
}),
shippingStreetAndNumber: Property.ShortText({
displayName: 'Shipping Street and Number',
description: 'A street and street number',
required: false,
}),
shippingStreetAdditional: Property.ShortText({
displayName: 'Shipping Street Additional',
description: 'Any additional addressing details',
required: false,
}),
shippingPostalCode: Property.ShortText({
displayName: 'Shipping Postal Code',
description: 'A postal code',
required: false,
}),
shippingEmail: Property.ShortText({
displayName: 'Shipping Email',
description: 'Email address',
required: false,
}),
shippingPhone: Property.ShortText({
displayName: 'Shipping Phone',
description: 'Phone number in E.164 format',
required: false,
}),
shippingCity: Property.ShortText({
displayName: 'Shipping City',
description: 'City name',
required: false,
}),
shippingRegion: Property.ShortText({
displayName: 'Shipping Region',
description: 'Region or state',
required: false,
}),
shippingCountry: Property.ShortText({
displayName: 'Shipping Country',
description: 'A country code in ISO 3166-1 alpha-2 format',
required: false,
}),
locale: Property.StaticDropdown({
displayName: 'Locale',
description: 'The language to be used in the hosted payment pages',
required: true,
defaultValue: 'en_US',
options: {
options: [
{ label: 'English (US)', value: 'en_US' },
{ label: 'English (GB)', value: 'en_GB' },
{ label: 'Dutch (NL)', value: 'nl_NL' },
{ label: 'Dutch (BE)', value: 'nl_BE' },
{ label: 'German (DE)', value: 'de_DE' },
{ label: 'German (AT)', value: 'de_AT' },
{ label: 'German (CH)', value: 'de_CH' },
{ label: 'French (FR)', value: 'fr_FR' },
{ label: 'French (BE)', value: 'fr_BE' },
{ label: 'Spanish (ES)', value: 'es_ES' },
{ label: 'Catalan (ES)', value: 'ca_ES' },
{ label: 'Portuguese (PT)', value: 'pt_PT' },
{ label: 'Italian (IT)', value: 'it_IT' },
{ label: 'Norwegian (NO)', value: 'nb_NO' },
{ label: 'Swedish (SE)', value: 'sv_SE' },
{ label: 'Finnish (FI)', value: 'fi_FI' },
{ label: 'Danish (DK)', value: 'da_DK' },
{ label: 'Icelandic (IS)', value: 'is_IS' },
{ label: 'Hungarian (HU)', value: 'hu_HU' },
{ label: 'Polish (PL)', value: 'pl_PL' },
{ label: 'Latvian (LV)', value: 'lv_LV' },
{ label: 'Lithuanian (LT)', value: 'lt_LT' },
],
},
}),
redirectUrl: Property.LongText({
displayName: 'Redirect URL',
description:
'The URL your customer will be redirected to after the payment process',
required: false,
}),
cancelUrl: Property.LongText({
displayName: 'Cancel URL',
description:
'The URL your customer will be redirected to when they cancel the payment',
required: false,
}),
webhookUrl: Property.LongText({
displayName: 'Webhook URL',
description: 'The webhook URL where order status updates will be sent',
required: false,
}),
method: Property.StaticDropdown({
displayName: 'Payment Method',
description: 'Specific payment method to use (optional)',
required: false,
options: {
options: [
{ label: 'Apple Pay', value: 'applepay' },
{ label: 'Bancomat Pay', value: 'bancomatpay' },
{ label: 'Bancontact', value: 'bancontact' },
{ label: 'Bank Transfer', value: 'banktransfer' },
{ label: 'Belfius', value: 'belfius' },
{ label: 'Billie', value: 'billie' },
{ label: 'Credit Card', value: 'creditcard' },
{ label: 'Direct Debit', value: 'directdebit' },
{ label: 'EPS', value: 'eps' },
{ label: 'Gift Card', value: 'giftcard' },
{ label: 'iDEAL', value: 'ideal' },
{ label: 'in3', value: 'in3' },
{ label: 'KBC', value: 'kbc' },
{ label: 'Klarna', value: 'klarna' },
{ label: 'Klarna Pay Later', value: 'klarnapaylater' },
{ label: 'Klarna Pay Now', value: 'klarnapaynow' },
{ label: 'Klarna Slice It', value: 'klarnasliceit' },
{ label: 'MyBank', value: 'mybank' },
{ label: 'PayPal', value: 'paypal' },
{ label: 'Paysafecard', value: 'paysafecard' },
{ label: 'Przelewy24', value: 'przelewy24' },
{ label: 'Riverty', value: 'riverty' },
{ label: 'Satispay', value: 'satispay' },
{ label: 'Trustly', value: 'trustly' },
{ label: 'Twint', value: 'twint' },
{ label: 'Voucher', value: 'voucher' },
],
},
}),
shopperCountryMustMatchBillingCountry: Property.Checkbox({
displayName: 'Shopper Country Must Match Billing Country',
description:
'Restrict payment methods to those from the billing country only',
required: false,
}),
expiresAt: Property.ShortText({
displayName: 'Expires At',
description: 'The date the order should expire in YYYY-MM-DD format',
required: false,
}),
consumerDateOfBirth: Property.DateTime({
displayName: 'Consumer Date of Birth',
description: 'The date of birth of the consumer in YYYY-MM-DD format',
required: false,
}),
testmode: Property.Checkbox({
displayName: 'Test Mode',
description: 'Whether to create the order in test mode',
required: false,
defaultValue: false,
}),
},
async run({ auth, propsValue }) {
const apiKey = auth;
const billingAddress = {
givenName: propsValue.billingGivenName,
familyName: propsValue.billingFamilyName,
streetAndNumber: propsValue.billingStreetAndNumber,
postalCode: propsValue.billingPostalCode,
email: propsValue.billingEmail,
city: propsValue.billingCity,
country: propsValue.billingCountry,
...(propsValue.billingTitle && { title: propsValue.billingTitle }),
...(propsValue.billingOrganizationName && {
organizationName: propsValue.billingOrganizationName,
}),
...(propsValue.billingStreetAdditional && {
streetAdditional: propsValue.billingStreetAdditional,
}),
...(propsValue.billingPhone && { phone: propsValue.billingPhone }),
...(propsValue.billingRegion && { region: propsValue.billingRegion }),
};
let shippingAddress;
if (
propsValue.includeShippingAddress &&
propsValue.shippingGivenName &&
propsValue.shippingFamilyName
) {
shippingAddress = {
givenName: propsValue.shippingGivenName,
familyName: propsValue.shippingFamilyName,
streetAndNumber: propsValue.shippingStreetAndNumber || '',
postalCode: propsValue.shippingPostalCode || '',
email: propsValue.shippingEmail || propsValue.billingEmail,
city: propsValue.shippingCity || '',
country: propsValue.shippingCountry || '',
...(propsValue.shippingTitle && { title: propsValue.shippingTitle }),
...(propsValue.shippingOrganizationName && {
organizationName: propsValue.shippingOrganizationName,
}),
...(propsValue.shippingStreetAdditional && {
streetAdditional: propsValue.shippingStreetAdditional,
}),
...(propsValue.shippingPhone && { phone: propsValue.shippingPhone }),
...(propsValue.shippingRegion && { region: propsValue.shippingRegion }),
};
}
const lines = (propsValue.lines as unknown[]).map((line: unknown) => {
const lineData = line as Record<string, unknown>;
const orderLine: Record<string, unknown> = {
type: lineData['type'] || 'physical',
name: lineData['name'],
quantity: lineData['quantity'],
unitPrice: {
currency: lineData['unitPriceCurrency'],
value: lineData['unitPriceValue'],
},
totalAmount: {
currency: lineData['totalAmountCurrency'],
value: lineData['totalAmountValue'],
},
};
if (lineData['vatRate']) orderLine['vatRate'] = lineData['vatRate'];
if (lineData['vatAmountCurrency'] && lineData['vatAmountValue']) {
orderLine['vatAmount'] = {
currency: lineData['vatAmountCurrency'],
value: lineData['vatAmountValue'],
};
}
if (lineData['sku']) orderLine['sku'] = lineData['sku'];
if (
lineData['discountAmountCurrency'] &&
lineData['discountAmountValue']
) {
orderLine['discountAmount'] = {
currency: lineData['discountAmountCurrency'],
value: lineData['discountAmountValue'],
};
}
if (lineData['imageUrl']) orderLine['imageUrl'] = lineData['imageUrl'];
if (lineData['productUrl'])
orderLine['productUrl'] = lineData['productUrl'];
if (lineData['category']) orderLine['category'] = lineData['category'];
return orderLine;
});
const orderData: Record<string, unknown> = {
orderNumber: propsValue.orderNumber,
amount: {
currency: propsValue.currency,
value: propsValue.amount,
},
lines,
billingAddress,
locale: propsValue.locale,
};
if (shippingAddress) {
orderData['shippingAddress'] = shippingAddress;
}
if (propsValue.redirectUrl) {
orderData['redirectUrl'] = propsValue.redirectUrl;
}
if (propsValue.cancelUrl) {
orderData['cancelUrl'] = propsValue.cancelUrl;
}
if (propsValue.webhookUrl) {
orderData['webhookUrl'] = propsValue.webhookUrl;
}
if (propsValue.method) {
orderData['method'] = propsValue.method;
}
if (propsValue.shopperCountryMustMatchBillingCountry !== undefined) {
orderData['shopperCountryMustMatchBillingCountry'] =
propsValue.shopperCountryMustMatchBillingCountry;
}
if (propsValue.expiresAt) {
orderData['expiresAt'] = propsValue.expiresAt;
}
if (propsValue.consumerDateOfBirth) {
orderData['consumerDateOfBirth'] = propsValue.consumerDateOfBirth;
}
const response = await mollieCommon.makeRequest<MollieOrder>(
apiKey,
HttpMethod.POST,
'/orders',
orderData,
propsValue.testmode
);
return response;
},
});

View File

@@ -0,0 +1,569 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { HttpMethod } from '@activepieces/pieces-common';
import { mollieCommon } from '../common';
import { mollieAuth } from '../../index';
export const mollieCreatePaymentLink = createAction({
auth: mollieAuth,
name: 'create_payment_link',
displayName: 'Create Payment Link',
description:
'Generate a new payment link targeting a customer, product, or specific amount',
props: {
description: Property.ShortText({
displayName: 'Description',
description:
'A short description of the payment link (max 255 characters)',
required: true,
}),
includeAmount: Property.Checkbox({
displayName: 'Include Fixed Amount',
description:
'Whether to include a fixed amount or let customer enter amount',
required: false,
defaultValue: true,
}),
currency: Property.ShortText({
displayName: 'Currency',
description: 'A three-character ISO 4217 currency code (e.g. EUR, USD)',
required: false,
defaultValue: 'EUR',
}),
amount: Property.ShortText({
displayName: 'Amount',
description: 'The amount to charge (e.g. "10.00")',
required: false,
}),
includeMinimumAmount: Property.Checkbox({
displayName: 'Include Minimum Amount',
description:
'Whether to set a minimum amount (only when no fixed amount)',
required: false,
defaultValue: false,
}),
minimumAmountCurrency: Property.ShortText({
displayName: 'Minimum Amount Currency',
description: 'Currency for minimum amount',
required: false,
defaultValue: 'EUR',
}),
minimumAmount: Property.ShortText({
displayName: 'Minimum Amount',
description: 'The minimum amount (e.g. "5.00")',
required: false,
}),
redirectUrl: Property.LongText({
displayName: 'Redirect URL',
description: 'URL to redirect customer after payment completion',
required: false,
}),
webhookUrl: Property.LongText({
displayName: 'Webhook URL',
description: 'URL for payment status updates',
required: false,
}),
includeLines: Property.Checkbox({
displayName: 'Include Order Lines',
description: 'Whether to include detailed order line items',
required: false,
defaultValue: false,
}),
lines: Property.Array({
displayName: 'Order Lines',
description: 'Order line items (required for certain payment methods)',
required: false,
properties: {
type: Property.StaticDropdown({
displayName: 'Type',
description: 'The type of product purchased',
required: false,
defaultValue: 'physical',
options: {
options: [
{ label: 'Physical', value: 'physical' },
{ label: 'Digital', value: 'digital' },
{ label: 'Shipping Fee', value: 'shipping_fee' },
{ label: 'Discount', value: 'discount' },
{ label: 'Store Credit', value: 'store_credit' },
{ label: 'Gift Card', value: 'gift_card' },
{ label: 'Surcharge', value: 'surcharge' },
],
},
}),
description: Property.ShortText({
displayName: 'Description',
description: 'A description of the line item',
required: true,
}),
quantity: Property.Number({
displayName: 'Quantity',
description: 'The number of items',
required: true,
}),
quantityUnit: Property.ShortText({
displayName: 'Quantity Unit',
description: 'The unit for the quantity (e.g. pcs, kg, cm)',
required: false,
}),
unitPriceCurrency: Property.ShortText({
displayName: 'Unit Price Currency',
description: 'Currency for unit price',
required: true,
defaultValue: 'EUR',
}),
unitPriceValue: Property.ShortText({
displayName: 'Unit Price Value',
description: 'The price of a single item including VAT',
required: true,
}),
totalAmountCurrency: Property.ShortText({
displayName: 'Total Amount Currency',
description: 'Currency for total amount',
required: true,
defaultValue: 'EUR',
}),
totalAmountValue: Property.ShortText({
displayName: 'Total Amount Value',
description: 'The total amount including VAT and discounts',
required: true,
}),
vatRate: Property.ShortText({
displayName: 'VAT Rate',
description: 'VAT rate (e.g. "21.00" for 21%)',
required: false,
}),
vatAmountCurrency: Property.ShortText({
displayName: 'VAT Amount Currency',
description: 'Currency for VAT amount',
required: false,
}),
vatAmountValue: Property.ShortText({
displayName: 'VAT Amount Value',
description: 'The amount of VAT on the line',
required: false,
}),
sku: Property.ShortText({
displayName: 'SKU',
description: 'The SKU, EAN, ISBN or UPC of the product',
required: false,
}),
discountAmountCurrency: Property.ShortText({
displayName: 'Discount Amount Currency',
description: 'Currency for discount amount',
required: false,
}),
discountAmountValue: Property.ShortText({
displayName: 'Discount Amount Value',
description: 'Line-specific discounts as positive amount',
required: false,
}),
imageUrl: Property.LongText({
displayName: 'Image URL',
description: 'Link to product image',
required: false,
}),
productUrl: Property.LongText({
displayName: 'Product URL',
description: 'Link to product page',
required: false,
}),
},
}),
includeBillingAddress: Property.Checkbox({
displayName: 'Include Billing Address',
description: 'Whether to include billing address details',
required: false,
defaultValue: false,
}),
billingTitle: Property.ShortText({
displayName: 'Billing Title',
description: 'Title (e.g. Mr., Mrs.)',
required: false,
}),
billingGivenName: Property.ShortText({
displayName: 'Billing Given Name',
description: 'First name',
required: false,
}),
billingFamilyName: Property.ShortText({
displayName: 'Billing Family Name',
description: 'Last name',
required: false,
}),
billingOrganizationName: Property.ShortText({
displayName: 'Billing Organization',
description: 'Organization name',
required: false,
}),
billingStreetAndNumber: Property.ShortText({
displayName: 'Billing Street and Number',
description: 'Street address with number',
required: false,
}),
billingStreetAdditional: Property.ShortText({
displayName: 'Billing Street Additional',
description: 'Additional address details',
required: false,
}),
billingPostalCode: Property.ShortText({
displayName: 'Billing Postal Code',
description: 'Postal code',
required: false,
}),
billingEmail: Property.ShortText({
displayName: 'Billing Email',
description: 'Email address',
required: false,
}),
billingPhone: Property.ShortText({
displayName: 'Billing Phone',
description: 'Phone in E.164 format',
required: false,
}),
billingCity: Property.ShortText({
displayName: 'Billing City',
description: 'City name',
required: false,
}),
billingRegion: Property.ShortText({
displayName: 'Billing Region',
description: 'State or region',
required: false,
}),
billingCountry: Property.ShortText({
displayName: 'Billing Country',
description: 'ISO 3166-1 alpha-2 country code',
required: false,
}),
includeShippingAddress: Property.Checkbox({
displayName: 'Include Shipping Address',
description: 'Whether to include shipping address details',
required: false,
defaultValue: false,
}),
shippingTitle: Property.ShortText({
displayName: 'Shipping Title',
description: 'Title (e.g. Mr., Mrs.)',
required: false,
}),
shippingGivenName: Property.ShortText({
displayName: 'Shipping Given Name',
description: 'First name',
required: false,
}),
shippingFamilyName: Property.ShortText({
displayName: 'Shipping Family Name',
description: 'Last name',
required: false,
}),
shippingOrganizationName: Property.ShortText({
displayName: 'Shipping Organization',
description: 'Organization name',
required: false,
}),
shippingStreetAndNumber: Property.ShortText({
displayName: 'Shipping Street and Number',
description: 'Street address with number',
required: false,
}),
shippingStreetAdditional: Property.ShortText({
displayName: 'Shipping Street Additional',
description: 'Additional address details',
required: false,
}),
shippingPostalCode: Property.ShortText({
displayName: 'Shipping Postal Code',
description: 'Postal code',
required: false,
}),
shippingEmail: Property.ShortText({
displayName: 'Shipping Email',
description: 'Email address',
required: false,
}),
shippingPhone: Property.ShortText({
displayName: 'Shipping Phone',
description: 'Phone in E.164 format',
required: false,
}),
shippingCity: Property.ShortText({
displayName: 'Shipping City',
description: 'City name',
required: false,
}),
shippingRegion: Property.ShortText({
displayName: 'Shipping Region',
description: 'State or region',
required: false,
}),
shippingCountry: Property.ShortText({
displayName: 'Shipping Country',
description: 'ISO 3166-1 alpha-2 country code',
required: false,
}),
reusable: Property.Checkbox({
displayName: 'Reusable',
description: 'Allow multiple payments using the same link',
required: false,
defaultValue: false,
}),
expiresAt: Property.ShortText({
displayName: 'Expires At',
description: 'Expiry date in ISO 8601 format (e.g. 2024-12-31T23:59:59Z)',
required: false,
}),
allowedMethods: Property.MultiSelectDropdown({
auth: mollieAuth,
displayName: 'Allowed Payment Methods',
description:
'Payment methods allowed for this link (empty = all enabled methods)',
required: false,
refreshers: [],
options: async () => {
return {
options: [
{ label: 'Apple Pay', value: 'applepay' },
{ label: 'Bancomat Pay', value: 'bancomatpay' },
{ label: 'Bancontact', value: 'bancontact' },
{ label: 'Bank Transfer', value: 'banktransfer' },
{ label: 'Belfius', value: 'belfius' },
{ label: 'BLIK', value: 'blik' },
{ label: 'Credit Card', value: 'creditcard' },
{ label: 'EPS', value: 'eps' },
{ label: 'Gift Card', value: 'giftcard' },
{ label: 'iDEAL', value: 'ideal' },
{ label: 'KBC', value: 'kbc' },
{ label: 'MyBank', value: 'mybank' },
{ label: 'Pay by Bank', value: 'paybybank' },
{ label: 'PayPal', value: 'paypal' },
{ label: 'Paysafecard', value: 'paysafecard' },
{ label: 'Point of Sale', value: 'pointofsale' },
{ label: 'Przelewy24', value: 'przelewy24' },
{ label: 'Satispay', value: 'satispay' },
{ label: 'Trustly', value: 'trustly' },
{ label: 'Twint', value: 'twint' },
{ label: 'in3', value: 'in3' },
{ label: 'Riverty', value: 'riverty' },
{ label: 'Klarna', value: 'klarna' },
{ label: 'Billie', value: 'billie' },
],
};
},
}),
sequenceType: Property.StaticDropdown({
displayName: 'Sequence Type',
description: 'Type of payment sequence',
required: false,
defaultValue: 'oneoff',
options: {
options: [
{ label: 'One-off Payment', value: 'oneoff' },
{ label: 'First Payment (establishes mandate)', value: 'first' },
],
},
}),
customerId: Property.ShortText({
displayName: 'Customer ID',
description: 'Customer ID (only relevant for first sequence type)',
required: false,
}),
testmode: Property.Checkbox({
displayName: 'Test Mode',
description: 'Whether to create the payment link in test mode',
required: false,
defaultValue: false,
}),
},
async run({ auth, propsValue }) {
const apiKey = auth;
const paymentLinkData: Record<string, unknown> = {
description: propsValue.description,
};
if (propsValue.includeAmount && propsValue.currency && propsValue.amount) {
paymentLinkData['amount'] = {
currency: propsValue.currency,
value: propsValue.amount,
};
}
if (
propsValue.includeMinimumAmount &&
!propsValue.includeAmount &&
propsValue.minimumAmountCurrency &&
propsValue.minimumAmount
) {
paymentLinkData['minimumAmount'] = {
currency: propsValue.minimumAmountCurrency,
value: propsValue.minimumAmount,
};
}
if (propsValue.redirectUrl) {
paymentLinkData['redirectUrl'] = propsValue.redirectUrl;
}
if (propsValue.webhookUrl) {
paymentLinkData['webhookUrl'] = propsValue.webhookUrl;
}
if (
propsValue.includeLines &&
propsValue.lines &&
Array.isArray(propsValue.lines)
) {
const lines = (propsValue.lines as unknown[]).map((line: unknown) => {
const lineData = line as Record<string, unknown>;
const orderLine: Record<string, unknown> = {
type: lineData['type'] || 'physical',
description: lineData['description'],
quantity: lineData['quantity'],
unitPrice: {
currency: lineData['unitPriceCurrency'],
value: lineData['unitPriceValue'],
},
totalAmount: {
currency: lineData['totalAmountCurrency'],
value: lineData['totalAmountValue'],
},
};
if (lineData['quantityUnit'])
orderLine['quantityUnit'] = lineData['quantityUnit'];
if (lineData['vatRate']) orderLine['vatRate'] = lineData['vatRate'];
if (lineData['vatAmountCurrency'] && lineData['vatAmountValue']) {
orderLine['vatAmount'] = {
currency: lineData['vatAmountCurrency'],
value: lineData['vatAmountValue'],
};
}
if (lineData['sku']) orderLine['sku'] = lineData['sku'];
if (
lineData['discountAmountCurrency'] &&
lineData['discountAmountValue']
) {
orderLine['discountAmount'] = {
currency: lineData['discountAmountCurrency'],
value: lineData['discountAmountValue'],
};
}
if (lineData['imageUrl']) orderLine['imageUrl'] = lineData['imageUrl'];
if (lineData['productUrl'])
orderLine['productUrl'] = lineData['productUrl'];
return orderLine;
});
paymentLinkData['lines'] = lines;
}
if (propsValue.includeBillingAddress) {
const billingAddress: Record<string, unknown> = {};
if (propsValue.billingTitle)
billingAddress['title'] = propsValue.billingTitle;
if (propsValue.billingGivenName)
billingAddress['givenName'] = propsValue.billingGivenName;
if (propsValue.billingFamilyName)
billingAddress['familyName'] = propsValue.billingFamilyName;
if (propsValue.billingOrganizationName)
billingAddress['organizationName'] = propsValue.billingOrganizationName;
if (propsValue.billingStreetAndNumber)
billingAddress['streetAndNumber'] = propsValue.billingStreetAndNumber;
if (propsValue.billingStreetAdditional)
billingAddress['streetAdditional'] = propsValue.billingStreetAdditional;
if (propsValue.billingPostalCode)
billingAddress['postalCode'] = propsValue.billingPostalCode;
if (propsValue.billingEmail)
billingAddress['email'] = propsValue.billingEmail;
if (propsValue.billingPhone)
billingAddress['phone'] = propsValue.billingPhone;
if (propsValue.billingCity)
billingAddress['city'] = propsValue.billingCity;
if (propsValue.billingRegion)
billingAddress['region'] = propsValue.billingRegion;
if (propsValue.billingCountry)
billingAddress['country'] = propsValue.billingCountry;
if (Object.keys(billingAddress).length > 0) {
paymentLinkData['billingAddress'] = billingAddress;
}
}
if (propsValue.includeShippingAddress) {
const shippingAddress: Record<string, unknown> = {};
if (propsValue.shippingTitle)
shippingAddress['title'] = propsValue.shippingTitle;
if (propsValue.shippingGivenName)
shippingAddress['givenName'] = propsValue.shippingGivenName;
if (propsValue.shippingFamilyName)
shippingAddress['familyName'] = propsValue.shippingFamilyName;
if (propsValue.shippingOrganizationName)
shippingAddress['organizationName'] =
propsValue.shippingOrganizationName;
if (propsValue.shippingStreetAndNumber)
shippingAddress['streetAndNumber'] = propsValue.shippingStreetAndNumber;
if (propsValue.shippingStreetAdditional)
shippingAddress['streetAdditional'] =
propsValue.shippingStreetAdditional;
if (propsValue.shippingPostalCode)
shippingAddress['postalCode'] = propsValue.shippingPostalCode;
if (propsValue.shippingEmail)
shippingAddress['email'] = propsValue.shippingEmail;
if (propsValue.shippingPhone)
shippingAddress['phone'] = propsValue.shippingPhone;
if (propsValue.shippingCity)
shippingAddress['city'] = propsValue.shippingCity;
if (propsValue.shippingRegion)
shippingAddress['region'] = propsValue.shippingRegion;
if (propsValue.shippingCountry)
shippingAddress['country'] = propsValue.shippingCountry;
if (Object.keys(shippingAddress).length > 0) {
paymentLinkData['shippingAddress'] = shippingAddress;
}
}
if (propsValue.reusable !== undefined) {
paymentLinkData['reusable'] = propsValue.reusable;
}
if (propsValue.expiresAt) {
paymentLinkData['expiresAt'] = propsValue.expiresAt;
}
if (
propsValue.allowedMethods &&
Array.isArray(propsValue.allowedMethods) &&
propsValue.allowedMethods.length > 0
) {
paymentLinkData['allowedMethods'] = propsValue.allowedMethods;
}
if (propsValue.sequenceType) {
paymentLinkData['sequenceType'] = propsValue.sequenceType;
}
if (propsValue.customerId) {
paymentLinkData['customerId'] = propsValue.customerId;
}
const response = await mollieCommon.makeRequest(
apiKey,
HttpMethod.POST,
'/payment-links',
paymentLinkData
);
return response;
},
});

View File

@@ -0,0 +1,233 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { HttpMethod } from '@activepieces/pieces-common';
import { mollieCommon } from '../common';
import { mollieAuth } from '../../index';
export const mollieCreatePaymentRefund = createAction({
auth: mollieAuth,
name: 'create_payment_refund',
displayName: 'Create Payment Refund',
description: 'Creates refund for payment',
props: {
paymentId: Property.Dropdown({
auth: mollieAuth,
displayName: 'Payment',
description: 'Select the payment to refund',
required: true,
refreshers: [],
options: async ({ auth }) => {
if (!auth) {
return {
disabled: true,
options: [],
placeholder: 'Please connect your account first',
};
}
try {
const apiKey = auth;
const payments = await mollieCommon.makeRequest(
apiKey,
HttpMethod.GET,
'/payments?limit=250'
);
const options =
(payments as { data?: unknown[] }).data?.map((payment: unknown) => {
const paymentData = payment as Record<string, unknown>;
const amount = paymentData['amount'] as Record<string, unknown>;
return {
label: `${paymentData['description'] || paymentData['id']} - ${
amount['currency']
} ${amount['value']} (${paymentData['status']})`,
value: paymentData['id'],
};
}) || [];
return {
disabled: false,
options,
placeholder: 'Select a payment',
};
} catch (error) {
return {
disabled: true,
options: [],
placeholder: 'Failed to load payments',
};
}
},
}),
description: Property.ShortText({
displayName: 'Description',
description: 'The description of the refund (max 255 characters)',
required: false,
}),
currency: Property.ShortText({
displayName: 'Currency',
description: 'A three-character ISO 4217 currency code (e.g. EUR, USD)',
required: true,
defaultValue: 'EUR',
}),
amount: Property.ShortText({
displayName: 'Refund Amount',
description: 'The amount to refund (e.g. "10.00")',
required: true,
}),
metadata: Property.ShortText({
displayName: 'Metadata',
description: 'Additional data to save alongside the refund (JSON string)',
required: false,
}),
includeExternalReference: Property.Checkbox({
displayName: 'Include External Reference',
description: 'Whether to include external reference details',
required: false,
defaultValue: false,
}),
externalReferenceType: Property.StaticDropdown({
displayName: 'External Reference Type',
description: 'Type of external reference',
required: false,
options: {
options: [{ label: 'Acquirer Reference', value: 'acquirer-reference' }],
},
}),
externalReferenceId: Property.ShortText({
displayName: 'External Reference ID',
description: 'Unique reference from the payment provider',
required: false,
}),
reverseRouting: Property.Checkbox({
displayName: 'Reverse Routing',
description:
'Pull back funds routed to connected merchants (full refund only)',
required: false,
defaultValue: false,
}),
includeRoutingReversals: Property.Checkbox({
displayName: 'Include Routing Reversals',
description: 'Specify detailed routing reversals for partial refunds',
required: false,
defaultValue: false,
}),
routingReversals: Property.Array({
displayName: 'Routing Reversals',
description: 'Detailed routing reversals for connected merchants',
required: false,
properties: {
amountCurrency: Property.ShortText({
displayName: 'Amount Currency',
description: 'Currency for the reversal amount',
required: true,
defaultValue: 'EUR',
}),
amountValue: Property.ShortText({
displayName: 'Amount Value',
description: 'The amount to pull back',
required: true,
}),
sourceType: Property.StaticDropdown({
displayName: 'Source Type',
description: 'Type of source to pull funds from',
required: true,
defaultValue: 'organization',
options: {
options: [{ label: 'Organization', value: 'organization' }],
},
}),
organizationId: Property.ShortText({
displayName: 'Organization ID',
description: 'ID of the connected organization to pull funds from',
required: true,
}),
},
}),
testmode: Property.Checkbox({
displayName: 'Test Mode',
description: 'Whether to create the refund in test mode',
required: false,
defaultValue: false,
}),
},
async run({ auth, propsValue }) {
const apiKey = auth;
const refundData: Record<string, unknown> = {
amount: {
currency: propsValue.currency,
value: propsValue.amount,
},
};
if (propsValue.description) {
refundData['description'] = propsValue.description;
}
if (propsValue.metadata) {
try {
refundData['metadata'] = JSON.parse(propsValue.metadata);
} catch {
refundData['metadata'] = propsValue.metadata;
}
}
if (
propsValue.includeExternalReference &&
propsValue.externalReferenceType &&
propsValue.externalReferenceId
) {
refundData['externalReference'] = {
type: propsValue.externalReferenceType,
id: propsValue.externalReferenceId,
};
}
if (propsValue.reverseRouting) {
refundData['reverseRouting'] = true;
}
if (
propsValue.includeRoutingReversals &&
propsValue.routingReversals &&
Array.isArray(propsValue.routingReversals)
) {
const reversals = (propsValue.routingReversals as unknown[]).map(
(reversal: unknown) => {
const reversalData = reversal as Record<string, unknown>;
return {
amount: {
currency: reversalData['amountCurrency'],
value: reversalData['amountValue'],
},
source: {
type: reversalData['sourceType'],
organizationId: reversalData['organizationId'],
},
};
}
);
refundData['routingReversals'] = reversals;
}
const response = await mollieCommon.makeRequest(
apiKey,
HttpMethod.POST,
`/payments/${propsValue.paymentId}/refunds`,
refundData,
propsValue.testmode
);
return response;
},
});

View File

@@ -0,0 +1,599 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { HttpMethod } from '@activepieces/pieces-common';
import { mollieCommon } from '../common';
import { mollieAuth } from '../../index';
export const mollieCreatePayment = createAction({
auth: mollieAuth,
name: 'create_payment',
displayName: 'Create Payment',
description: 'Creates a new payment in Mollie',
props: {
description: Property.ShortText({
displayName: 'Description',
description: 'Description of the payment (max 255 characters)',
required: true,
}),
currency: Property.ShortText({
displayName: 'Currency',
description: 'A three-character ISO 4217 currency code (e.g. EUR, USD)',
required: true,
defaultValue: 'EUR',
}),
amount: Property.ShortText({
displayName: 'Amount',
description: 'The amount to charge (e.g. "10.00")',
required: true,
}),
redirectUrl: Property.LongText({
displayName: 'Redirect URL',
description: 'URL to redirect customer after payment completion',
required: true,
}),
cancelUrl: Property.LongText({
displayName: 'Cancel URL',
description: 'URL to redirect customer when they cancel payment',
required: false,
}),
webhookUrl: Property.LongText({
displayName: 'Webhook URL',
description: 'URL for payment status updates',
required: false,
}),
includeLines: Property.Checkbox({
displayName: 'Include Order Lines',
description: 'Whether to include detailed order line items',
required: false,
defaultValue: false,
}),
lines: Property.Array({
displayName: 'Order Lines',
description: 'Order line items (required for certain payment methods)',
required: false,
properties: {
type: Property.StaticDropdown({
displayName: 'Type',
description: 'The type of product purchased',
required: false,
defaultValue: 'physical',
options: {
options: [
{ label: 'Physical', value: 'physical' },
{ label: 'Digital', value: 'digital' },
{ label: 'Shipping Fee', value: 'shipping_fee' },
{ label: 'Discount', value: 'discount' },
{ label: 'Store Credit', value: 'store_credit' },
{ label: 'Gift Card', value: 'gift_card' },
{ label: 'Surcharge', value: 'surcharge' },
],
},
}),
description: Property.ShortText({
displayName: 'Description',
description: 'A description of the line item',
required: true,
}),
quantity: Property.Number({
displayName: 'Quantity',
description: 'The number of items',
required: true,
}),
quantityUnit: Property.ShortText({
displayName: 'Quantity Unit',
description: 'The unit for the quantity (e.g. pcs, kg, cm)',
required: false,
}),
unitPriceCurrency: Property.ShortText({
displayName: 'Unit Price Currency',
description: 'Currency for unit price',
required: true,
defaultValue: 'EUR',
}),
unitPriceValue: Property.ShortText({
displayName: 'Unit Price Value',
description: 'The price of a single item including VAT',
required: true,
}),
totalAmountCurrency: Property.ShortText({
displayName: 'Total Amount Currency',
description: 'Currency for total amount',
required: true,
defaultValue: 'EUR',
}),
totalAmountValue: Property.ShortText({
displayName: 'Total Amount Value',
description: 'The total amount including VAT and discounts',
required: true,
}),
vatRate: Property.ShortText({
displayName: 'VAT Rate',
description: 'VAT rate (e.g. "21.00" for 21%)',
required: false,
}),
vatAmountCurrency: Property.ShortText({
displayName: 'VAT Amount Currency',
description: 'Currency for VAT amount',
required: false,
}),
vatAmountValue: Property.ShortText({
displayName: 'VAT Amount Value',
description: 'The amount of VAT on the line',
required: false,
}),
sku: Property.ShortText({
displayName: 'SKU',
description: 'The SKU, EAN, ISBN or UPC of the product',
required: false,
}),
discountAmountCurrency: Property.ShortText({
displayName: 'Discount Amount Currency',
description: 'Currency for discount amount',
required: false,
}),
discountAmountValue: Property.ShortText({
displayName: 'Discount Amount Value',
description: 'Line-specific discounts as positive amount',
required: false,
}),
imageUrl: Property.LongText({
displayName: 'Image URL',
description: 'Link to product image',
required: false,
}),
productUrl: Property.LongText({
displayName: 'Product URL',
description: 'Link to product page',
required: false,
}),
},
}),
includeBillingAddress: Property.Checkbox({
displayName: 'Include Billing Address',
description: 'Whether to include billing address details',
required: false,
defaultValue: false,
}),
billingTitle: Property.ShortText({
displayName: 'Billing Title',
description: 'Title (e.g. Mr., Mrs.)',
required: false,
}),
billingGivenName: Property.ShortText({
displayName: 'Billing Given Name',
description: 'First name',
required: false,
}),
billingFamilyName: Property.ShortText({
displayName: 'Billing Family Name',
description: 'Last name',
required: false,
}),
billingOrganizationName: Property.ShortText({
displayName: 'Billing Organization',
description: 'Organization name',
required: false,
}),
billingStreetAndNumber: Property.ShortText({
displayName: 'Billing Street and Number',
description: 'Street address with number',
required: false,
}),
billingStreetAdditional: Property.ShortText({
displayName: 'Billing Street Additional',
description: 'Additional address details',
required: false,
}),
billingPostalCode: Property.ShortText({
displayName: 'Billing Postal Code',
description: 'Postal code',
required: false,
}),
billingEmail: Property.ShortText({
displayName: 'Billing Email',
description: 'Email address',
required: false,
}),
billingPhone: Property.ShortText({
displayName: 'Billing Phone',
description: 'Phone in E.164 format',
required: false,
}),
billingCity: Property.ShortText({
displayName: 'Billing City',
description: 'City name',
required: false,
}),
billingRegion: Property.ShortText({
displayName: 'Billing Region',
description: 'State or region',
required: false,
}),
billingCountry: Property.ShortText({
displayName: 'Billing Country',
description: 'ISO 3166-1 alpha-2 country code',
required: false,
}),
includeShippingAddress: Property.Checkbox({
displayName: 'Include Shipping Address',
description: 'Whether to include shipping address details',
required: false,
defaultValue: false,
}),
shippingTitle: Property.ShortText({
displayName: 'Shipping Title',
description: 'Title (e.g. Mr., Mrs.)',
required: false,
}),
shippingGivenName: Property.ShortText({
displayName: 'Shipping Given Name',
description: 'First name',
required: false,
}),
shippingFamilyName: Property.ShortText({
displayName: 'Shipping Family Name',
description: 'Last name',
required: false,
}),
shippingOrganizationName: Property.ShortText({
displayName: 'Shipping Organization',
description: 'Organization name',
required: false,
}),
shippingStreetAndNumber: Property.ShortText({
displayName: 'Shipping Street and Number',
description: 'Street address with number',
required: false,
}),
shippingStreetAdditional: Property.ShortText({
displayName: 'Shipping Street Additional',
description: 'Additional address details',
required: false,
}),
shippingPostalCode: Property.ShortText({
displayName: 'Shipping Postal Code',
description: 'Postal code',
required: false,
}),
shippingEmail: Property.ShortText({
displayName: 'Shipping Email',
description: 'Email address',
required: false,
}),
shippingPhone: Property.ShortText({
displayName: 'Shipping Phone',
description: 'Phone in E.164 format',
required: false,
}),
shippingCity: Property.ShortText({
displayName: 'Shipping City',
description: 'City name',
required: false,
}),
shippingRegion: Property.ShortText({
displayName: 'Shipping Region',
description: 'State or region',
required: false,
}),
shippingCountry: Property.ShortText({
displayName: 'Shipping Country',
description: 'ISO 3166-1 alpha-2 country code',
required: false,
}),
locale: Property.StaticDropdown({
displayName: 'Locale',
description: 'The language to be used in the hosted payment pages',
required: false,
options: {
options: [
{ label: 'English (US)', value: 'en_US' },
{ label: 'English (GB)', value: 'en_GB' },
{ label: 'Dutch (NL)', value: 'nl_NL' },
{ label: 'Dutch (BE)', value: 'nl_BE' },
{ label: 'German (DE)', value: 'de_DE' },
{ label: 'German (AT)', value: 'de_AT' },
{ label: 'German (CH)', value: 'de_CH' },
{ label: 'French (FR)', value: 'fr_FR' },
{ label: 'French (BE)', value: 'fr_BE' },
{ label: 'Spanish (ES)', value: 'es_ES' },
{ label: 'Catalan (ES)', value: 'ca_ES' },
{ label: 'Portuguese (PT)', value: 'pt_PT' },
{ label: 'Italian (IT)', value: 'it_IT' },
{ label: 'Norwegian (NO)', value: 'nb_NO' },
{ label: 'Swedish (SE)', value: 'sv_SE' },
{ label: 'Finnish (FI)', value: 'fi_FI' },
{ label: 'Danish (DK)', value: 'da_DK' },
{ label: 'Icelandic (IS)', value: 'is_IS' },
{ label: 'Hungarian (HU)', value: 'hu_HU' },
{ label: 'Polish (PL)', value: 'pl_PL' },
{ label: 'Latvian (LV)', value: 'lv_LV' },
{ label: 'Lithuanian (LT)', value: 'lt_LT' },
],
},
}),
method: Property.StaticDropdown({
displayName: 'Payment Method',
description: 'Specific payment method to use (optional)',
required: false,
options: {
options: [
{ label: 'Alma', value: 'alma' },
{ label: 'Apple Pay', value: 'applepay' },
{ label: 'BACS', value: 'bacs' },
{ label: 'Bancomat Pay', value: 'bancomatpay' },
{ label: 'Bancontact', value: 'bancontact' },
{ label: 'Bank Transfer', value: 'banktransfer' },
{ label: 'Belfius', value: 'belfius' },
{ label: 'Billie', value: 'billie' },
{ label: 'Bizum', value: 'bizum' },
{ label: 'BLIK', value: 'blik' },
{ label: 'Credit Card', value: 'creditcard' },
{ label: 'Direct Debit', value: 'directdebit' },
{ label: 'EPS', value: 'eps' },
{ label: 'Gift Card', value: 'giftcard' },
{ label: 'iDEAL', value: 'ideal' },
{ label: 'in3', value: 'in3' },
{ label: 'KBC', value: 'kbc' },
{ label: 'Klarna', value: 'klarna' },
{ label: 'Klarna Pay Later', value: 'klarnapaylater' },
{ label: 'Klarna Pay Now', value: 'klarnapaynow' },
{ label: 'Klarna Slice It', value: 'klarnasliceit' },
{ label: 'MB Way', value: 'mbway' },
{ label: 'Multibanco', value: 'multibanco' },
{ label: 'MyBank', value: 'mybank' },
{ label: 'Pay by Bank', value: 'paybybank' },
{ label: 'Payconiq', value: 'payconiq' },
{ label: 'PayPal', value: 'paypal' },
{ label: 'Paysafecard', value: 'paysafecard' },
{ label: 'Point of Sale', value: 'pointofsale' },
{ label: 'Przelewy24', value: 'przelewy24' },
{ label: 'Riverty', value: 'riverty' },
{ label: 'Satispay', value: 'satispay' },
{ label: 'Swish', value: 'swish' },
{ label: 'Trustly', value: 'trustly' },
{ label: 'Twint', value: 'twint' },
{ label: 'Voucher', value: 'voucher' },
],
},
}),
restrictPaymentMethodsToCountry: Property.ShortText({
displayName: 'Restrict Payment Methods to Country',
description:
'ISO 3166-1 alpha-2 country code to restrict payment methods',
required: false,
}),
sequenceType: Property.StaticDropdown({
displayName: 'Sequence Type',
description: 'Type of payment sequence',
required: false,
defaultValue: 'oneoff',
options: {
options: [
{ label: 'One-off Payment', value: 'oneoff' },
{ label: 'First Payment (establishes mandate)', value: 'first' },
{ label: 'Recurring Payment', value: 'recurring' },
],
},
}),
customerId: Property.ShortText({
displayName: 'Customer ID',
description: 'Customer ID (required for recurring payments)',
required: false,
}),
mandateId: Property.ShortText({
displayName: 'Mandate ID',
description: 'Mandate ID (for recurring payments)',
required: false,
}),
captureMode: Property.StaticDropdown({
displayName: 'Capture Mode',
description: 'When to capture the payment',
required: false,
defaultValue: 'automatic',
options: {
options: [
{ label: 'Automatic', value: 'automatic' },
{ label: 'Manual', value: 'manual' },
],
},
}),
captureDelay: Property.ShortText({
displayName: 'Capture Delay',
description: 'Delay before automatic capture (e.g. "8 hours", "2 days")',
required: false,
}),
testmode: Property.Checkbox({
displayName: 'Test Mode',
description: 'Whether to create the payment in test mode',
required: false,
defaultValue: false,
}),
},
async run({ auth, propsValue }) {
const apiKey = auth;
const paymentData: Record<string, unknown> = {
description: propsValue.description,
amount: {
currency: propsValue.currency,
value: propsValue.amount,
},
redirectUrl: propsValue.redirectUrl,
};
if (propsValue.cancelUrl) {
paymentData['cancelUrl'] = propsValue.cancelUrl;
}
if (propsValue.webhookUrl) {
paymentData['webhookUrl'] = propsValue.webhookUrl;
}
if (
propsValue.includeLines &&
propsValue.lines &&
Array.isArray(propsValue.lines)
) {
const lines = (propsValue.lines as unknown[]).map((line: unknown) => {
const lineData = line as Record<string, unknown>;
const orderLine: Record<string, unknown> = {
type: lineData['type'] || 'physical',
description: lineData['description'],
quantity: lineData['quantity'],
unitPrice: {
currency: lineData['unitPriceCurrency'],
value: lineData['unitPriceValue'],
},
totalAmount: {
currency: lineData['totalAmountCurrency'],
value: lineData['totalAmountValue'],
},
};
if (lineData['quantityUnit'])
orderLine['quantityUnit'] = lineData['quantityUnit'];
if (lineData['vatRate']) orderLine['vatRate'] = lineData['vatRate'];
if (lineData['vatAmountCurrency'] && lineData['vatAmountValue']) {
orderLine['vatAmount'] = {
currency: lineData['vatAmountCurrency'],
value: lineData['vatAmountValue'],
};
}
if (lineData['sku']) orderLine['sku'] = lineData['sku'];
if (
lineData['discountAmountCurrency'] &&
lineData['discountAmountValue']
) {
orderLine['discountAmount'] = {
currency: lineData['discountAmountCurrency'],
value: lineData['discountAmountValue'],
};
}
if (lineData['imageUrl']) orderLine['imageUrl'] = lineData['imageUrl'];
if (lineData['productUrl'])
orderLine['productUrl'] = lineData['productUrl'];
return orderLine;
});
paymentData['lines'] = lines;
}
if (propsValue.includeBillingAddress) {
const billingAddress: Record<string, unknown> = {};
if (propsValue.billingTitle)
billingAddress['title'] = propsValue.billingTitle;
if (propsValue.billingGivenName)
billingAddress['givenName'] = propsValue.billingGivenName;
if (propsValue.billingFamilyName)
billingAddress['familyName'] = propsValue.billingFamilyName;
if (propsValue.billingOrganizationName)
billingAddress['organizationName'] = propsValue.billingOrganizationName;
if (propsValue.billingStreetAndNumber)
billingAddress['streetAndNumber'] = propsValue.billingStreetAndNumber;
if (propsValue.billingStreetAdditional)
billingAddress['streetAdditional'] = propsValue.billingStreetAdditional;
if (propsValue.billingPostalCode)
billingAddress['postalCode'] = propsValue.billingPostalCode;
if (propsValue.billingEmail)
billingAddress['email'] = propsValue.billingEmail;
if (propsValue.billingPhone)
billingAddress['phone'] = propsValue.billingPhone;
if (propsValue.billingCity)
billingAddress['city'] = propsValue.billingCity;
if (propsValue.billingRegion)
billingAddress['region'] = propsValue.billingRegion;
if (propsValue.billingCountry)
billingAddress['country'] = propsValue.billingCountry;
if (Object.keys(billingAddress).length > 0) {
paymentData['billingAddress'] = billingAddress;
}
}
if (propsValue.includeShippingAddress) {
const shippingAddress: Record<string, unknown> = {};
if (propsValue.shippingTitle)
shippingAddress['title'] = propsValue.shippingTitle;
if (propsValue.shippingGivenName)
shippingAddress['givenName'] = propsValue.shippingGivenName;
if (propsValue.shippingFamilyName)
shippingAddress['familyName'] = propsValue.shippingFamilyName;
if (propsValue.shippingOrganizationName)
shippingAddress['organizationName'] =
propsValue.shippingOrganizationName;
if (propsValue.shippingStreetAndNumber)
shippingAddress['streetAndNumber'] = propsValue.shippingStreetAndNumber;
if (propsValue.shippingStreetAdditional)
shippingAddress['streetAdditional'] =
propsValue.shippingStreetAdditional;
if (propsValue.shippingPostalCode)
shippingAddress['postalCode'] = propsValue.shippingPostalCode;
if (propsValue.shippingEmail)
shippingAddress['email'] = propsValue.shippingEmail;
if (propsValue.shippingPhone)
shippingAddress['phone'] = propsValue.shippingPhone;
if (propsValue.shippingCity)
shippingAddress['city'] = propsValue.shippingCity;
if (propsValue.shippingRegion)
shippingAddress['region'] = propsValue.shippingRegion;
if (propsValue.shippingCountry)
shippingAddress['country'] = propsValue.shippingCountry;
if (Object.keys(shippingAddress).length > 0) {
paymentData['shippingAddress'] = shippingAddress;
}
}
if (propsValue.locale) {
paymentData['locale'] = propsValue.locale;
}
if (propsValue.method) {
paymentData['method'] = propsValue.method;
}
if (propsValue.restrictPaymentMethodsToCountry) {
paymentData['restrictPaymentMethodsToCountry'] =
propsValue.restrictPaymentMethodsToCountry;
}
if (propsValue.sequenceType) {
paymentData['sequenceType'] = propsValue.sequenceType;
}
if (propsValue.customerId) {
paymentData['customerId'] = propsValue.customerId;
}
if (propsValue.mandateId) {
paymentData['mandateId'] = propsValue.mandateId;
}
if (propsValue.captureMode) {
paymentData['captureMode'] = propsValue.captureMode;
}
if (propsValue.captureDelay) {
paymentData['captureDelay'] = propsValue.captureDelay;
}
const response = await mollieCommon.makeRequest(
apiKey,
HttpMethod.POST,
'/payments',
paymentData,
propsValue.testmode
);
return response;
},
});

View File

@@ -0,0 +1,77 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { HttpMethod } from '@activepieces/pieces-common';
import { mollieCommon } from '../common';
import { mollieAuth } from '../../index';
export const mollieSearchCustomer = createAction({
auth: mollieAuth,
name: 'search_customer',
displayName: 'Search Customer',
description: 'Retrieve a list of all customers',
props: {
from: Property.ShortText({
displayName: 'From Customer ID',
description: 'Start the result set from this customer ID onwards',
required: false,
}),
limit: Property.Number({
displayName: 'Limit',
description: 'Maximum number of customers to return (1-250, default: 50)',
required: false,
}),
sort: Property.StaticDropdown({
displayName: 'Sort Direction',
description: 'Sort customers by creation date',
required: false,
defaultValue: 'desc',
options: {
options: [
{ label: 'Newest first (Descending)', value: 'desc' },
{ label: 'Oldest first (Ascending)', value: 'asc' },
],
},
}),
testmode: Property.Checkbox({
displayName: 'Test Mode',
description: 'Whether to search in test mode',
required: false,
defaultValue: false,
}),
},
async run({ auth, propsValue }) {
const apiKey = auth;
const queryParams: Record<string, string> = {};
if (propsValue.from) {
queryParams['from'] = propsValue.from;
}
if (propsValue.limit) {
queryParams['limit'] = propsValue.limit.toString();
}
if (propsValue.sort) {
queryParams['sort'] = propsValue.sort;
}
if (propsValue.testmode !== undefined) {
queryParams['testmode'] = propsValue.testmode.toString();
}
const queryString = Object.keys(queryParams)
.map((key) => `${key}=${encodeURIComponent(queryParams[key])}`)
.join('&');
const url = queryString ? `/customers?${queryString}` : '/customers';
const response = await mollieCommon.makeRequest(
apiKey,
HttpMethod.GET,
url
);
return response;
},
});

View File

@@ -0,0 +1,87 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { HttpMethod } from '@activepieces/pieces-common';
import { mollieCommon } from '../common';
import { mollieAuth } from '../../index';
export const mollieSearchOrder = createAction({
auth: mollieAuth,
name: 'search_order',
displayName: 'Search Order',
description:
'⚠️ We no longer recommend using the Orders API. Please refer to the Payments API instead.\n\nSearches for orders in Mollie',
props: {
from: Property.ShortText({
displayName: 'From Order ID',
description: 'Start the result set from this order ID onwards',
required: false,
}),
limit: Property.Number({
displayName: 'Limit',
description: 'Maximum number of orders to return (1-250, default: 50)',
required: false,
}),
sort: Property.StaticDropdown({
displayName: 'Sort Direction',
description: 'Sort orders by creation date',
required: false,
defaultValue: 'desc',
options: {
options: [
{ label: 'Newest first (Descending)', value: 'desc' },
{ label: 'Oldest first (Ascending)', value: 'asc' },
],
},
}),
profileId: Property.ShortText({
displayName: 'Profile ID',
description: 'Profile ID to retrieve orders for (optional)',
required: false,
}),
testmode: Property.Checkbox({
displayName: 'Test Mode',
description: 'Whether to search in test mode',
required: false,
defaultValue: false,
}),
},
async run({ auth, propsValue }) {
const apiKey = auth;
const queryParams: Record<string, string> = {};
if (propsValue.from) {
queryParams['from'] = propsValue.from;
}
if (propsValue.limit) {
queryParams['limit'] = propsValue.limit.toString();
}
if (propsValue.sort) {
queryParams['sort'] = propsValue.sort;
}
if (propsValue.profileId) {
queryParams['profileId'] = propsValue.profileId;
}
if (propsValue.testmode !== undefined) {
queryParams['testmode'] = propsValue.testmode.toString();
}
const queryString = Object.keys(queryParams)
.map((key) => `${key}=${encodeURIComponent(queryParams[key])}`)
.join('&');
const url = queryString ? `/orders?${queryString}` : '/orders';
const response = await mollieCommon.makeRequest(
apiKey,
HttpMethod.GET,
url
);
return response;
},
});

View File

@@ -0,0 +1,86 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { HttpMethod } from '@activepieces/pieces-common';
import { mollieCommon } from '../common';
import { mollieAuth } from '../../index';
export const mollieSearchPayment = createAction({
auth: mollieAuth,
name: 'search_payment',
displayName: 'Search Payment',
description: 'Retrieve all payments created with the current website profile',
props: {
from: Property.ShortText({
displayName: 'From Payment ID',
description: 'Start the result set from this payment ID onwards',
required: false,
}),
limit: Property.Number({
displayName: 'Limit',
description: 'Maximum number of payments to return (1-250, default: 50)',
required: false,
}),
sort: Property.StaticDropdown({
displayName: 'Sort Direction',
description: 'Sort payments by creation date',
required: false,
defaultValue: 'desc',
options: {
options: [
{ label: 'Newest first (Descending)', value: 'desc' },
{ label: 'Oldest first (Ascending)', value: 'asc' },
],
},
}),
profileId: Property.ShortText({
displayName: 'Profile ID',
description: 'Profile ID to retrieve payments for (optional)',
required: false,
}),
testmode: Property.Checkbox({
displayName: 'Test Mode',
description: 'Whether to search in test mode',
required: false,
defaultValue: false,
}),
},
async run({ auth, propsValue }) {
const apiKey = auth;
const queryParams: Record<string, string> = {};
if (propsValue.from) {
queryParams['from'] = propsValue.from;
}
if (propsValue.limit) {
queryParams['limit'] = propsValue.limit.toString();
}
if (propsValue.sort) {
queryParams['sort'] = propsValue.sort;
}
if (propsValue.profileId) {
queryParams['profileId'] = propsValue.profileId;
}
if (propsValue.testmode !== undefined) {
queryParams['testmode'] = propsValue.testmode.toString();
}
const queryString = Object.keys(queryParams)
.map((key) => `${key}=${encodeURIComponent(queryParams[key])}`)
.join('&');
const url = queryString ? `/payments?${queryString}` : '/payments';
const response = await mollieCommon.makeRequest(
apiKey,
HttpMethod.GET,
url
);
return response;
},
});

View File

@@ -0,0 +1,120 @@
import {
httpClient,
HttpMethod,
HttpRequest,
AuthenticationType,
} from '@activepieces/pieces-common';
import { AppConnectionValueForAuthProperty } from '@activepieces/pieces-framework';
import { mollieAuth } from '../..';
export const mollieCommon = {
baseUrl: 'https://api.mollie.com/v2',
makeRequest: async <T = unknown>(
auth: AppConnectionValueForAuthProperty<typeof mollieAuth>,
method: HttpMethod,
url: string,
body?: unknown,
testmode?: boolean
): Promise<T> => {
const queryParams: Record<string, string> = {};
if (testmode !== undefined) {
queryParams['testmode'] = testmode.toString();
}
const request: HttpRequest = {
method,
url: `${mollieCommon.baseUrl}${url}`,
authentication: {
type: AuthenticationType.BEARER_TOKEN,
token: auth.secret_text,
},
body,
queryParams,
};
const response = await httpClient.sendRequest<T>(request);
return response.body;
},
};
export interface MollieAmount {
currency: string;
value: string;
}
export interface MollieAddress {
title?: string;
givenName: string;
familyName: string;
organizationName?: string;
streetAndNumber: string;
streetAdditional?: string;
postalCode: string;
email: string;
phone?: string;
city: string;
region?: string;
country: string;
}
export interface MollieOrderLine {
type?:
| 'physical'
| 'digital'
| 'shipping_fee'
| 'discount'
| 'store_credit'
| 'gift_card'
| 'surcharge';
name: string;
quantity: number;
unitPrice: MollieAmount;
totalAmount: MollieAmount;
vatRate?: string;
vatAmount?: MollieAmount;
sku?: string;
category?: 'meal' | 'eco' | 'gift' | 'sport_culture';
discountAmount?: MollieAmount;
imageUrl?: string;
productUrl?: string;
metadata?: Record<string, unknown>;
}
export interface MollieOrder {
resource?: string;
id?: string;
mode?: string;
orderNumber: string;
amount: MollieAmount;
amountRefunded?: MollieAmount;
amountCaptured?: MollieAmount;
redirectUrl?: string;
cancelUrl?: string;
webhookUrl?: string;
billingAddress: MollieAddress;
shippingAddress?: MollieAddress;
locale: string;
method?: string;
shopperCountryMustMatchBillingCountry?: boolean;
metadata?: Record<string, unknown>;
status?: string;
isCancelable?: boolean;
profileId?: string;
createdAt?: string;
authorizedAt?: string;
paidAt?: string;
canceledAt?: string;
expiresAt?: string;
expiredAt?: string;
completedAt?: string;
consumerDateOfBirth?: string;
testmode?: boolean;
lines: MollieOrderLine[];
_links?: {
self?: { href: string; type: string };
checkout?: { href: string; type: string };
dashboard?: { href: string; type: string };
documentation?: { href: string; type: string };
};
}

View File

@@ -0,0 +1,273 @@
import {
createTrigger,
TriggerStrategy,
PiecePropValueSchema,
Property,
AppConnectionValueForAuthProperty,
} from '@activepieces/pieces-framework';
import { HttpMethod } from '@activepieces/pieces-common';
import {
DedupeStrategy,
Polling,
pollingHelper,
} from '@activepieces/pieces-common';
import { mollieCommon } from '../common';
import { mollieAuth } from '../../index';
import dayjs from 'dayjs';
interface MollieChargebackResponse {
count: number;
_embedded?: {
chargebacks?: Array<{
id: string;
resource: string;
mode: string;
amount: {
value: string;
currency: string;
};
settlementAmount?: {
value: string;
currency: string;
};
reason?: string;
reversedAt?: string;
paymentId: string;
createdAt: string;
_links?: Record<string, unknown>;
}>;
};
_links?: {
self?: { href: string; type: string };
previous?: { href: string; type: string };
next?: { href: string; type: string };
documentation?: { href: string; type: string };
};
}
const polling: Polling<
AppConnectionValueForAuthProperty<typeof mollieAuth>,
{ paymentId: string }
> = {
strategy: DedupeStrategy.TIMEBASED,
items: async ({ auth, lastFetchEpochMS, propsValue }) => {
const apiKey = auth;
const { paymentId } = propsValue;
const isTest = lastFetchEpochMS === 0;
let from: string | undefined;
let hasMorePages = true;
let stopFetching = false;
const chargebacks: Array<{
id: string;
resource: string;
mode: string;
amount: {
value: string;
currency: string;
};
settlementAmount?: {
value: string;
currency: string;
};
reason?: string;
reversedAt?: string;
paymentId: string;
createdAt: string;
_links?: Record<string, unknown>;
}> = [];
do {
const limit = isTest ? 10 : 250;
const url = from
? `/payments/${paymentId}/chargebacks?limit=${limit}&from=${from}`
: `/payments/${paymentId}/chargebacks?limit=${limit}`;
const response = await mollieCommon.makeRequest<MollieChargebackResponse>(
apiKey,
HttpMethod.GET,
url
);
if (
!response._embedded ||
!response._embedded.chargebacks ||
!response._embedded.chargebacks.length
) {
break;
}
const items = response._embedded.chargebacks;
for (const chargeback of items) {
const createdAt = dayjs(chargeback.createdAt).valueOf();
if (createdAt < lastFetchEpochMS) {
stopFetching = true;
break;
}
chargebacks.push(chargeback);
}
if (stopFetching || isTest) break;
if (response._links?.next) {
const nextUrl = new URL(response._links.next.href);
from = nextUrl.searchParams.get('from') || undefined;
hasMorePages = true;
} else {
hasMorePages = false;
}
} while (hasMorePages);
return chargebacks.map((chargeback) => ({
epochMilliSeconds: dayjs(chargeback.createdAt).valueOf(),
data: chargeback,
}));
},
};
export const mollieNewChargeback = createTrigger({
auth: mollieAuth,
name: 'new_chargeback',
displayName: 'New Payment Chargeback',
description: 'Fires upon a payment chargeback event',
type: TriggerStrategy.POLLING,
props: {
paymentId: Property.Dropdown({
auth: mollieAuth,
displayName: 'Payment ID',
description: 'The payment to monitor for chargebacks',
required: true,
refreshers: [],
options: async ({ auth }) => {
if (!auth) {
return {
disabled: true,
options: [],
placeholder: 'Please authenticate first',
};
}
try {
const apiKey = auth;
const response = await mollieCommon.makeRequest(
apiKey,
HttpMethod.GET,
'/payments?limit=250&sort=desc'
);
const paymentsResponse = response as {
_embedded?: {
payments?: Array<{
id: string;
description: string;
amount: { value: string; currency: string };
status: string;
createdAt: string;
}>;
};
};
if (!paymentsResponse._embedded?.payments) {
return {
disabled: true,
options: [],
placeholder: 'No payments found',
};
}
const options = paymentsResponse._embedded.payments.map(
(payment) => ({
label: `${payment.description || payment.id} - ${
payment.amount.value
} ${payment.amount.currency} (${payment.status})`,
value: payment.id,
})
);
return {
disabled: false,
options,
placeholder: 'Select a payment',
};
} catch (error) {
return {
disabled: true,
options: [],
placeholder: 'Failed to load payments',
};
}
},
}),
},
sampleData: {
resource: 'chargeback',
id: 'chb_n9z0tp',
mode: 'live',
amount: {
value: '43.38',
currency: 'USD',
},
settlementAmount: {
value: '37.14',
currency: 'EUR',
},
reason: 'duplicate',
reversedAt: null,
paymentId: 'tr_5B8cwPMGnU6qLbRvo7qEZo',
createdAt: '2018-03-14T17:00:52.0Z',
_links: {
self: {
href: 'https://api.mollie.com/v2/payments/tr_5B8cwPMGnU6qLbRvo7qEZo/chargebacks/chb_n9z0tp',
type: 'application/hal+json',
},
payment: {
href: 'https://api.mollie.com/v2/payments/tr_5B8cwPMGnU6qLbRvo7qEZo',
type: 'application/hal+json',
},
documentation: {
href: 'https://docs.mollie.com/reference/get-chargeback',
type: 'text/html',
},
},
},
async onEnable(context) {
await pollingHelper.onEnable(polling, {
auth: context.auth,
store: context.store,
propsValue: context.propsValue,
});
},
async onDisable(context) {
await pollingHelper.onDisable(polling, {
auth: context.auth,
store: context.store,
propsValue: context.propsValue,
});
},
async run(context) {
return await pollingHelper.poll(polling, {
auth: context.auth,
store: context.store,
propsValue: context.propsValue,
files: context.files,
});
},
async test(context) {
return await pollingHelper.test(polling, {
auth: context.auth,
store: context.store,
propsValue: context.propsValue,
files: context.files,
});
},
});

View File

@@ -0,0 +1,187 @@
import {
createTrigger,
TriggerStrategy,
PiecePropValueSchema,
AppConnectionValueForAuthProperty,
} from '@activepieces/pieces-framework';
import { HttpMethod } from '@activepieces/pieces-common';
import {
DedupeStrategy,
Polling,
pollingHelper,
} from '@activepieces/pieces-common';
import { mollieCommon } from '../common';
import { mollieAuth } from '../../index';
import dayjs from 'dayjs';
interface MollieCustomerResponse {
count: number;
_embedded?: {
customers?: Array<{
id: string;
resource: string;
mode: string;
name: string;
email: string;
locale?: string;
metadata?: Record<string, unknown>;
createdAt: string;
_links?: {
self?: { href: string; type: string };
dashboard?: { href: string; type: string };
documentation?: { href: string; type: string };
};
}>;
};
_links?: {
self?: { href: string; type: string };
previous?: { href: string; type: string };
next?: { href: string; type: string };
documentation?: { href: string; type: string };
};
}
const polling: Polling<
AppConnectionValueForAuthProperty<typeof mollieAuth>,
Record<string, unknown>
> = {
strategy: DedupeStrategy.TIMEBASED,
items: async ({ auth, lastFetchEpochMS }) => {
const apiKey = auth;
const isTest = lastFetchEpochMS === 0;
let from: string | undefined;
let hasMorePages = true;
let stopFetching = false;
const customers: Array<{
id: string;
resource: string;
mode: string;
name: string;
email: string;
locale?: string;
metadata?: Record<string, unknown>;
createdAt: string;
_links?: Record<string, unknown>;
}> = [];
do {
const limit = isTest ? 10 : 250;
const url = from
? `/customers?sort=desc&limit=${limit}&from=${from}`
: `/customers?sort=desc&limit=${limit}`;
const response = await mollieCommon.makeRequest<MollieCustomerResponse>(
apiKey,
HttpMethod.GET,
url
);
if (
!response._embedded ||
!response._embedded.customers ||
!response._embedded.customers.length
) {
break;
}
const items = response._embedded.customers;
for (const customer of items) {
const createdAt = dayjs(customer.createdAt).valueOf();
if (createdAt < lastFetchEpochMS) {
stopFetching = true;
break;
}
customers.push(customer);
}
if (stopFetching || isTest) break;
if (response._links?.next) {
const nextUrl = new URL(response._links.next.href);
from = nextUrl.searchParams.get('from') || undefined;
hasMorePages = true;
} else {
hasMorePages = false;
}
} while (hasMorePages);
return customers.map((customer) => ({
epochMilliSeconds: dayjs(customer.createdAt).valueOf(),
data: customer,
}));
},
};
export const mollieNewCustomer = createTrigger({
auth: mollieAuth,
name: 'new_customer',
displayName: 'New Customer',
description: 'Fires when a new customer is created in Mollie',
type: TriggerStrategy.POLLING,
props: {},
sampleData: {
resource: 'customer',
id: 'cst_8wmqcHMN4U',
mode: 'live',
name: 'John Doe',
email: 'customer@example.org',
locale: 'nl_NL',
metadata: null,
createdAt: '2023-04-06T13:10:19.0Z',
_links: {
self: {
href: 'https://api.mollie.com/v2/customers/cst_8wmqcHMN4U',
type: 'application/hal+json',
},
dashboard: {
href: 'https://www.mollie.com/dashboard/org_13514547/customers/cst_8wmqcHMN4U',
type: 'text/html',
},
documentation: {
href: 'https://docs.mollie.com/reference/get-customer',
type: 'text/html',
},
},
},
async onEnable(context) {
await pollingHelper.onEnable(polling, {
auth: context.auth,
store: context.store,
propsValue: context.propsValue,
});
},
async onDisable(context) {
await pollingHelper.onDisable(polling, {
auth: context.auth,
store: context.store,
propsValue: context.propsValue,
});
},
async run(context) {
return await pollingHelper.poll(polling, {
auth: context.auth,
store: context.store,
propsValue: context.propsValue,
files: context.files,
});
},
async test(context) {
return await pollingHelper.test(polling, {
auth: context.auth,
store: context.store,
propsValue: context.propsValue,
files: context.files,
});
},
});

View File

@@ -0,0 +1,165 @@
import { createTrigger, TriggerStrategy } from '@activepieces/pieces-framework';
import { HttpMethod } from '@activepieces/pieces-common';
import { mollieCommon } from '../common';
import { mollieAuth } from '../../index';
const TRIGGER_KEY = 'mollie_new_invoice_webhook';
export const mollieNewInvoice = createTrigger({
auth: mollieAuth,
name: 'new_invoice',
displayName: 'New Invoice',
description: 'Fires when a new invoice is generated',
type: TriggerStrategy.WEBHOOK,
props: {},
sampleData: {
id: 'inv_FrvewDA3Pr',
resource: 'invoice',
reference: 'INV-2024-001',
vatNumber: 'NL123456789B01',
status: 'open',
issuedAt: '2024-01-15T09:00:00+00:00',
paidAt: null,
dueAt: '2024-02-14T09:00:00+00:00',
netAmount: {
value: '100.00',
currency: 'EUR',
},
vatAmount: {
value: '21.00',
currency: 'EUR',
},
grossAmount: {
value: '121.00',
currency: 'EUR',
},
_links: {
self: {
href: 'https://api.mollie.com/v2/invoices/inv_FrvewDA3Pr',
type: 'application/hal+json',
},
pdf: {
href: 'https://api.mollie.com/v2/invoices/inv_FrvewDA3Pr.pdf',
type: 'application/pdf',
},
},
},
async onEnable(context) {
const webhookUrl = context.webhookUrl;
const webhookData = {
name: 'Activepieces Invoice Webhook',
url: webhookUrl,
eventTypes: 'sales-invoice.created',
};
const response = await mollieCommon.makeRequest(
context.auth,
HttpMethod.POST,
'/webhooks',
webhookData
);
const webhook = response as { id: string };
await context.store.put<string>(TRIGGER_KEY, webhook.id);
},
async onDisable(context) {
const webhookId = await context.store.get<string>(TRIGGER_KEY);
if (webhookId) {
try {
await mollieCommon.makeRequest(
context.auth,
HttpMethod.DELETE,
`/webhooks/${webhookId}`
);
} catch (error) {
console.warn(`Failed to delete Mollie webhook ${webhookId}:`, error);
}
}
await context.store.delete(TRIGGER_KEY);
},
async run(context) {
const payload = context.payload.body as {
id: string;
};
if (payload.id) {
try {
const invoice = await mollieCommon.makeRequest(
context.auth,
HttpMethod.GET,
`/invoices/${payload.id}`
);
return [invoice];
} catch (error) {
return [payload];
}
}
return [];
},
async test(context) {
try {
const response = await mollieCommon.makeRequest(
context.auth,
HttpMethod.GET,
'/invoices?limit=1'
);
const invoices = response as {
_embedded?: { invoices?: Record<string, unknown>[] };
};
if (invoices._embedded?.invoices?.length) {
return invoices._embedded.invoices;
}
} catch (error) {
console.error('Failed to fetch invoices:', error);
}
return [
{
id: 'inv_FrvewDA3Pr',
resource: 'invoice',
reference: 'INV-2024-001',
vatNumber: 'NL123456789B01',
status: 'open',
issuedAt: '2024-01-15T09:00:00+00:00',
paidAt: null,
dueAt: '2024-02-14T09:00:00+00:00',
netAmount: {
value: '100.00',
currency: 'EUR',
},
vatAmount: {
value: '21.00',
currency: 'EUR',
},
grossAmount: {
value: '121.00',
currency: 'EUR',
},
_links: {
self: {
href: 'https://api.mollie.com/v2/invoices/inv_FrvewDA3Pr',
type: 'application/hal+json',
},
pdf: {
href: 'https://api.mollie.com/v2/invoices/inv_FrvewDA3Pr.pdf',
type: 'application/pdf',
},
},
},
];
},
});

View File

@@ -0,0 +1,249 @@
import {
createTrigger,
TriggerStrategy,
PiecePropValueSchema,
AppConnectionValueForAuthProperty,
} from '@activepieces/pieces-framework';
import { HttpMethod } from '@activepieces/pieces-common';
import {
DedupeStrategy,
Polling,
pollingHelper,
} from '@activepieces/pieces-common';
import { mollieCommon } from '../common';
import { mollieAuth } from '../../index';
import dayjs from 'dayjs';
interface MollieOrderResponse {
count: number;
_embedded?: {
orders?: Array<{
id: string;
resource: string;
mode: string;
orderNumber: string;
amount: {
value: string;
currency: string;
};
status: string;
isCancelable: boolean;
metadata?: Record<string, unknown>;
createdAt: string;
expiresAt?: string;
paidAt?: string;
authorizedAt?: string;
canceledAt?: string;
completedAt?: string;
billingAddress?: Record<string, unknown>;
shippingAddress?: Record<string, unknown>;
redirectUrl?: string;
webhookUrl?: string;
locale: string;
method?: string;
profileId: string;
_links?: Record<string, unknown>;
}>;
};
_links?: {
self?: { href: string; type: string };
previous?: { href: string; type: string };
next?: { href: string; type: string };
documentation?: { href: string; type: string };
};
}
const polling: Polling<
AppConnectionValueForAuthProperty<typeof mollieAuth>,
Record<string, unknown>
> = {
strategy: DedupeStrategy.TIMEBASED,
items: async ({ auth, lastFetchEpochMS }) => {
const apiKey = auth;
const isTest = lastFetchEpochMS === 0;
let from: string | undefined;
let hasMorePages = true;
let stopFetching = false;
const orders: Array<{
id: string;
resource: string;
mode: string;
orderNumber: string;
amount: {
value: string;
currency: string;
};
status: string;
isCancelable: boolean;
metadata?: Record<string, unknown>;
createdAt: string;
expiresAt?: string;
paidAt?: string;
authorizedAt?: string;
canceledAt?: string;
completedAt?: string;
billingAddress?: Record<string, unknown>;
shippingAddress?: Record<string, unknown>;
redirectUrl?: string;
webhookUrl?: string;
locale: string;
method?: string;
profileId: string;
_links?: Record<string, unknown>;
}> = [];
do {
const limit = isTest ? 10 : 250;
const url = from
? `/orders?sort=desc&limit=${limit}&from=${from}`
: `/orders?sort=desc&limit=${limit}`;
const response = await mollieCommon.makeRequest<MollieOrderResponse>(
apiKey,
HttpMethod.GET,
url
);
if (
!response._embedded ||
!response._embedded.orders ||
!response._embedded.orders.length
) {
break;
}
const items = response._embedded.orders;
for (const order of items) {
const createdAt = dayjs(order.createdAt).valueOf();
if (createdAt < lastFetchEpochMS) {
stopFetching = true;
break;
}
orders.push(order);
}
if (stopFetching || isTest) break;
if (response._links?.next) {
const nextUrl = new URL(response._links.next.href);
from = nextUrl.searchParams.get('from') || undefined;
hasMorePages = true;
} else {
hasMorePages = false;
}
} while (hasMorePages);
return orders.map((order) => ({
epochMilliSeconds: dayjs(order.createdAt).valueOf(),
data: order,
}));
},
};
export const mollieNewOrder = createTrigger({
auth: mollieAuth,
name: 'new_order',
displayName: 'New Order',
description: 'Fires when a new order is created in Mollie',
type: TriggerStrategy.POLLING,
props: {},
sampleData: {
resource: 'order',
id: 'ord_pbjz8x',
mode: 'live',
orderNumber: '18475',
amount: {
value: '1027.99',
currency: 'EUR',
},
status: 'created',
isCancelable: true,
metadata: {
order_id: '18475',
},
createdAt: '2018-08-02T09:29:56+00:00',
expiresAt: '2018-08-30T09:29:56+00:00',
billingAddress: {
organizationName: 'Organization Name LTD.',
streetAndNumber: 'Keizersgracht 313',
postalCode: '1016 EE',
city: 'Amsterdam',
country: 'nl',
givenName: 'Luke',
familyName: 'Skywalker',
email: 'luke@skywalker.com',
},
shippingAddress: {
organizationName: 'Organization Name LTD.',
streetAndNumber: 'Keizersgracht 313',
postalCode: '1016 EE',
city: 'Amsterdam',
country: 'nl',
givenName: 'Luke',
familyName: 'Skywalker',
email: 'luke@skywalker.com',
},
locale: 'nl_NL',
method: 'ideal',
profileId: 'pfl_URR55HPMGx',
_links: {
self: {
href: 'https://api.mollie.com/v2/orders/ord_pbjz8x',
type: 'application/hal+json',
},
checkout: {
href: 'https://www.mollie.com/checkout/order/pbjz8x',
type: 'text/html',
},
dashboard: {
href: 'https://www.mollie.com/dashboard/org_12345678/orders/ord_pbjz8x',
type: 'text/html',
},
documentation: {
href: 'https://docs.mollie.com/reference/get-order',
type: 'text/html',
},
},
},
async onEnable(context) {
await pollingHelper.onEnable(polling, {
auth: context.auth,
store: context.store,
propsValue: context.propsValue,
});
},
async onDisable(context) {
await pollingHelper.onDisable(polling, {
auth: context.auth,
store: context.store,
propsValue: context.propsValue,
});
},
async run(context) {
return await pollingHelper.poll(polling, {
auth: context.auth,
store: context.store,
propsValue: context.propsValue,
files: context.files,
});
},
async test(context) {
return await pollingHelper.test(polling, {
auth: context.auth,
store: context.store,
propsValue: context.propsValue,
files: context.files,
});
},
});

View File

@@ -0,0 +1,227 @@
import {
createTrigger,
TriggerStrategy,
PiecePropValueSchema,
AppConnectionValueForAuthProperty,
} from '@activepieces/pieces-framework';
import { HttpMethod } from '@activepieces/pieces-common';
import {
DedupeStrategy,
Polling,
pollingHelper,
} from '@activepieces/pieces-common';
import { mollieCommon } from '../common';
import { mollieAuth } from '../../index';
import dayjs from 'dayjs';
interface MolliePaymentResponse {
count: number;
_embedded?: {
payments?: Array<{
id: string;
resource: string;
mode: string;
status: string;
isCancelable: boolean;
sequenceType: string;
amount: {
value: string;
currency: string;
};
description: string;
method?: string;
metadata?: Record<string, unknown>;
details?: Record<string, unknown>;
profileId: string;
redirectUrl?: string;
webhookUrl?: string;
createdAt: string;
expiresAt?: string;
paidAt?: string;
canceledAt?: string;
expiredAt?: string;
failedAt?: string;
_links?: Record<string, unknown>;
}>;
};
_links?: {
self?: { href: string; type: string };
previous?: { href: string; type: string };
next?: { href: string; type: string };
documentation?: { href: string; type: string };
};
}
const polling: Polling<
AppConnectionValueForAuthProperty<typeof mollieAuth>,
Record<string, unknown>
> = {
strategy: DedupeStrategy.TIMEBASED,
items: async ({ auth, lastFetchEpochMS }) => {
const apiKey = auth;
const isTest = lastFetchEpochMS === 0;
let from: string | undefined;
let hasMorePages = true;
let stopFetching = false;
const payments: Array<{
id: string;
resource: string;
mode: string;
status: string;
isCancelable: boolean;
sequenceType: string;
amount: {
value: string;
currency: string;
};
description: string;
method?: string;
metadata?: Record<string, unknown>;
details?: Record<string, unknown>;
profileId: string;
redirectUrl?: string;
webhookUrl?: string;
createdAt: string;
expiresAt?: string;
paidAt?: string;
canceledAt?: string;
expiredAt?: string;
failedAt?: string;
_links?: Record<string, unknown>;
}> = [];
do {
const limit = isTest ? 10 : 250;
const url = from
? `/payments?sort=desc&limit=${limit}&from=${from}`
: `/payments?sort=desc&limit=${limit}`;
const response = await mollieCommon.makeRequest<MolliePaymentResponse>(
apiKey,
HttpMethod.GET,
url
);
if (
!response._embedded ||
!response._embedded.payments ||
!response._embedded.payments.length
) {
break;
}
const items = response._embedded.payments;
for (const payment of items) {
const createdAt = dayjs(payment.createdAt).valueOf();
if (createdAt < lastFetchEpochMS) {
stopFetching = true;
break;
}
payments.push(payment);
}
if (stopFetching || isTest) break;
if (response._links?.next) {
const nextUrl = new URL(response._links.next.href);
from = nextUrl.searchParams.get('from') || undefined;
hasMorePages = true;
} else {
hasMorePages = false;
}
} while (hasMorePages);
return payments.map((payment) => ({
epochMilliSeconds: dayjs(payment.createdAt).valueOf(),
data: payment,
}));
},
};
export const mollieNewPayment = createTrigger({
auth: mollieAuth,
name: 'new_payment',
displayName: 'New Payment',
description: 'Fires when a new payment is created/received',
type: TriggerStrategy.POLLING,
props: {},
sampleData: {
resource: 'payment',
id: 'tr_5B8cwPMGnU6qLbRvo7qEZo',
mode: 'live',
status: 'open',
isCancelable: false,
sequenceType: 'oneoff',
amount: {
value: '75.00',
currency: 'GBP',
},
description: 'Order #12345',
method: 'ideal',
metadata: null,
details: null,
profileId: 'pfl_QkEhN94Ba',
redirectUrl: 'https://webshop.example.org/order/12345/',
createdAt: '2024-02-12T11:58:35.0Z',
expiresAt: '2024-02-12T12:13:35.0Z',
_links: {
self: {
href: 'https://api.mollie.com/v2/payments/tr_5B8cwPMGnU6qLbRvo7qEZo',
type: 'application/hal+json',
},
checkout: {
href: 'https://www.mollie.com/checkout/issuer/select/ideal/7UhSN1zuXS',
type: 'text/html',
},
dashboard: {
href: 'https://www.mollie.com/dashboard/org_12345678/payments/tr_5B8cwPMGnU6qLbRvo7qEZo',
type: 'text/html',
},
documentation: {
href: 'https://docs.mollie.com/reference/get-payment',
type: 'text/html',
},
},
},
async onEnable(context) {
await pollingHelper.onEnable(polling, {
auth: context.auth,
store: context.store,
propsValue: context.propsValue,
});
},
async onDisable(context) {
await pollingHelper.onDisable(polling, {
auth: context.auth,
store: context.store,
propsValue: context.propsValue,
});
},
async run(context) {
return await pollingHelper.poll(polling, {
auth: context.auth,
store: context.store,
propsValue: context.propsValue,
files: context.files,
});
},
async test(context) {
return await pollingHelper.test(polling, {
auth: context.auth,
store: context.store,
propsValue: context.propsValue,
files: context.files,
});
},
});

View File

@@ -0,0 +1,266 @@
import {
createTrigger,
TriggerStrategy,
PiecePropValueSchema,
Property,
AppConnectionValueForAuthProperty,
} from '@activepieces/pieces-framework';
import { HttpMethod } from '@activepieces/pieces-common';
import {
DedupeStrategy,
Polling,
pollingHelper,
} from '@activepieces/pieces-common';
import { mollieCommon } from '../common';
import { mollieAuth } from '../../index';
import dayjs from 'dayjs';
interface MollieRefundResponse {
count: number;
_embedded?: {
refunds?: Array<{
id: string;
resource: string;
mode: string;
description: string;
amount: {
value: string;
currency: string;
};
status: string;
metadata?: Record<string, unknown>;
paymentId: string;
createdAt: string;
_links?: Record<string, unknown>;
}>;
};
_links?: {
self?: { href: string; type: string };
previous?: { href: string; type: string };
next?: { href: string; type: string };
documentation?: { href: string; type: string };
};
}
const polling: Polling<
AppConnectionValueForAuthProperty<typeof mollieAuth>,
{ paymentId: string }
> = {
strategy: DedupeStrategy.TIMEBASED,
items: async ({ auth, lastFetchEpochMS, propsValue }) => {
const apiKey = auth;
const { paymentId } = propsValue;
const isTest = lastFetchEpochMS === 0;
let from: string | undefined;
let hasMorePages = true;
let stopFetching = false;
const refunds: Array<{
id: string;
resource: string;
mode: string;
description: string;
amount: {
value: string;
currency: string;
};
status: string;
metadata?: Record<string, unknown>;
paymentId: string;
createdAt: string;
_links?: Record<string, unknown>;
}> = [];
do {
const limit = isTest ? 10 : 250;
const url = from
? `/payments/${paymentId}/refunds?limit=${limit}&from=${from}`
: `/payments/${paymentId}/refunds?limit=${limit}`;
const response = await mollieCommon.makeRequest<MollieRefundResponse>(
apiKey,
HttpMethod.GET,
url
);
if (
!response._embedded ||
!response._embedded.refunds ||
!response._embedded.refunds.length
) {
break;
}
const items = response._embedded.refunds;
for (const refund of items) {
const createdAt = dayjs(refund.createdAt).valueOf();
if (createdAt < lastFetchEpochMS) {
stopFetching = true;
break;
}
refunds.push(refund);
}
if (stopFetching || isTest) break;
if (response._links?.next) {
const nextUrl = new URL(response._links.next.href);
from = nextUrl.searchParams.get('from') || undefined;
hasMorePages = true;
} else {
hasMorePages = false;
}
} while (hasMorePages);
return refunds.map((refund) => ({
epochMilliSeconds: dayjs(refund.createdAt).valueOf(),
data: refund,
}));
},
};
export const mollieNewRefund = createTrigger({
auth: mollieAuth,
name: 'new_refund',
displayName: 'New Refund',
description: 'Fires when a payment refund is created',
type: TriggerStrategy.POLLING,
props: {
paymentId: Property.Dropdown({
auth: mollieAuth,
displayName: 'Payment ID',
description: 'The payment to monitor for refunds',
required: true,
refreshers: [],
options: async ({ auth }) => {
if (!auth) {
return {
disabled: true,
options: [],
placeholder: 'Please authenticate first',
};
}
try {
const apiKey = auth;
const response = await mollieCommon.makeRequest(
apiKey,
HttpMethod.GET,
'/payments?limit=250&sort=desc'
);
const paymentsResponse = response as {
_embedded?: {
payments?: Array<{
id: string;
description: string;
amount: { value: string; currency: string };
status: string;
createdAt: string;
}>;
};
};
if (!paymentsResponse._embedded?.payments) {
return {
disabled: true,
options: [],
placeholder: 'No payments found',
};
}
const options = paymentsResponse._embedded.payments.map(
(payment) => ({
label: `${payment.description || payment.id} - ${
payment.amount.value
} ${payment.amount.currency} (${payment.status})`,
value: payment.id,
})
);
return {
disabled: false,
options,
placeholder: 'Select a payment',
};
} catch (error) {
return {
disabled: true,
options: [],
placeholder: 'Failed to load payments',
};
}
},
}),
},
sampleData: {
resource: 'refund',
id: 're_4qqhO89gsT',
mode: 'live',
description: 'Order',
amount: {
currency: 'EUR',
value: '5.95',
},
status: 'pending',
metadata: {
bookkeeping_id: 12345,
},
paymentId: 'tr_5B8cwPMGnU6qLbRvo7qEZo',
createdAt: '2023-03-14T17:09:02.0Z',
_links: {
self: {
href: 'https://api.mollie.com/v2/refunds/re_4qqhO89gsT',
type: 'application/hal+json',
},
payment: {
href: 'https://api.mollie.com/v2/payments/tr_5B8cwPMGnU6qLbRvo7qEZo',
type: 'application/hal+json',
},
documentation: {
href: 'https://docs.mollie.com/reference/get-refund',
type: 'text/html',
},
},
},
async onEnable(context) {
await pollingHelper.onEnable(polling, {
auth: context.auth,
store: context.store,
propsValue: context.propsValue,
});
},
async onDisable(context) {
await pollingHelper.onDisable(polling, {
auth: context.auth,
store: context.store,
propsValue: context.propsValue,
});
},
async run(context) {
return await pollingHelper.poll(polling, {
auth: context.auth,
store: context.store,
propsValue: context.propsValue,
files: context.files,
});
},
async test(context) {
return await pollingHelper.test(polling, {
auth: context.auth,
store: context.store,
propsValue: context.propsValue,
files: context.files,
});
},
});

View File

@@ -0,0 +1,258 @@
import {
createTrigger,
TriggerStrategy,
PiecePropValueSchema,
AppConnectionValueForAuthProperty,
} from '@activepieces/pieces-framework';
import { HttpMethod } from '@activepieces/pieces-common';
import {
DedupeStrategy,
Polling,
pollingHelper,
} from '@activepieces/pieces-common';
import { mollieCommon } from '../common';
import { mollieAuth } from '../../index';
import dayjs from 'dayjs';
interface MollieSettlementResponse {
count: number;
_embedded?: {
settlements?: Array<{
id: string;
resource: string;
reference: string;
createdAt: string;
settledAt?: string;
status: string;
amount: {
value: string;
currency: string;
};
periods: Record<string, unknown>;
invoiceId?: string;
_links?: Record<string, unknown>;
}>;
};
_links?: {
self?: { href: string; type: string };
previous?: { href: string; type: string };
next?: { href: string; type: string };
documentation?: { href: string; type: string };
};
}
const polling: Polling<
AppConnectionValueForAuthProperty<typeof mollieAuth>,
Record<string, unknown>
> = {
strategy: DedupeStrategy.TIMEBASED,
items: async ({ auth, lastFetchEpochMS }) => {
const apiKey = auth;
const isTest = lastFetchEpochMS === 0;
let from: string | undefined;
let hasMorePages = true;
let stopFetching = false;
const settlements: Array<{
id: string;
resource: string;
reference: string;
createdAt: string;
settledAt?: string;
status: string;
amount: {
value: string;
currency: string;
};
periods: Record<string, unknown>;
invoiceId?: string;
_links?: Record<string, unknown>;
}> = [];
do {
const limit = isTest ? 10 : 250;
const url = from
? `/settlements?limit=${limit}&from=${from}`
: `/settlements?limit=${limit}`;
const response = await mollieCommon.makeRequest<MollieSettlementResponse>(
apiKey,
HttpMethod.GET,
url
);
if (
!response._embedded ||
!response._embedded.settlements ||
!response._embedded.settlements.length
) {
break;
}
const items = response._embedded.settlements;
for (const settlement of items) {
const createdAt = dayjs(settlement.createdAt).valueOf();
if (createdAt < lastFetchEpochMS) {
stopFetching = true;
break;
}
settlements.push(settlement);
}
if (stopFetching || isTest) break;
if (response._links?.next) {
const nextUrl = new URL(response._links.next.href);
from = nextUrl.searchParams.get('from') || undefined;
hasMorePages = true;
} else {
hasMorePages = false;
}
} while (hasMorePages);
return settlements.map((settlement) => ({
epochMilliSeconds: dayjs(settlement.createdAt).valueOf(),
data: settlement,
}));
},
};
export const mollieNewSettlement = createTrigger({
auth: mollieAuth,
name: 'new_settlement',
displayName: 'New Settlement',
description: 'Fires upon a new settlement event (e.g. payout)',
type: TriggerStrategy.POLLING,
props: {},
sampleData: {
resource: 'settlement',
id: 'stl_jDk30akdN',
reference: '1234567.1804.03',
createdAt: '2018-04-06T06:00:01.0Z',
settledAt: '2018-04-06T09:41:44.0Z',
status: 'paidout',
amount: {
value: '39.75',
currency: 'EUR',
},
periods: {
'2018': {
'04': {
revenue: [
{
description: 'iDEAL',
method: 'ideal',
count: 6,
amountNet: {
value: '86.1000',
currency: 'EUR',
},
amountVat: null,
amountGross: {
value: '86.1000',
currency: 'EUR',
},
},
],
costs: [
{
description: 'iDEAL',
method: 'ideal',
count: 6,
rate: {
fixed: {
value: '0.3500',
currency: 'EUR',
},
percentage: null,
},
amountNet: {
value: '2.1000',
currency: 'EUR',
},
amountVat: {
value: '0.4410',
currency: 'EUR',
},
amountGross: {
value: '2.5410',
currency: 'EUR',
},
},
],
},
},
},
invoiceId: 'inv_FrvewDA3Pr',
_links: {
self: {
href: 'https://api.mollie.com/v2/settlements/stl_jDk30akdN',
type: 'application/hal+json',
},
payments: {
href: 'https://api.mollie.com/v2/settlements/stl_jDk30akdN/payments',
type: 'application/hal+json',
},
refunds: {
href: 'https://api.mollie.com/v2/settlements/stl_jDk30akdN/refunds',
type: 'application/hal+json',
},
chargebacks: {
href: 'https://api.mollie.com/v2/settlements/stl_jDk30akdN/chargebacks',
type: 'application/hal+json',
},
captures: {
href: 'https://api.mollie.com/v2/settlements/stl_jDk30akdN/captures',
type: 'application/hal+json',
},
invoice: {
href: 'https://api.mollie.com/v2/invoices/inv_FrvewDA3Pr',
type: 'application/hal+json',
},
documentation: {
href: 'https://docs.mollie.com/reference/get-settlement',
type: 'text/html',
},
},
},
async onEnable(context) {
await pollingHelper.onEnable(polling, {
auth: context.auth,
store: context.store,
propsValue: context.propsValue,
});
},
async onDisable(context) {
await pollingHelper.onDisable(polling, {
auth: context.auth,
store: context.store,
propsValue: context.propsValue,
});
},
async run(context) {
return await pollingHelper.poll(polling, {
auth: context.auth,
store: context.store,
propsValue: context.propsValue,
files: context.files,
});
},
async test(context) {
return await pollingHelper.test(polling, {
auth: context.auth,
store: context.store,
propsValue: context.propsValue,
files: context.files,
});
},
});

View File

@@ -0,0 +1,20 @@
{
"extends": "../../../../tsconfig.base.json",
"compilerOptions": {
"module": "commonjs",
"forceConsistentCasingInFileNames": true,
"strict": true,
"importHelpers": true,
"noImplicitOverride": true,
"noImplicitReturns": true,
"noFallthroughCasesInSwitch": true,
"noPropertyAccessFromIndexSignature": true
},
"files": [],
"include": [],
"references": [
{
"path": "./tsconfig.lib.json"
}
]
}

View File

@@ -0,0 +1,9 @@
{
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "../../../../dist/out-tsc",
"declaration": true,
"types": ["node"]
},
"include": ["src/**/*.ts"]
}