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:
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"extends": [
|
||||
"../../../../.eslintrc.base.json"
|
||||
],
|
||||
"ignorePatterns": [
|
||||
"!**/*"
|
||||
],
|
||||
"overrides": [
|
||||
{
|
||||
"files": [
|
||||
"*.ts",
|
||||
"*.tsx",
|
||||
"*.js",
|
||||
"*.jsx"
|
||||
],
|
||||
"rules": {}
|
||||
},
|
||||
{
|
||||
"files": [
|
||||
"*.ts",
|
||||
"*.tsx"
|
||||
],
|
||||
"rules": {}
|
||||
},
|
||||
{
|
||||
"files": [
|
||||
"*.js",
|
||||
"*.jsx"
|
||||
],
|
||||
"rules": {}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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.
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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": "チャージバックを監視するための支払い"
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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,
|
||||
],
|
||||
});
|
||||
@@ -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;
|
||||
},
|
||||
});
|
||||
@@ -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;
|
||||
},
|
||||
});
|
||||
@@ -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;
|
||||
},
|
||||
});
|
||||
@@ -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;
|
||||
},
|
||||
});
|
||||
@@ -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;
|
||||
},
|
||||
});
|
||||
@@ -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;
|
||||
},
|
||||
});
|
||||
@@ -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;
|
||||
},
|
||||
});
|
||||
@@ -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;
|
||||
},
|
||||
});
|
||||
@@ -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 };
|
||||
};
|
||||
}
|
||||
@@ -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,
|
||||
});
|
||||
},
|
||||
});
|
||||
@@ -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,
|
||||
});
|
||||
},
|
||||
});
|
||||
@@ -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',
|
||||
},
|
||||
},
|
||||
},
|
||||
];
|
||||
},
|
||||
});
|
||||
@@ -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,
|
||||
});
|
||||
},
|
||||
});
|
||||
@@ -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,
|
||||
});
|
||||
},
|
||||
});
|
||||
@@ -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,
|
||||
});
|
||||
},
|
||||
});
|
||||
@@ -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,
|
||||
});
|
||||
},
|
||||
});
|
||||
@@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"extends": "./tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"outDir": "../../../../dist/out-tsc",
|
||||
"declaration": true,
|
||||
"types": ["node"]
|
||||
},
|
||||
"include": ["src/**/*.ts"]
|
||||
}
|
||||
Reference in New Issue
Block a user