# MONEI Documentation > Explore our guides and examples to integrate MONEI. - [MONEI Documentation](https://docs.monei.com/index.md) ## search - [Search the documentation](https://docs.monei.com/search.md) ## accounting - [Odoo](https://docs.monei.com/accounting/odoo.md): Learn how to integrate MONEI with Odoo using our official free app to manage payments, orders, and transactions directly from your Odoo instance. ## apis - [MONEI GraphQL API](https://docs.monei.com/apis/graphql.md): With MONEI GraphQL API you have full access to all MONEI features. - [defer](https://docs.monei.com/apis/graphql/operations/directives/defer.md): This directive allows results to be deferred during execution - [include](https://docs.monei.com/apis/graphql/operations/directives/include.md): Directs the executor to include this field or fragment only when the if argument is true. - [skip](https://docs.monei.com/apis/graphql/operations/directives/skip.md): Directs the executor to skip this field or fragment when the if argument is true. - [activateAccount](https://docs.monei.com/apis/graphql/operations/mutations/activate-account.md): Submits the account for compliance approval. Returns a contract-signing URL. - [activateApplePayCert](https://docs.monei.com/apis/graphql/operations/mutations/activate-apple-pay-cert.md): Activates an Apple Pay certificate by uploading the signed certificate downloaded from the Apple Developer Portal. The certificate is validated against the stored private key and its expiration date; on success active is set to true, expireAt is populated, and csr is cleared. A certificate can only be activated once. - [activateSubscription](https://docs.monei.com/apis/graphql/operations/mutations/activate-subscription.md): Activates a subscription by attaching a payment method and initiating the billing cycle. Transitions a PENDING subscription to ACTIVE and creates the initial payment to validate the payment method. If the subscription is already active, this can be used to update the payment method. - [addBlacklistItem](https://docs.monei.com/apis/graphql/operations/mutations/add-blacklist-item.md): Adds a blacklist rule. Future payments matching value for the given type will be rejected. - [cancelPayment](https://docs.monei.com/apis/graphql/operations/mutations/cancel-payment.md): Cancels a payment. PENDING payments and Bizum payments are canceled directly; other methods are voided through the processor. Already-captured payments cannot be canceled (use refundPayment). - [cancelSubscription](https://docs.monei.com/apis/graphql/operations/mutations/cancel-subscription.md): Cancels an active subscription, permanently stopping the billing cycle. Use cancelAtPeriodEnd for a softer transition that ends the subscription after the current period. - [capturePayment](https://docs.monei.com/apis/graphql/operations/mutations/capture-payment.md): Captures a previously authorized (AUTHORIZED) payment. amount defaults to the authorized amount; partial captures are supported. - [connectMasterAccount](https://docs.monei.com/apis/graphql/operations/mutations/connect-master-account.md): Connects this account as a sub-account of a master/partner account using a promo code. - [connectShopifyShop](https://docs.monei.com/apis/graphql/operations/mutations/connect-shopify-shop.md): Binds a Shopify shop (already OAuth-installed via the MONEI Shopify app) to the caller's MONEI account, then calls Shopify Payments to activate the gateway. Verifies the signed token, requires the account can process payments and supports the requested method, and refuses to transfer a shop already linked to a different account. The installation's testMode matches the connecting account; the bind is rolled back if gateway activation fails. - [createApplePayCert](https://docs.monei.com/apis/graphql/operations/mutations/create-apple-pay-cert.md): Creates a new Apple Pay certificate by generating a Certificate Signing Request (CSR). Use the returned csr to create an Apple Pay Payment Processing Certificate in the Apple Developer Portal, then call activateApplePayCert with the signed .cer. The private key is securely generated and stored by MONEI. CSRs are short-lived and can only be used once; create a new certificate if the CSR has expired. - [createAuthorizedUser](https://docs.monei.com/apis/graphql/operations/mutations/create-authorized-user.md): Invites a dashboard user to the current account. Caller must have ADMIN_ACCESS (or use an API key). Sends an invitation email when the user is new to MONEI. - [createBankSession](https://docs.monei.com/apis/graphql/operations/mutations/create-bank-session.md): Starts a hosted bank-account verification session with the chosen bank (see banks). - [createDocumentSession](https://docs.monei.com/apis/graphql/operations/mutations/create-document-session.md): Starts a hosted session that lets the merchant fetch their Spanish census certificate automatically (e.g. via Cl@ve, BAK/BAKQ, or AEAT phone). - [createDocument](https://docs.monei.com/apis/graphql/operations/mutations/create-document.md): Creates a KYC/onboarding document record. Follow up with uploadDocument to attach the file. - [createExportSftpConfig](https://docs.monei.com/apis/graphql/operations/mutations/create-export-sftp-config.md): Creates an SFTP destination for scheduled daily charges exports. New configs default to disabled; set enabled: true to start the daily push. - [createIdSession](https://docs.monei.com/apis/graphql/operations/mutations/create-id-session.md): Starts a hosted identity-verification session for the account representative. - [createPayPalLink](https://docs.monei.com/apis/graphql/operations/mutations/create-pay-pal-link.md): Generates a link the merchant opens to connect their PayPal account. - [createPaymentRule](https://docs.monei.com/apis/graphql/operations/mutations/create-payment-rule.md): Creates a payment rule on the authenticated account. - [createPayment](https://docs.monei.com/apis/graphql/operations/mutations/create-payment.md): Creates a payment. When paymentMethod or paymentToken is provided, attempts direct confirmation (saved cards, digital wallets) and may return a nextAction for 3DS. Otherwise returns a payment with a hosted-page redirect. For PAYOUT transactions the account balance is checked and reserved. - [createPointOfSale](https://docs.monei.com/apis/graphql/operations/mutations/create-point-of-sale.md): Creates a POS. - [createProvider](https://docs.monei.com/apis/graphql/operations/mutations/create-provider.md): Creates a new provider on the account. - [createStore](https://docs.monei.com/apis/graphql/operations/mutations/create-store.md): Creates a store. Dashboard users require ADMIN_ACCESS. - [createSubscription](https://docs.monei.com/apis/graphql/operations/mutations/create-subscription.md): Creates a new subscription with the specified parameters. The subscription is created in PENDING status; call activateSubscription next to attach a payment method and start billing. - [createWebhook](https://docs.monei.com/apis/graphql/operations/mutations/create-webhook.md): Creates a webhook. When enabled is true, the URL is verified with a webhook.test request before persisting. - [deleteApplePayCert](https://docs.monei.com/apis/graphql/operations/mutations/delete-apple-pay-cert.md): Deletes an Apple Pay certificate. Permanently removes the certificate and its associated private key; this action cannot be undone. To temporarily disable a certificate, use updateApplePayCert instead. - [deleteAuthorizedUser](https://docs.monei.com/apis/graphql/operations/mutations/delete-authorized-user.md): Revokes a dashboard user's access to the current account. Caller must have ADMIN_ACCESS (or use an API key). Returns true on success. - [deleteBlacklistItem](https://docs.monei.com/apis/graphql/operations/mutations/delete-blacklist-item.md): Removes a blacklist rule by its value. Returns true on success. - [deleteCode](https://docs.monei.com/apis/graphql/operations/mutations/delete-code.md): Deletes a QR code. Returns NotFound when the code does not exist. - [deleteDocument](https://docs.monei.com/apis/graphql/operations/mutations/delete-document.md): Deletes a KYC/onboarding document and its underlying file. - [deleteExportSftpConfig](https://docs.monei.com/apis/graphql/operations/mutations/delete-export-sftp-config.md): Deletes an SFTP export config. Returns true on success. - [deletePaymentRule](https://docs.monei.com/apis/graphql/operations/mutations/delete-payment-rule.md): Deletes a payment rule by ID. Returns true on success. - [deletePointOfSale](https://docs.monei.com/apis/graphql/operations/mutations/delete-point-of-sale.md): Deletes a POS. Returns true on success. - [deleteProvider](https://docs.monei.com/apis/graphql/operations/mutations/delete-provider.md): Deletes a provider. - [deleteStore](https://docs.monei.com/apis/graphql/operations/mutations/delete-store.md): Deletes a store. Dashboard users require ADMIN_ACCESS. - [deleteWebhook](https://docs.monei.com/apis/graphql/operations/mutations/delete-webhook.md): Deletes a webhook. Returns true on success. - [disableCustomDomain](https://docs.monei.com/apis/graphql/operations/mutations/disable-custom-domain.md): Tears down the custom domain and its certificate. status moves to PENDING_DELETION and the config is cleared once cleanup finishes (a few minutes). - [disableTokenizationMethod](https://docs.monei.com/apis/graphql/operations/mutations/disable-tokenization-method.md): Disables a tokenization wallet (Google Pay, Apple Pay, Click to Pay) for the account. - [disconnectMasterAccount](https://docs.monei.com/apis/graphql/operations/mutations/disconnect-master-account.md): Disconnects this account from its master/partner account. - [downloadAccountInvoice](https://docs.monei.com/apis/graphql/operations/mutations/download-account-invoice.md): Pre-signed URL to download the account invoice PDF. Valid for 15 minutes. - [downloadContract](https://docs.monei.com/apis/graphql/operations/mutations/download-contract.md): Pre-signed URL to download the merchant's signed MONEI contract. - [downloadDocument](https://docs.monei.com/apis/graphql/operations/mutations/download-document.md): Returns a pre-signed URL for downloading the file content of a document. - [downloadExport](https://docs.monei.com/apis/graphql/operations/mutations/download-export.md): Returns a 15-minute pre-signed URL to download the CSV produced by an asynchronous charges export. The export must be in COMPLETED status. - [downloadOperationsFile](https://docs.monei.com/apis/graphql/operations/mutations/download-operations-file.md): Pre-signed URL to download the per-transaction operations file (fees and amounts per charge) for a completed settlement. Only available for settlements in COMPLETED status; if the file has not been generated yet, generation is triggered asynchronously and the call should be retried. URL is valid for 15 minutes. - [enableCustomDomain](https://docs.monei.com/apis/graphql/operations/mutations/enable-custom-domain.md): Starts the custom hosted-payment-page domain flow. Requests an SSL certificate and returns the account with customDomainConfig.certificateDnsRecord populated for the merchant to add at their DNS provider. domain must be a subdomain of the verified business website (e.g. pay.example.com). - [enableProvider](https://docs.monei.com/apis/graphql/operations/mutations/enable-provider.md): Enables or disables a provider without altering its configuration. - [enableTokenizationMethod](https://docs.monei.com/apis/graphql/operations/mutations/enable-tokenization-method.md): Enables a tokenization wallet (Google Pay, Apple Pay, Click to Pay) for the account. - [exportCharges](https://docs.monei.com/apis/graphql/operations/mutations/export-charges.md): Synchronously exports charges to a CSV and returns a 15-minute pre-signed download URL. Includes charge.succeeded, charge.captured, charge.failed, charge.refunded, charge.partiallyrefunded, charge.canceled, and charge.paidout events matching filter. Subject to a runtime timeout and a response-size limit — for large datasets use startExportCharges. - [pauseSubscription](https://docs.monei.com/apis/graphql/operations/mutations/pause-subscription.md): Pauses an active subscription, temporarily halting the billing cycle. The current billing period end date remains unchanged. - [refundPayment](https://docs.monei.com/apis/graphql/operations/mutations/refund-payment.md): Refunds a captured payment, fully or partially. Refunds are validated against the captured operation (for AUTH+CAPTURE flows the capture operation is used). Repeated refund calls with the same paymentId and amount in quick succession are deduplicated. Account must have refunds enabled. - [registerApplePayDomain](https://docs.monei.com/apis/graphql/operations/mutations/register-apple-pay-domain.md): Registers a domain with Apple Pay so it can present the Apple Pay sheet on the web. The domain must be served over HTTPS with a valid SSL certificate, and the domain association file must be hosted at https:///.well-known/apple-developer-merchantid-domain-association before calling this mutation. Once Apple verifies the domain, you can display Apple Pay buttons and process Apple Pay payments on your website. - [registerCode](https://docs.monei.com/apis/graphql/operations/mutations/register-code.md): Registers a QR code and attaches it to a Point of Sale. See RegisterCodeInput.pointOfSaleId for the auto-create / single-POS / required-when-ambiguous behaviour. - [requestAccountReview](https://docs.monei.com/apis/graphql/operations/mutations/request-account-review.md): Requests a re-review of an account in NOT_CONFIGURED after additional information has been provided. - [resumeSubscription](https://docs.monei.com/apis/graphql/operations/mutations/resume-subscription.md): Resumes a previously paused subscription, reactivating the billing cycle. The next billing date is recalculated based on the current date; no immediate charge is created. - [sendPaymentLink](https://docs.monei.com/apis/graphql/operations/mutations/send-payment-link.md): Sends the hosted payment-link email (or SMS/WhatsApp) to the customer. Defaults to EMAIL. - [sendPaymentReceipt](https://docs.monei.com/apis/graphql/operations/mutations/send-payment-receipt.md): Sends a payment receipt to the customer over the chosen channel (EMAIL/SMS/WHATSAPP). - [sendPaymentRequest](https://docs.monei.com/apis/graphql/operations/mutations/send-payment-request.md): Sends an SMS payment request to the given phone number. - [sendSubscriptionLink](https://docs.monei.com/apis/graphql/operations/mutations/send-subscription-link.md): Sends a subscription activation link to the customer through their preferred communication channel. Only available for subscriptions in PENDING status. - [sendSubscriptionStatus](https://docs.monei.com/apis/graphql/operations/mutations/send-subscription-status.md): Sends subscription status information to the customer through their preferred communication channel. Only available for subscriptions in ACTIVE, TRIALING, or PAST_DUE status. - [setDefaultCardProvider](https://docs.monei.com/apis/graphql/operations/mutations/set-default-card-provider.md): Marks the given card provider as the only enabled card provider on the account, disabling all others. - [setupAccount](https://docs.monei.com/apis/graphql/operations/mutations/setup-account.md): Submits or updates account information during KYC. - [startCompanyLookup](https://docs.monei.com/apis/graphql/operations/mutations/start-company-lookup.md): Looks up a company in the public business registry by tax/document number and pre-fills the account. - [startExportCharges](https://docs.monei.com/apis/graphql/operations/mutations/start-export-charges.md): Starts an asynchronous charges export job. Returns immediately with a ChargesExport whose status is PENDING; poll chargesExport(id) until COMPLETED, then call downloadExport(id) for the file. Use this instead of exportCharges for large result sets. - [updateAccount](https://docs.monei.com/apis/graphql/operations/mutations/update-account.md): Updates account configuration (branding, notifications, fraud detector, etc.). - [updateApplePayCert](https://docs.monei.com/apis/graphql/operations/mutations/update-apple-pay-cert.md): Updates an Apple Pay certificate's active status. Disabling a certificate prevents it from being used for payment token decryption while keeping it available for future use. - [updateAuthorizedUser](https://docs.monei.com/apis/graphql/operations/mutations/update-authorized-user.md): Updates a dashboard user's access level or store/POS scoping on the current account. Caller must have ADMIN_ACCESS (or use an API key). - [updateCode](https://docs.monei.com/apis/graphql/operations/mutations/update-code.md): Updates a QR code (enable/disable, re-attach to a Point of Sale). Returns NotFound when the code does not exist. - [updateExportSftpConfig](https://docs.monei.com/apis/graphql/operations/mutations/update-export-sftp-config.md): Updates an SFTP export config. Only provided fields are changed. - [updateIdentity](https://docs.monei.com/apis/graphql/operations/mutations/update-identity.md): Updates an existing identity. Only fields provided in input are written. - [updatePaymentRule](https://docs.monei.com/apis/graphql/operations/mutations/update-payment-rule.md): Updates a payment rule. Omitted fields are left unchanged. - [updatePointOfSale](https://docs.monei.com/apis/graphql/operations/mutations/update-point-of-sale.md): Updates a POS. - [updateProvider](https://docs.monei.com/apis/graphql/operations/mutations/update-provider.md): Updates an existing provider. - [updateShopifyShopSettings](https://docs.monei.com/apis/graphql/operations/mutations/update-shopify-shop-settings.md): Updates the country-to-store routing rules and/or testMode on a Shopify shop installation owned by the caller's account. A testMode change re-binds the installation to the paired live/test MONEI account. - [updateStore](https://docs.monei.com/apis/graphql/operations/mutations/update-store.md): Updates a store. Dashboard users require ADMIN_ACCESS. - [updateSubscription](https://docs.monei.com/apis/graphql/operations/mutations/update-subscription.md): Updates the configuration of an existing subscription. Currency and billing interval cannot be changed once a subscription is created. - [updateWebhook](https://docs.monei.com/apis/graphql/operations/mutations/update-webhook.md): Updates a webhook. Re-enabling (enabled: true) re-runs the URL reachability test. - [uploadDocument](https://docs.monei.com/apis/graphql/operations/mutations/upload-document.md): Returns a pre-signed URL for uploading the file content of a previously created document. Issue a PUT with the matching Content-Type. - [verifyBusinessDetails](https://docs.monei.com/apis/graphql/operations/mutations/verify-business-details.md): Re-verifies the business in the public registry and updates business. - [verifyCustomDomain](https://docs.monei.com/apis/graphql/operations/mutations/verify-custom-domain.md): Checks for certificate validation and, once issued, provisions the custom domain and returns customDomainConfig.distributionDnsRecord. Call after each DNS change. Transitions status to SUCCESS when the domain is reachable, or FAILED if validation never completes. - [accountBalances](https://docs.monei.com/apis/graphql/operations/queries/account-balances.md): Per-currency balances for the authenticated account. - [accountInvoice](https://docs.monei.com/apis/graphql/operations/queries/account-invoice.md): Single account invoice by ID. - [accountInvoices](https://docs.monei.com/apis/graphql/operations/queries/account-invoices.md): Paginated account invoices for the authenticated merchant, optionally filtered by issue date. - [accountSettlement](https://docs.monei.com/apis/graphql/operations/queries/account-settlement.md): Single settlement by ID. - [accountSettlements](https://docs.monei.com/apis/graphql/operations/queries/account-settlements.md): Settlements for the current account, ordered by scheduledAt descending. - [account](https://docs.monei.com/apis/graphql/operations/queries/account.md): Authenticated merchant account. - [applePayCert](https://docs.monei.com/apis/graphql/operations/queries/apple-pay-cert.md): Retrieves a specific Apple Pay certificate by its ID. Returns the certificate object with its current status, CSR (if not yet activated), and expiration date (if activated). - [applePayCerts](https://docs.monei.com/apis/graphql/operations/queries/apple-pay-certs.md): Retrieves all Apple Pay certificates for the account, including both active and inactive certificates. - [authorizedUsers](https://docs.monei.com/apis/graphql/operations/queries/authorized-users.md): Lists dashboard users authorized on the current account. Caller must have ADMIN_ACCESS (or use an API key). - [availablePaymentMethods](https://docs.monei.com/apis/graphql/operations/queries/available-payment-methods.md): Lists payment methods on the account, with aggregate configured/enabled flags across providers. - [availableProcessors](https://docs.monei.com/apis/graphql/operations/queries/available-processors.md): Lists processors that can handle the given payment method, with per-processor configuration status. - [banks](https://docs.monei.com/apis/graphql/operations/queries/banks.md): Banks available for bank-account verification in the given country (ISO 3166-1 alpha-2). - [blacklistItem](https://docs.monei.com/apis/graphql/operations/queries/blacklist-item.md): Fetch a single blacklist rule by its value. - [blacklistItems](https://docs.monei.com/apis/graphql/operations/queries/blacklist-items.md): List blacklist rules for the current account. - [chargeEvents](https://docs.monei.com/apis/graphql/operations/queries/charge-events.md): Paginated lifecycle events for a single charge, sorted by createdAt descending. - [chargeSources](https://docs.monei.com/apis/graphql/operations/queries/charge-sources.md): Distinct integration sources observed on this account's charges (e.g. shopify, prestashop, api). Useful for source-based filtering in dashboards. - [charge](https://docs.monei.com/apis/graphql/operations/queries/charge.md): Single charge by id. - [chargesDateRangeKPI](https://docs.monei.com/apis/graphql/operations/queries/charges-date-range-kpi.md): Charge KPIs (succeeded/captured/direct/canceled/refunded/failed) bucketed by interval. start and end are unix timestamps (seconds); when omitted, defaults to the last 24 hours. The currency argument filters charges by that ISO 4217 currency (default EUR) and the same value is echoed on the response. Cumulative series are returned for succeeded/captured/direct. - [chargesExport](https://docs.monei.com/apis/graphql/operations/queries/charges-export.md): Fetches an asynchronous charges export job by ID. Use to poll for completion after startExportCharges. - [chargesExports](https://docs.monei.com/apis/graphql/operations/queries/charges-exports.md): Lists asynchronous charges export jobs for the account, newest first. - [charges](https://docs.monei.com/apis/graphql/operations/queries/charges.md): Paginated charges, sorted by createdAt descending. search is a case-insensitive prefix match across id, orderId, providerReferenceId, customer.email, authorizationCode, and paymentMethod.card.last4. Combine with filter for structured queries. - [code](https://docs.monei.com/apis/graphql/operations/queries/code.md): QR code by ID. Returns null when the code is not found. - [codes](https://docs.monei.com/apis/graphql/operations/queries/codes.md): QR codes on the account, optionally filtered by Point of Sale. - [countries](https://docs.monei.com/apis/graphql/operations/queries/countries.md): Country reference data plus the caller's geolocation. - [document](https://docs.monei.com/apis/graphql/operations/queries/document.md): Looks up a single KYC/onboarding document on the current account by ID. - [documents](https://docs.monei.com/apis/graphql/operations/queries/documents.md): Lists KYC/onboarding documents attached to the current account. - [events](https://docs.monei.com/apis/graphql/operations/queries/events.md): Paginated charge events across the account, with structured filtering. - [exportSftpConfig](https://docs.monei.com/apis/graphql/operations/queries/export-sftp-config.md): Fetches an SFTP export config by ID. - [exportSftpConfigs](https://docs.monei.com/apis/graphql/operations/queries/export-sftp-configs.md): Lists SFTP export configs for the account. - [getShopifyShopSettings](https://docs.monei.com/apis/graphql/operations/queries/get-shopify-shop-settings.md): Returns the country-to-store routing rules, testMode, and the Shopify Payments Partner gateway settings URL for an installation owned by the caller's account. - [notificationsPortalUrl](https://docs.monei.com/apis/graphql/operations/queries/notifications-portal-url.md): Hosted link to the merchant's notification preferences portal. - [paymentEmailPreview](https://docs.monei.com/apis/graphql/operations/queries/payment-email-preview.md): Use previewPaymentEmail. Will be removed in a future release. - [paymentRule](https://docs.monei.com/apis/graphql/operations/queries/payment-rule.md): Fetches a single payment rule owned by the authenticated account. - [paymentRules](https://docs.monei.com/apis/graphql/operations/queries/payment-rules.md): Lists payment rules owned by the authenticated account. Returns both CARDROUTING and PAYMENTMETHOD_VISIBILITY rules; filter client-side by ruleType. - [pointOfSale](https://docs.monei.com/apis/graphql/operations/queries/point-of-sale.md): Single POS by ID. - [pointsOfSale](https://docs.monei.com/apis/graphql/operations/queries/points-of-sale.md): Lists points of sale for the account, optionally scoped to a store. - [previewPaymentEmail](https://docs.monei.com/apis/graphql/operations/queries/preview-payment-email.md): Renders the HTML body of the payment-link or receipt email. Returns the rendered HTML string. - [previewSubscriptionEmail](https://docs.monei.com/apis/graphql/operations/queries/preview-subscription-email.md): Rendered HTML preview of a subscription email. - [providerConfig](https://docs.monei.com/apis/graphql/operations/queries/provider-config.md): Returns the configuration template (compatible acquirers and metadata field schema) for a payment-method/processor pair. - [provider](https://docs.monei.com/apis/graphql/operations/queries/provider.md): Fetches a provider by ID. - [providers](https://docs.monei.com/apis/graphql/operations/queries/providers.md): Lists all providers configured on the account. - [representative](https://docs.monei.com/apis/graphql/operations/queries/representative.md): Legal representative by ID, scoped to the caller's account. - [representatives](https://docs.monei.com/apis/graphql/operations/queries/representatives.md): Legal representatives (signatory and UBOs) for the caller's account. - [settlementEvents](https://docs.monei.com/apis/graphql/operations/queries/settlement-events.md): Lifecycle events for a settlement, ordered by createdAt descending. - [shopifyStores](https://docs.monei.com/apis/graphql/operations/queries/shopify-stores.md): Lists Shopify shop installations bound to the caller's account. Returns one item per (domain, paymentMethod) pair. - [store](https://docs.monei.com/apis/graphql/operations/queries/store.md): Fetches a single store by ID. Deleted stores resolve as null. - [stores](https://docs.monei.com/apis/graphql/operations/queries/stores.md): Lists stores in the account. - [subscriptionEmailPreview](https://docs.monei.com/apis/graphql/operations/queries/subscription-email-preview.md): Use previewSubscriptionEmail instead - [subscriptionEvents](https://docs.monei.com/apis/graphql/operations/queries/subscription-events.md): Paginated lifecycle events for a subscription. - [subscription](https://docs.monei.com/apis/graphql/operations/queries/subscription.md): Retrieves the complete details of an existing subscription by its unique ID. - [subscriptions](https://docs.monei.com/apis/graphql/operations/queries/subscriptions.md): Paginated, filterable list of subscriptions. - [webhook](https://docs.monei.com/apis/graphql/operations/queries/webhook.md): Fetches a webhook by ID. - [webhooks](https://docs.monei.com/apis/graphql/operations/queries/webhooks.md): Lists webhooks configured on the account. - [aws_api_key](https://docs.monei.com/apis/graphql/types/directives/aws-api-key.md): Tells the service this field/object has access authorized by an API key. - [aws_auth](https://docs.monei.com/apis/graphql/types/directives/aws-auth.md): Directs the schema to enforce authorization on a field - [aws_cognito_user_pools](https://docs.monei.com/apis/graphql/types/directives/aws-cognito-user-pools.md): Tells the service this field/object has access authorized by a Cognito User Pools token. - [aws_iam](https://docs.monei.com/apis/graphql/types/directives/aws-iam.md): Tells the service this field/object has access authorized by sigv4 signing. - [aws_lambda](https://docs.monei.com/apis/graphql/types/directives/aws-lambda.md): Tells the service this field/object has access authorized by a Lambda Authorizer. - [aws_oidc](https://docs.monei.com/apis/graphql/types/directives/aws-oidc.md): Tells the service this field/object has access authorized by an OIDC token. - [aws_publish](https://docs.monei.com/apis/graphql/types/directives/aws-publish.md): Tells the service which subscriptions will be published to when this mutation is called. This directive is deprecated use @aws_susbscribe directive instead. - [aws_subscribe](https://docs.monei.com/apis/graphql/types/directives/aws-subscribe.md): Tells the service which mutation triggers this subscription. - [deprecated](https://docs.monei.com/apis/graphql/types/directives/deprecated.md): Marks an element of a GraphQL schema as no longer supported. - [oneOf](https://docs.monei.com/apis/graphql/types/directives/one-of.md): Indicates exactly one field must be supplied and this field must not be null. - [specifiedBy](https://docs.monei.com/apis/graphql/types/directives/specified-by.md): Exposes a URL that specifies the behavior of this scalar. - [AccountInvoicePaymentMethod](https://docs.monei.com/apis/graphql/types/enums/account-invoice-payment-method.md): Method MONEI uses to collect payment for an account invoice. - [AccountInvoiceStatus](https://docs.monei.com/apis/graphql/types/enums/account-invoice-status.md): Payment state of an account invoice that MONEI issues to the merchant. - [AccountStatus](https://docs.monei.com/apis/graphql/types/enums/account-status.md): Lifecycle status of a merchant account. - [Acquirer](https://docs.monei.com/apis/graphql/types/enums/acquirer.md): Acquiring entity that settles funds for transactions routed through a provider. - [AuthPaymentMethodKlarna](https://docs.monei.com/apis/graphql/types/enums/auth-payment-method-klarna.md): Underlying funding source Klarna used to authorize the payment. - [AuthorizedUserAccessLevel](https://docs.monei.com/apis/graphql/types/enums/authorized-user-access-level.md): Permission level granted to a dashboard user on the merchant account. - [AuthorizedUserStatus](https://docs.monei.com/apis/graphql/types/enums/authorized-user-status.md): Lifecycle status of the dashboard user account. - [BankAccountStatus](https://docs.monei.com/apis/graphql/types/enums/bank-account-status.md): Status of the merchant's payout bank account. - [BillingCategoryKlarna](https://docs.monei.com/apis/graphql/types/enums/billing-category-klarna.md): Klarna billing category for the payment. - [BillingPlans](https://docs.monei.com/apis/graphql/types/enums/billing-plans.md): MONEI commercial billing plan assigned to the merchant account. - [BlacklistItemType](https://docs.monei.com/apis/graphql/types/enums/blacklist-item-type.md): Blacklist rule kind. Determines which payment attribute the rule's value is matched against. - [BusinessStatus](https://docs.monei.com/apis/graphql/types/enums/business-status.md): Verification status of the merchant business against the public registry. - [CallbackStatus](https://docs.monei.com/apis/graphql/types/enums/callback-status.md): Webhook callback delivery state. - [CancellationReason](https://docs.monei.com/apis/graphql/types/enums/cancellation-reason.md): Reason supplied when a payment is canceled. - [CardBrand](https://docs.monei.com/apis/graphql/types/enums/card-brand.md): Card brand. - [CardType](https://docs.monei.com/apis/graphql/types/enums/card-type.md): Card funding type. - [ChargeStatus](https://docs.monei.com/apis/graphql/types/enums/charge-status.md): The status of the payment. - [CodeTypes](https://docs.monei.com/apis/graphql/types/enums/code-types.md): Type of QR code. - [CombinatorType](https://docs.monei.com/apis/graphql/types/enums/combinator-type.md): Boolean operator used to combine the conditions in a rule. - [ContractStatus](https://docs.monei.com/apis/graphql/types/enums/contract-status.md): E-signature status of the merchant's MONEI contract. - [Currencies](https://docs.monei.com/apis/graphql/types/enums/currencies.md): Three-letter ISO 4217 currency code (uppercase). Must be a supported currency. - [CustomDomainStatus](https://docs.monei.com/apis/graphql/types/enums/custom-domain-status.md): Lifecycle state of the merchant's custom hosted-payment-page domain. - [DeviceType](https://docs.monei.com/apis/graphql/types/enums/device-type.md): Customer device class detected at checkout. - [DocumentStatus](https://docs.monei.com/apis/graphql/types/enums/document-status.md): Review state of a KYC/onboarding document. - [DocumentType](https://docs.monei.com/apis/graphql/types/enums/document-type.md): KYC/onboarding document type. Identifies what a Document represents and drives validation rules. - [ExportStatus](https://docs.monei.com/apis/graphql/types/enums/export-status.md): Lifecycle of an asynchronous export job. - [IdVerificationStatus](https://docs.monei.com/apis/graphql/types/enums/id-verification-status.md): Identity verification (KYC) status for an account representative. - [Industries](https://docs.monei.com/apis/graphql/types/enums/industries.md): Industry category of the merchant business. - [IntervalInput](https://docs.monei.com/apis/graphql/types/enums/interval-input.md): Subscription interval (input). The minute and hour intervals are only available in test mode. - [Interval](https://docs.monei.com/apis/graphql/types/enums/interval.md): Subscription interval. The minute and hour intervals are only available in test mode. - [LegalForm](https://docs.monei.com/apis/graphql/types/enums/legal-form.md): Legal form of the merchant business. - [MessageChannel](https://docs.monei.com/apis/graphql/types/enums/message-channel.md): The channel used to send the payment message. - [MetadataItemType](https://docs.monei.com/apis/graphql/types/enums/metadata-item-type.md): Storage type for a metadata item value. Values are always serialized as strings on the wire. - [NextActionTypes](https://docs.monei.com/apis/graphql/types/enums/next-action-types.md): Next action the integrator must take to progress the payment. - [NotConfiguredReason](https://docs.monei.com/apis/graphql/types/enums/not-configured-reason.md): Reason an account is in NOT_CONFIGURED state. Deprecated in favor of StatusReason. - [PaymentEmailType](https://docs.monei.com/apis/graphql/types/enums/payment-email-type.md): Email template variant for previewPaymentEmail. - [PaymentMethods](https://docs.monei.com/apis/graphql/types/enums/payment-methods.md): Payment methods supported by MONEI. - [PaymentRuleType](https://docs.monei.com/apis/graphql/types/enums/payment-rule-type.md): Type of payment rule. Determines which engine evaluates the rule and which action types are valid. - [PaymentStatus](https://docs.monei.com/apis/graphql/types/enums/payment-status.md): The status of the payment. Mirrors ChargeStatus. - [PointOfSaleType](https://docs.monei.com/apis/graphql/types/enums/point-of-sale-type.md): Point of sale type. Determines how the POS captures payments and the hardware/software it requires. - [Processor](https://docs.monei.com/apis/graphql/types/enums/processor.md): Payment processor (gateway) that authorizes and captures transactions on behalf of an acquirer. - [RefundReason](https://docs.monei.com/apis/graphql/types/enums/refund-reason.md): Reason supplied when a payment is refunded. - [RejectedReason](https://docs.monei.com/apis/graphql/types/enums/rejected-reason.md): Reason an account was rejected. Deprecated in favor of StatusReason. - [RetryIntervalInput](https://docs.monei.com/apis/graphql/types/enums/retry-interval-input.md): Unit of time to wait before a retry attempt. - [SequenceType](https://docs.monei.com/apis/graphql/types/enums/sequence-type.md): Type of payment sequence. - [SettlementPayMethods](https://docs.monei.com/apis/graphql/types/enums/settlement-pay-methods.md): Payment method the settlement batch covers. Each method settles in its own batch. - [SettlementStatus](https://docs.monei.com/apis/graphql/types/enums/settlement-status.md): Lifecycle status of a settlement batch. - [StatusReason](https://docs.monei.com/apis/graphql/types/enums/status-reason.md): Reason for the current account status. See statusNote for free-form details. - [SubscriptionEmailType](https://docs.monei.com/apis/graphql/types/enums/subscription-email-type.md): Type of customer-facing subscription email. - [SubscriptionPaymentMethods](https://docs.monei.com/apis/graphql/types/enums/subscription-payment-methods.md): Payment methods allowed for subscriptions. - [SubscriptionStatus](https://docs.monei.com/apis/graphql/types/enums/subscription-status.md): The status of the subscription. - [ThreeDSecureFlow](https://docs.monei.com/apis/graphql/types/enums/three-dsecure-flow.md): The flow used for 3DS authentication. - [TokenizationMethods](https://docs.monei.com/apis/graphql/types/enums/tokenization-methods.md): Wallet that produced the network token used to authorize a card payment. - [TransactionTypes](https://docs.monei.com/apis/graphql/types/enums/transaction-types.md): Controls when the funds will be captured. - [UnitType](https://docs.monei.com/apis/graphql/types/enums/unit-type.md): Unit semantics for an account-invoice line item. - [VerificationMethod](https://docs.monei.com/apis/graphql/types/enums/verification-method.md): Cardholder verification method used at the terminal (card-present payments). - [WebhookEventType](https://docs.monei.com/apis/graphql/types/enums/webhook-event-type.md): Event types a webhook can subscribe to. The MONEI server sends an event when the matching object reaches the corresponding state. - [AccountBrandingInput](https://docs.monei.com/apis/graphql/types/inputs/account-branding-input.md): Branding update payload. - [AccountNotificationsInput](https://docs.monei.com/apis/graphql/types/inputs/account-notifications-input.md): Email notifications update payload. - [AccountPublicBusinessDetailsInput](https://docs.monei.com/apis/graphql/types/inputs/account-public-business-details-input.md): Public business details update payload. - [ActivateApplePayCertInput](https://docs.monei.com/apis/graphql/types/inputs/activate-apple-pay-cert-input.md): Input for activateApplePayCert. - [ActivateSubscriptionInput](https://docs.monei.com/apis/graphql/types/inputs/activate-subscription-input.md): Input for activateSubscription. Generates the initial payment that establishes the recurring mandate. - [AddressInput](https://docs.monei.com/apis/graphql/types/inputs/address-input.md): Postal address input. Mirrors Address. - [BlacklistItemInput](https://docs.monei.com/apis/graphql/types/inputs/blacklist-item-input.md): Input for addBlacklistItem. - [BusinessDataInput](https://docs.monei.com/apis/graphql/types/inputs/business-data-input.md): Business details payload submitted during KYC / onboarding. - [CancelPaymentInput](https://docs.monei.com/apis/graphql/types/inputs/cancel-payment-input.md): Input for cancelPayment. Voids an authorization before capture. - [CancelSubscriptionInput](https://docs.monei.com/apis/graphql/types/inputs/cancel-subscription-input.md): Input for cancelSubscription. - [CapturePaymentInput](https://docs.monei.com/apis/graphql/types/inputs/capture-payment-input.md): Input for capturePayment. Requires the payment to be in AUTHORIZED state. - [ConnectShopifyShopInput](https://docs.monei.com/apis/graphql/types/inputs/connect-shopify-shop-input.md): Input for connectShopifyShop. Supplied by the dashboard after the MONEI Shopify app completes Shopify OAuth and redirects back with the signed token. - [ContactDetailsInput](https://docs.monei.com/apis/graphql/types/inputs/contact-details-input.md): Contact details input. Mirrors ContactDetails. - [CountryStoreInput](https://docs.monei.com/apis/graphql/types/inputs/country-store-input.md): Country-to-store routing rule input. Mirrors CountryStore. - [CreateAuthorizedUserInput](https://docs.monei.com/apis/graphql/types/inputs/create-authorized-user-input.md): Input for createAuthorizedUser. - [CreateDocumentInput](https://docs.monei.com/apis/graphql/types/inputs/create-document-input.md): Input for createDocument. - [CreateExportSftpConfigInput](https://docs.monei.com/apis/graphql/types/inputs/create-export-sftp-config-input.md): Input for createExportSftpConfig. - [CreateIdSessionInput](https://docs.monei.com/apis/graphql/types/inputs/create-id-session-input.md): Input for createIdSession. - [CreatePaymentInput](https://docs.monei.com/apis/graphql/types/inputs/create-payment-input.md): Input for createPayment. - [CreatePaymentRuleInput](https://docs.monei.com/apis/graphql/types/inputs/create-payment-rule-input.md): Input for createPaymentRule. - [CreatePointOfSaleInput](https://docs.monei.com/apis/graphql/types/inputs/create-point-of-sale-input.md): Input for createPointOfSale. - [CreateProviderInput](https://docs.monei.com/apis/graphql/types/inputs/create-provider-input.md): Input for createProvider. - [CreateStoreInput](https://docs.monei.com/apis/graphql/types/inputs/create-store-input.md): Input for createStore. - [CreateSubscriptionInput](https://docs.monei.com/apis/graphql/types/inputs/create-subscription-input.md): Input for createSubscription. - [CreateWebhookInput](https://docs.monei.com/apis/graphql/types/inputs/create-webhook-input.md): Input for createWebhook. - [CustomerInput](https://docs.monei.com/apis/graphql/types/inputs/customer-input.md): Customer identification input. - [GetShopifyShopSettingsInput](https://docs.monei.com/apis/graphql/types/inputs/get-shopify-shop-settings-input.md): Input for getShopifyShopSettings. Caller's account must own the installation. - [IdentityInput](https://docs.monei.com/apis/graphql/types/inputs/identity-input.md): Identity payload for the account holder when no separate representative is provided. - [KeyValueInput](https://docs.monei.com/apis/graphql/types/inputs/key-value-input.md): Generic key/value pair input (e.g. for metadata). - [MetadataItemInput](https://docs.monei.com/apis/graphql/types/inputs/metadata-item-input.md): Provider metadata entry input. The value's type is inferred from the matching MetadataConfigItem schema for the provider. - [PauseSubscriptionInput](https://docs.monei.com/apis/graphql/types/inputs/pause-subscription-input.md): Input for pauseSubscription. - [PaymentActionInput](https://docs.monei.com/apis/graphql/types/inputs/payment-action-input.md): Action input. Mirrors PaymentAction. See that type for which fields apply per type. - [PaymentConditionInput](https://docs.monei.com/apis/graphql/types/inputs/payment-condition-input.md): Single condition input. Mirrors PaymentCondition. - [PaymentConditionsInput](https://docs.monei.com/apis/graphql/types/inputs/payment-conditions-input.md): Conditions input. Mirrors PaymentConditions. - [PaymentMethodBizumInput](https://docs.monei.com/apis/graphql/types/inputs/payment-method-bizum-input.md): Details about the Bizum account used for this payment. - [PaymentMethodCardInput](https://docs.monei.com/apis/graphql/types/inputs/payment-method-card-input.md): Details about the card used as payment method at the time of the transaction. - [PaymentMethodCardPresentInput](https://docs.monei.com/apis/graphql/types/inputs/payment-method-card-present-input.md): Card-present (in-person/terminal) payment method input. - [PaymentMethodInput](https://docs.monei.com/apis/graphql/types/inputs/payment-method-input.md): Polymorphic payment method input. Provide only the sub-object matching method. - [PaymentMethodKlarnaInput](https://docs.monei.com/apis/graphql/types/inputs/payment-method-klarna-input.md): Details from Klarna order used as payment method at the time of the transaction. - [PaymentMethodMBWayInput](https://docs.monei.com/apis/graphql/types/inputs/payment-method-mbway-input.md): Details from MBWay order used as payment method at the time of the transaction. - [PaymentMethodPaypalInput](https://docs.monei.com/apis/graphql/types/inputs/payment-method-paypal-input.md): Details from Paypal order used as payment method at the time of the transaction. - [PaymentMethodSepaInput](https://docs.monei.com/apis/graphql/types/inputs/payment-method-sepa-input.md): Details from SEPA order used as payment method at the time of the transaction. - [PaymentMethodTrustlyInput](https://docs.monei.com/apis/graphql/types/inputs/payment-method-trustly-input.md): Details from Trustly order used as payment method at the time of the transaction. - [ProviderRulesInput](https://docs.monei.com/apis/graphql/types/inputs/provider-rules-input.md): Routing rules input. Mirrors ProviderRules. - [RefundPaymentInput](https://docs.monei.com/apis/graphql/types/inputs/refund-payment-input.md): Input for refundPayment. - [RegisterApplePayDomainInput](https://docs.monei.com/apis/graphql/types/inputs/register-apple-pay-domain-input.md): Input for registerApplePayDomain. - [RegisterCodeInput](https://docs.monei.com/apis/graphql/types/inputs/register-code-input.md): Input for registerCode. - [RepresentativeInput](https://docs.monei.com/apis/graphql/types/inputs/representative-input.md): Legal representative payload submitted during KYC. - [ResumeSubscriptionInput](https://docs.monei.com/apis/graphql/types/inputs/resume-subscription-input.md): Input for resumeSubscription. - [RetryScheduleInput](https://docs.monei.com/apis/graphql/types/inputs/retry-schedule-input.md): Single retry-schedule entry. Specifies how long to wait before attempting the next payment retry. - [SearchableAccountInvoiceFilterInput](https://docs.monei.com/apis/graphql/types/inputs/searchable-account-invoice-filter-input.md): Filter for accountInvoices. Currently only createdAt is supported. - [SearchableAccountSettlementFilterInput](https://docs.monei.com/apis/graphql/types/inputs/searchable-account-settlement-filter-input.md): Filter for accountSettlements. - [SearchableBooleanFilterInput](https://docs.monei.com/apis/graphql/types/inputs/searchable-boolean-filter-input.md): Standard AppSync filter on a Boolean field. Use eq for true/false; ne is rarely needed. - [SearchableChargeFilterInput](https://docs.monei.com/apis/graphql/types/inputs/searchable-charge-filter-input.md): Filter for charges. Each field is an OpenSearch-style filter; combine fields with and / or / not. - [SearchableEventFilterInput](https://docs.monei.com/apis/graphql/types/inputs/searchable-event-filter-input.md): Filter for events. Each field is an OpenSearch-style filter; combine fields with and / or / not. - [SearchableIDFilterInput](https://docs.monei.com/apis/graphql/types/inputs/searchable-idfilter-input.md): Operator guidance: - [SearchableIntFilterInput](https://docs.monei.com/apis/graphql/types/inputs/searchable-int-filter-input.md): Operator guidance: - [SearchableStringFilterInput](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input.md): Multiple operators on the same input AND together. - [SearchableSubscriptionFilterInput](https://docs.monei.com/apis/graphql/types/inputs/searchable-subscription-filter-input.md): OpenSearch-style filter for subscriptions. Combine fields and use and/or/not for composition. - [SendPaymentMessageInput](https://docs.monei.com/apis/graphql/types/inputs/send-payment-message-input.md): Input for sendPaymentLink and sendPaymentReceipt. - [SendPaymentRequestInput](https://docs.monei.com/apis/graphql/types/inputs/send-payment-request-input.md): Input for sendPaymentRequest. Sends an SMS payment request. - [SendSubscriptionMessageInput](https://docs.monei.com/apis/graphql/types/inputs/send-subscription-message-input.md): Input for sendSubscriptionLink and sendSubscriptionStatus. - [SequenceInput](https://docs.monei.com/apis/graphql/types/inputs/sequence-input.md): Marks the beginning of a payment sequence (recurring/subscriptions/installments). - [SequenceRecurringInput](https://docs.monei.com/apis/graphql/types/inputs/sequence-recurring-input.md): Recurring-payment configuration. Used when SequenceInput.type is recurring. - [SessionDetailsInput](https://docs.monei.com/apis/graphql/types/inputs/session-details-input.md): Customer browser/device fingerprint input. Mirrors SessionDetails. - [SetupAccountInput](https://docs.monei.com/apis/graphql/types/inputs/setup-account-input.md): Payload for setupAccount and verifyBusinessDetails. - [UpdateAccountInput](https://docs.monei.com/apis/graphql/types/inputs/update-account-input.md): Account update payload. - [UpdateApplePayCertInput](https://docs.monei.com/apis/graphql/types/inputs/update-apple-pay-cert-input.md): Input for updateApplePayCert. - [UpdateAuthorizedUserInput](https://docs.monei.com/apis/graphql/types/inputs/update-authorized-user-input.md): Input for updateAuthorizedUser. - [UpdateCodeInput](https://docs.monei.com/apis/graphql/types/inputs/update-code-input.md): Input for updateCode. - [UpdateExportSftpConfigInput](https://docs.monei.com/apis/graphql/types/inputs/update-export-sftp-config-input.md): Input for updateExportSftpConfig. Only provided fields are updated. - [UpdateIdentityInput](https://docs.monei.com/apis/graphql/types/inputs/update-identity-input.md): Input for updateIdentity. Only provided fields are written; omitted fields are left unchanged. - [UpdatePaymentRuleInput](https://docs.monei.com/apis/graphql/types/inputs/update-payment-rule-input.md): Input for updatePaymentRule. Omitted fields are left unchanged. - [UpdatePointOfSaleInput](https://docs.monei.com/apis/graphql/types/inputs/update-point-of-sale-input.md): Input for updatePointOfSale. All fields except id are optional; omitted fields are left unchanged. - [UpdateProviderInput](https://docs.monei.com/apis/graphql/types/inputs/update-provider-input.md): Input for updateProvider. Only included fields are updated. - [UpdateShopifyShopSettingsInput](https://docs.monei.com/apis/graphql/types/inputs/update-shopify-shop-settings-input.md): Input for updateShopifyShopSettings. Caller's account must own the installation. Fields left null/omitted preserve the existing value (no overwrite). - [UpdateStoreInput](https://docs.monei.com/apis/graphql/types/inputs/update-store-input.md): Input for updateStore. Only provided fields are updated. - [UpdateSubscriptionInput](https://docs.monei.com/apis/graphql/types/inputs/update-subscription-input.md): Input for updateSubscription. - [UpdateWebhookInput](https://docs.monei.com/apis/graphql/types/inputs/update-webhook-input.md): Input for updateWebhook. All fields are required; partial updates are rejected. - [AccountBalancesConnection](https://docs.monei.com/apis/graphql/types/objects/account-balances-connection.md): Per-currency account balances for the authenticated account. - [AccountBalances](https://docs.monei.com/apis/graphql/types/objects/account-balances.md): Account balance for a single currency. One record per (accountId, currency) pair. All amounts are in the currency's minor units (e.g. cents for EUR). - [AccountBranding](https://docs.monei.com/apis/graphql/types/objects/account-branding.md): Visual branding applied to the hosted payment page and customer-facing surfaces. - [AccountContract](https://docs.monei.com/apis/graphql/types/objects/account-contract.md): E-signature contract tracking the MONEI services contract for the account. - [AccountInvoiceBusiness](https://docs.monei.com/apis/graphql/types/objects/account-invoice-business.md): Merchant business snapshot embedded in the issued account invoice. - [AccountInvoiceLineItem](https://docs.monei.com/apis/graphql/types/objects/account-invoice-line-item.md): Single line item on an account invoice (e.g. a per-transaction fee, fixed plan fee, or VAT row). - [AccountInvoice](https://docs.monei.com/apis/graphql/types/objects/account-invoice.md): Invoice MONEI issues to a merchant account for fees accrued in a billing period. Generated automatically from the account's transactions and plan. - [AccountInvoicesConnection](https://docs.monei.com/apis/graphql/types/objects/account-invoices-connection.md): Paginated list of account invoices. - [AccountNotifications](https://docs.monei.com/apis/graphql/types/objects/account-notifications.md): Email notification preferences for the merchant and their customers. - [AccountPaymentMethodsBizum](https://docs.monei.com/apis/graphql/types/objects/account-payment-methods-bizum.md): **Deprecated.** Bizum payment method configuration for the account. No longer used. - [AccountPaymentMethodsCreditCard](https://docs.monei.com/apis/graphql/types/objects/account-payment-methods-credit-card.md): **Deprecated.** Card payment method configuration for the account. No longer used. - [AccountPaymentMethods](https://docs.monei.com/apis/graphql/types/objects/account-payment-methods.md): **Deprecated.** Per-payment-method configuration toggles for the account. No longer used; reachable only via the @deprecated Account.paymentMethods field. - [AccountPayoutTerms](https://docs.monei.com/apis/graphql/types/objects/account-payout-terms.md): Settlement (payout) terms applied to the account. - [AccountPublicBusinessDetails](https://docs.monei.com/apis/graphql/types/objects/account-public-business-details.md): Public business information shown to customers (payment page, receipts, support contact). - [AccountSettlement](https://docs.monei.com/apis/graphql/types/objects/account-settlement.md): Settlement batch grouping a merchant's transactions for one payout period, currency, and payment method. A COMPLETED settlement produces a single bank transfer to iban. - [AccountSettlementsConnection](https://docs.monei.com/apis/graphql/types/objects/account-settlements-connection.md): Paginated list of settlements. - [AccountTokenizationMethodsClickToPayItem](https://docs.monei.com/apis/graphql/types/objects/account-tokenization-methods-click-to-pay-item.md): Click to Pay configuration for the account. - [AccountTokenizationMethodsItem](https://docs.monei.com/apis/graphql/types/objects/account-tokenization-methods-item.md): Configuration for a single tokenization wallet (Google Pay, Apple Pay). - [AccountTokenizationMethods](https://docs.monei.com/apis/graphql/types/objects/account-tokenization-methods.md): Tokenization wallets configured for the account. - [Account](https://docs.monei.com/apis/graphql/types/objects/account.md): Merchant account. - [ActivateAccount](https://docs.monei.com/apis/graphql/types/objects/activate-account.md): Result of activateAccount. - [Address](https://docs.monei.com/apis/graphql/types/objects/address.md): Postal address. - [ApplePayCertificate](https://docs.monei.com/apis/graphql/types/objects/apple-pay-certificate.md): An Apple Pay certificate for iOS app integration. - [AuthorizedUser](https://docs.monei.com/apis/graphql/types/objects/authorized-user.md): Dashboard user authorized to access a MONEI merchant account. The same email may appear on multiple accounts with different access levels. - [AuthorizedUsersConnection](https://docs.monei.com/apis/graphql/types/objects/authorized-users-connection.md): Paginated list of authorized users on the current account. - [AvailablePaymentMethod](https://docs.monei.com/apis/graphql/types/objects/available-payment-method.md): Aggregate availability of a payment method across the account's providers. - [AvailableProcessor](https://docs.monei.com/apis/graphql/types/objects/available-processor.md): Availability of a specific processor for a payment method on the account. - [BankAccount](https://docs.monei.com/apis/graphql/types/objects/bank-account.md): Bank account that receives the merchant's settlements. - [Bank](https://docs.monei.com/apis/graphql/types/objects/bank.md): Bank shown in the bank-account verification picker. - [BlacklistItem](https://docs.monei.com/apis/graphql/types/objects/blacklist-item.md): A blacklist (block list) rule. Payments whose attributes match value for the given type are rejected before authorization. - [BlacklistItemsConnection](https://docs.monei.com/apis/graphql/types/objects/blacklist-items-connection.md): Paginated list of blacklist rules. - [BusinessData](https://docs.monei.com/apis/graphql/types/objects/business-data.md): Legal and operational details of the merchant business. - [CallbackData](https://docs.monei.com/apis/graphql/types/objects/callback-data.md): Outcome of the most recent webhook delivery attempt. - [ChargeEventObject](https://docs.monei.com/apis/graphql/types/objects/charge-event-object.md): Charge snapshot embedded in a ChargeEvent. Captures the charge as it looked at the moment the event was emitted. - [ChargeEvent](https://docs.monei.com/apis/graphql/types/objects/charge-event.md): Audit log entry for a charge state change (creation, status update, refund, etc.). - [ChargeEventsConnection](https://docs.monei.com/apis/graphql/types/objects/charge-events-connection.md): Paginated charge events result. - [Charge](https://docs.monei.com/apis/graphql/types/objects/charge.md): Single payment record. The merchant API's primary resource. - [ChargesConnection](https://docs.monei.com/apis/graphql/types/objects/charges-connection.md): Paginated charges result. - [ChargesDateRangeKPI](https://docs.monei.com/apis/graphql/types/objects/charges-date-range-kpi.md): Time-bucketed KPI series for charges over a date range. - [ChargesDateRangeKPIRow](https://docs.monei.com/apis/graphql/types/objects/charges-date-range-kpirow.md): One bucket of the KPI date histogram (per interval). Amounts in the smallest unit of the report currency. - [ChargesDateRangeKPITotal](https://docs.monei.com/apis/graphql/types/objects/charges-date-range-kpitotal.md): Aggregated KPI totals for the requested date range. Amounts in the smallest unit of the report currency. - [ChargesExport](https://docs.monei.com/apis/graphql/types/objects/charges-export.md): Asynchronous charges export job. Created by startExportCharges; download via downloadExport once status is COMPLETED. - [ChargesExportsConnection](https://docs.monei.com/apis/graphql/types/objects/charges-exports-connection.md): Paginated list of charges export jobs for the account. - [Code](https://docs.monei.com/apis/graphql/types/objects/code.md): Permanent QR code that routes a customer to a Point of Sale checkout. Render the image via https png, 500). - [ConnectShopifyShopResult](https://docs.monei.com/apis/graphql/types/objects/connect-shopify-shop-result.md): Result of connectShopifyShop. - [ContactDetails](https://docs.monei.com/apis/graphql/types/objects/contact-details.md): Billing or shipping contact information associated with the payment method at the time of the transaction. - [Countries](https://docs.monei.com/apis/graphql/types/objects/countries.md): Country reference data plus geolocation of the current caller. - [CountryStore](https://docs.monei.com/apis/graphql/types/objects/country-store.md): Mapping between a buyer country and a MONEI store. Used to route Shopify checkouts to different MONEI stores per country (multi-store setups). - [Country](https://docs.monei.com/apis/graphql/types/objects/country.md): Country reference data. - [CustomDomainConfig](https://docs.monei.com/apis/graphql/types/objects/custom-domain-config.md): Custom hosted-payment-page domain configuration. Two DNS records must be added in order: first certificateDnsRecord to validate the SSL certificate, then distributionDnsRecord to route traffic. - [Customer](https://docs.monei.com/apis/graphql/types/objects/customer.md): The customer information associated with the payment or subscription. - [DnsRecord](https://docs.monei.com/apis/graphql/types/objects/dns-record.md): DNS record the merchant must add at their DNS provider to validate or route the custom domain. - [Document](https://docs.monei.com/apis/graphql/types/objects/document.md): KYC/onboarding document attached to the merchant account. - [DocumentsConnection](https://docs.monei.com/apis/graphql/types/objects/documents-connection.md): Paginated list of Document. - [DownloadFile](https://docs.monei.com/apis/graphql/types/objects/download-file.md): Pre-signed URL for downloading a file from MONEI storage. - [ExportCharges](https://docs.monei.com/apis/graphql/types/objects/export-charges.md): Result of a synchronous charges export. CSV is generated inline and made available for download. - [Identity](https://docs.monei.com/apis/graphql/types/objects/identity.md): Account representative undergoing KYC/identity verification. Stores personal data, document number, and the verification outcome produced by the hosted ID-verification session (see createIdSession). - [KeyValueItem](https://docs.monei.com/apis/graphql/types/objects/key-value-item.md): Generic key/value pair (e.g. for metadata). - [LastPayment](https://docs.monei.com/apis/graphql/types/objects/last-payment.md): Outcome of the most recent recurring charge attempt for the subscription. - [MetadataConfigItem](https://docs.monei.com/apis/graphql/types/objects/metadata-config-item.md): Schema for a single metadata field of a provider configuration. Describes the field; does not carry a value. - [MetadataItem](https://docs.monei.com/apis/graphql/types/objects/metadata-item.md): Single metadata entry on a provider. Combines the field schema (see MetadataConfigItem) with the stored value. - [NextAction](https://docs.monei.com/apis/graphql/types/objects/next-action.md): If present, this property tells you what actions you need to take in order for your customer to fulfill a payment using the provided source. - [PayPalLink](https://docs.monei.com/apis/graphql/types/objects/pay-pal-link.md): PayPal account-linking link. - [PaymentAction](https://docs.monei.com/apis/graphql/types/objects/payment-action.md): Action a payment rule applies when its conditions match. Which fields are populated depends on type. - [PaymentCondition](https://docs.monei.com/apis/graphql/types/objects/payment-condition.md): Single condition evaluated against a transaction field (e.g. amount, currency, paymentMethod.card.brand, sessionDetails.countryCode). - [PaymentConditions](https://docs.monei.com/apis/graphql/types/objects/payment-conditions.md): Set of conditions combined with AND/OR. The whole group must evaluate to true for the rule's action to apply. - [PaymentMethodBizum](https://docs.monei.com/apis/graphql/types/objects/payment-method-bizum.md): Details about the Bizum account used as payment method at the time of the transaction. - [PaymentMethodCardPresent](https://docs.monei.com/apis/graphql/types/objects/payment-method-card-present.md): Card-present (in-person/terminal) payment data. - [PaymentMethodCard](https://docs.monei.com/apis/graphql/types/objects/payment-method-card.md): Details about the card used as payment method at the time of the transaction. - [PaymentMethodKlarna](https://docs.monei.com/apis/graphql/types/objects/payment-method-klarna.md): Details from Klarna order used as payment method at the time of the transaction. - [PaymentMethodMBWay](https://docs.monei.com/apis/graphql/types/objects/payment-method-mbway.md): Details from MBWay order used as payment method at the time of the transaction. - [PaymentMethodPaypal](https://docs.monei.com/apis/graphql/types/objects/payment-method-paypal.md): Details from Paypal order used as payment method at the time of the transaction. - [PaymentMethodSepa](https://docs.monei.com/apis/graphql/types/objects/payment-method-sepa.md): Details from SEPA order used as payment method at the time of the transaction. - [PaymentMethodTrustly](https://docs.monei.com/apis/graphql/types/objects/payment-method-trustly.md): Details from Trustly order used as payment method at the time of the transaction. - [PaymentMethod](https://docs.monei.com/apis/graphql/types/objects/payment-method.md): Details about the payment method at the time of the transaction. Only the sub-object matching method is populated. - [PaymentRule](https://docs.monei.com/apis/graphql/types/objects/payment-rule.md): Conditional rule the merchant configures to control card routing or payment-method visibility. Rules are evaluated per transaction; when conditions match, action is applied. - [PaymentRulesConnection](https://docs.monei.com/apis/graphql/types/objects/payment-rules-connection.md): Paginated list of payment rules. - [Payment](https://docs.monei.com/apis/graphql/types/objects/payment.md): Payment returned from create/refund/capture/cancel and the send-link/receipt mutations. - [Period](https://docs.monei.com/apis/graphql/types/objects/period.md): Inclusive [from, to] time window covered by an account invoice. - [PointOfSale](https://docs.monei.com/apis/graphql/types/objects/point-of-sale.md): Point of sale belonging to an account, optionally scoped to a store. See PointOfSaleType. - [PointsOfSaleConnection](https://docs.monei.com/apis/graphql/types/objects/points-of-sale-connection.md): Paginated list of points of sale. - [ProviderConfig](https://docs.monei.com/apis/graphql/types/objects/provider-config.md): Configuration template for a payment-method/processor pair. Describes which acquirers are valid and which metadata fields the provider expects. - [ProviderRules](https://docs.monei.com/apis/graphql/types/objects/provider-rules.md): Routing rules that gate when a provider is selected for a payment. - [Provider](https://docs.monei.com/apis/graphql/types/objects/provider.md): Configured payment provider that routes a specific payment method to a processor/acquirer pair. - [Redirect](https://docs.monei.com/apis/graphql/types/objects/redirect.md): Generic redirect target. - [RegisterApplePayDomain](https://docs.monei.com/apis/graphql/types/objects/register-apple-pay-domain.md): A successful response. - [RepresentativeData](https://docs.monei.com/apis/graphql/types/objects/representative-data.md): Legal representative of a merchant account, used for KYC/AML compliance. - [Representative](https://docs.monei.com/apis/graphql/types/objects/representative.md): Legal representative or beneficial owner of the merchant business. - [RepresentativesConnection](https://docs.monei.com/apis/graphql/types/objects/representatives-connection.md): Paginated list of legal representatives. - [RetrySchedule](https://docs.monei.com/apis/graphql/types/objects/retry-schedule.md): Defines a custom schedule for retrying failed subscription payments. Each entry specifies how long to wait before attempting the next payment retry. - [SessionDetails](https://docs.monei.com/apis/graphql/types/objects/session-details.md): Information related to the browsing session of the user who initiated the payment. - [Session](https://docs.monei.com/apis/graphql/types/objects/session.md): Hosted session for identity verification, document upload, or bank verification. - [SettlementEventObject](https://docs.monei.com/apis/graphql/types/objects/settlement-event-object.md): Settlement snapshot embedded in a SettlementEvent (state at the time the event was emitted). Mirrors AccountSettlement plus internal lifecycle fields. - [SettlementEvent](https://docs.monei.com/apis/graphql/types/objects/settlement-event.md): Lifecycle event for a settlement (status transition or balance update). - [SettlementEventsConnection](https://docs.monei.com/apis/graphql/types/objects/settlement-events-connection.md): Paginated list of settlement events. - [SftpConfigExport](https://docs.monei.com/apis/graphql/types/objects/sftp-config-export.md): SFTP destination for scheduled daily charges exports. The previous day's charges are pushed at 06:00 UTC when enabled is true. - [SftpConfigExportsConnection](https://docs.monei.com/apis/graphql/types/objects/sftp-config-exports-connection.md): List of SFTP export configs for the account. - [Shop](https://docs.monei.com/apis/graphql/types/objects/shop.md): The information about the shop (used in hosted payment page). - [ShopifyShopSettings](https://docs.monei.com/apis/graphql/types/objects/shopify-shop-settings.md): Settings of a single Shopify shop installation linked to the caller's account. - [ShopifyStore](https://docs.monei.com/apis/graphql/types/objects/shopify-store.md): Shopify shop connected to a MONEI account for a specific MONEI Shopify app. One row per (domain, paymentMethod) pair. - [ShopifyStoresConnection](https://docs.monei.com/apis/graphql/types/objects/shopify-stores-connection.md): Paginated list of Shopify shops connected to the account. - [Store](https://docs.monei.com/apis/graphql/types/objects/store.md): Merchant store (physical location or online shop) within an account. Stores group points of sale and other resources for multi-store businesses. Hierarchy: Account > Store > PointOfSale > Terminal. - [StoresConnection](https://docs.monei.com/apis/graphql/types/objects/stores-connection.md): Paginated list of stores. - [SubscriptionEventObject](https://docs.monei.com/apis/graphql/types/objects/subscription-event-object.md): Subscription snapshot embedded in a SubscriptionEvent. - [SubscriptionEvent](https://docs.monei.com/apis/graphql/types/objects/subscription-event.md): Lifecycle event emitted when a subscription is created or its state changes. - [SubscriptionEventsConnection](https://docs.monei.com/apis/graphql/types/objects/subscription-events-connection.md): Paginated list of subscription events. - [Subscription](https://docs.monei.com/apis/graphql/types/objects/subscription.md): Recurring subscription billing a customer on a fixed cadence. - [SubscriptionsConnection](https://docs.monei.com/apis/graphql/types/objects/subscriptions-connection.md): Paginated list of subscriptions. - [TraceDetails](https://docs.monei.com/apis/graphql/types/objects/trace-details.md): Information related to the user who initiated the operation, including device, browser, and dashboard user identity. - [UpdateShopifyShopSettingsResult](https://docs.monei.com/apis/graphql/types/objects/update-shopify-shop-settings-result.md): Result of updateShopifyShopSettings. Echoes the persisted values. - [UploadFile](https://docs.monei.com/apis/graphql/types/objects/upload-file.md): Pre-signed URL for uploading a file to MONEI storage. - [Webhook](https://docs.monei.com/apis/graphql/types/objects/webhook.md): HTTP endpoint that receives MONEI events. Each delivery is signed with the account's API key (MONEI-Signature: t=,v1= over .). Failed deliveries are retried with exponential backoff; the webhook is automatically disabled and lastResponse recorded once retries are exhausted. - [WebhooksConnection](https://docs.monei.com/apis/graphql/types/objects/webhooks-connection.md): Paginated list of webhooks. - [AWSDateTime](https://docs.monei.com/apis/graphql/types/scalars/awsdate-time.md): The AWSDateTime scalar type provided by AWS AppSync, represents a valid ***extended*** ISO 8601 DateTime string. In other words, this scalar type accepts datetime strings of the form YYYY-MM-DDThhss.SSSZ. The scalar can also accept "negative years" of the form -YYYY which correspond to years before 0000. For example, "**-2017-01-01T0000Z**" are both valid datetime strings. The field after the two digit seconds field is a nanoseconds field. It can accept between 1 and 9 digits. So, for example, "**1970-01-01T1200.2Z**", "**1970-01-01T1200.277Z**" and "**1970-01-01T1200.123456789Z**" are all valid datetime strings. The seconds and nanoseconds fields are optional (the seconds field must be specified if the nanoseconds field is to be used). The time zone offset is compulsory for this scalar. The time zone offset must either be Z (representing the UTC time zone) or be in the format ±hhss. The seconds field in the timezone offset will be considered valid even though it is not part of the ISO 8601 standard. - [AWSEmail](https://docs.monei.com/apis/graphql/types/scalars/awsemail.md): The AWSEmail scalar type provided by AWS AppSync, represents an Email address string that complies with RFC 822. For example, "**username@example.com**" is a valid Email address. - [AWSIPAddress](https://docs.monei.com/apis/graphql/types/scalars/awsipaddress.md): The AWSIPAddress scalar type provided by AWS AppSync, represents a valid IPv4 or IPv6 address string. IP addresses with subnet masks are considered valid. However, subnet masks are not necessary. For example, "**127.0.0.1**" and "**127.0.0.1/8**" are both considered valid IP Addresses. - [AWSPhone](https://docs.monei.com/apis/graphql/types/scalars/awsphone.md): The AWSPhone scalar type provided by AWS AppSync, represents a valid Phone Number. Phone numbers are serialized and deserialized as Strings. Segments of the phone number may be whitespace delimited or hyphenated. The number can specify a country code at the beginning. However, United States numbers without country codes are still considered to be valid. - [AWSTimestamp](https://docs.monei.com/apis/graphql/types/scalars/awstimestamp.md): The AWSTimestamp scalar type provided by AWS AppSync, represents the number of seconds that have elapsed since 1970-01-01T0000Z. Timestamps are serialized and deserialized as integers. The minimum supported timestamp value is **-31557014167219200* which corresponds to -1000000000-01-01T0059:59.999999999Z. - [Boolean](https://docs.monei.com/apis/graphql/types/scalars/boolean.md): The Boolean scalar type represents true or false. - [Float](https://docs.monei.com/apis/graphql/types/scalars/float.md): The Float scalar type represents signed double-precision fractional values as specified by IEEE 754. - [ID](https://docs.monei.com/apis/graphql/types/scalars/id.md): The ID scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "4") or integer (such as 4) input value will be accepted as an ID. - [Int](https://docs.monei.com/apis/graphql/types/scalars/int.md): The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1. - [Long](https://docs.monei.com/apis/graphql/types/scalars/long.md): Long type - [String](https://docs.monei.com/apis/graphql/types/scalars/string.md): The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. - [MONEI REST API](https://docs.monei.com/apis/rest.md): Complete reference documentation for the MONEI API. Includes representative code snippets and examples for our PHP and Node.js client libraries. - [Apple Pay Certificate](https://docs.monei.com/apis/rest/apple-pay-certificate.md): Apple Pay Certificate - [Activate Certificate](https://docs.monei.com/apis/rest/apple-pay-certificates-activate.md): Activates an Apple Pay certificate by uploading the signed certificate from Apple. - [Create Certificate](https://docs.monei.com/apis/rest/apple-pay-certificates-create.md): Creates a new Apple Pay certificate by generating a Certificate Signing Request (CSR). - [List Certificates](https://docs.monei.com/apis/rest/apple-pay-certificates-get-all.md): Retrieves all Apple Pay certificates for your account. - [Get Certificate](https://docs.monei.com/apis/rest/apple-pay-certificates-get.md): Retrieves a specific Apple Pay certificate by its ID. - [Delete Certificate](https://docs.monei.com/apis/rest/apple-pay-certificates-remove.md): Deletes an Apple Pay certificate. - [Update Certificate](https://docs.monei.com/apis/rest/apple-pay-certificates-update.md): Updates an Apple Pay certificate's active status. - [Register Domain](https://docs.monei.com/apis/rest/apple-pay-domain-register.md): Registers a domain with Apple Pay. - [Apple Pay Domain](https://docs.monei.com/apis/rest/apple-pay-domain.md): Apple Pay Domain - [Validate Phone](https://docs.monei.com/apis/rest/bizum-validate-phone.md): Validates if a phone number is registered with Bizum. - [Bizum](https://docs.monei.com/apis/rest/bizum.md): Bizum - [MONEI API v1](https://docs.monei.com/apis/rest/monei-api-v-1.md): The MONEI API is organized around REST principles. Our API is designed to be intuitive and developer-friendly. - [Get Allowed Payment Methods](https://docs.monei.com/apis/rest/payment-methods-get-allowed.md): Retrieve allowed payment methods for your account. Requires API key authentication. - [Get Client Payment Methods](https://docs.monei.com/apis/rest/payment-methods-get-client.md): Retrieve available payment methods from the client side. No authentication required. - [Get Payment Methods](https://docs.monei.com/apis/rest/payment-methods-get.md): **Deprecated.** Use [Get Allowed Payment Methods](#tag/Payment-Methods/operation/paymentMethods_getAllowed) for server-side (API key) or [Get Client Payment Methods](#tag/Payment-Methods/operation/paymentMethods_getClient) for client-side usage instead. - [Payment Methods](https://docs.monei.com/apis/rest/payment-methods.md): Payment Methods - [Cancel Payment](https://docs.monei.com/apis/rest/payments-cancel.md): Releases reserved funds from a previously authorized payment. This endpoint can only - [Capture Payment](https://docs.monei.com/apis/rest/payments-capture.md): Captures funds from a previously authorized payment. This endpoint can only be used with payments - [Confirm Payment](https://docs.monei.com/apis/rest/payments-confirm.md): Confirms a payment that was created without payment details. This endpoint can only be used with - [Create Payment](https://docs.monei.com/apis/rest/payments-create.md): Creates a new payment with the specified parameters. - [Get Payment](https://docs.monei.com/apis/rest/payments-get.md): Retrieves the complete details of an existing payment by its unique ID. - [Recurring Payment](https://docs.monei.com/apis/rest/payments-recurring.md): Creates a subsequent charge using the payment details from a previous transaction. - [Refund Payment](https://docs.monei.com/apis/rest/payments-refund.md): Returns funds from a completed payment back to the customer's original payment method. - [Send Payment Link](https://docs.monei.com/apis/rest/payments-send-link.md): Sends a payment link to the customer through their preferred communication channel. - [Send Payment Receipt](https://docs.monei.com/apis/rest/payments-send-receipt.md): Sends a payment receipt to the customer through their preferred communication channel. - [Send Payment Request](https://docs.monei.com/apis/rest/payments-send-request.md): Sends a direct payment request to the customer's phone with smart channel selection. - [Payments](https://docs.monei.com/apis/rest/payments.md): Payments - [Create POS Auth Token](https://docs.monei.com/apis/rest/pos-auth-token-create.md): Generates an RS256-signed JWT token for POS terminal authentication. - [POS Auth Token](https://docs.monei.com/apis/rest/pos-auth-token.md): POS Auth Token - [AccountId](https://docs.monei.com/apis/rest/schemas/accountid.md): MONEI Account identifier. - [ActivateApplePayCertificateRequest](https://docs.monei.com/apis/rest/schemas/activateapplepaycertificaterequest.md) - [ActivateSubscriptionRequest](https://docs.monei.com/apis/rest/schemas/activatesubscriptionrequest.md) - [Address](https://docs.monei.com/apis/rest/schemas/address.md) - [ApiException](https://docs.monei.com/apis/rest/schemas/apiexception.md) - [ApplePayCertificate](https://docs.monei.com/apis/rest/schemas/applepaycertificate.md): An Apple Pay certificate for iOS app integration. - [BadRequestError](https://docs.monei.com/apis/rest/schemas/badrequesterror.md) - [Browser](https://docs.monei.com/apis/rest/schemas/browser.md): The browser used in this browser session (e.g., `Mobile Safari`). - [BrowserAccept](https://docs.monei.com/apis/rest/schemas/browseraccept.md): Browser accept header. - [BrowserColorDepth](https://docs.monei.com/apis/rest/schemas/browsercolordepth.md): The color depth of the browser session (e.g., `24`). - [BrowserScreenHeight](https://docs.monei.com/apis/rest/schemas/browserscreenheight.md): The screen height of the browser session (e.g., `1152`). - [BrowserScreenWidth](https://docs.monei.com/apis/rest/schemas/browserscreenwidth.md): The screen width of the browser session (e.g., `2048`). - [BrowserTimezoneOffset](https://docs.monei.com/apis/rest/schemas/browsertimezoneoffset.md): The timezone offset of the browser session (e.g., `-120`). - [BrowserVersion](https://docs.monei.com/apis/rest/schemas/browserversion.md): The version for the browser session (e.g., `13.1.1`). - [CancelPaymentRequest](https://docs.monei.com/apis/rest/schemas/cancelpaymentrequest.md) - [CancelSubscriptionRequest](https://docs.monei.com/apis/rest/schemas/cancelsubscriptionrequest.md) - [CapturePaymentRequest](https://docs.monei.com/apis/rest/schemas/capturepaymentrequest.md) - [CardholderEmail](https://docs.monei.com/apis/rest/schemas/cardholderemail.md): The cardholder's email address. - [CardholderName](https://docs.monei.com/apis/rest/schemas/cardholdername.md): The cardholder's name, as stated in the credit card. - [ConfirmPaymentRequest](https://docs.monei.com/apis/rest/schemas/confirmpaymentrequest.md) - [Country](https://docs.monei.com/apis/rest/schemas/country.md): Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). - [CreatedAt](https://docs.monei.com/apis/rest/schemas/createdat.md): Time at which the resource was created. Measured in seconds since the Unix epoch. - [CreatePaymentRequest](https://docs.monei.com/apis/rest/schemas/createpaymentrequest.md) - [CreatePosAuthTokenRequest](https://docs.monei.com/apis/rest/schemas/createposauthtokenrequest.md) - [CreateSubscriptionRequest](https://docs.monei.com/apis/rest/schemas/createsubscriptionrequest.md) - [DeviceModel](https://docs.monei.com/apis/rest/schemas/devicemodel.md): Information about the device used for the browser session (e.g., `iPhone`). - [DeviceType](https://docs.monei.com/apis/rest/schemas/devicetype.md): Device type, could be `desktop`, `mobile`, `smartTV`, `tablet`. - [DomainName](https://docs.monei.com/apis/rest/schemas/domainname.md): The domain name to register for Apple Pay. - [InternalServerError](https://docs.monei.com/apis/rest/schemas/internalservererror.md) - [IP](https://docs.monei.com/apis/rest/schemas/ip.md): The IP address where the operation originated. - [Lang](https://docs.monei.com/apis/rest/schemas/lang.md): Two-letter language code ([ISO 639-1](https://en.wikipedia.org/wiki/ISO_639-1)). - [Livemode](https://docs.monei.com/apis/rest/schemas/livemode.md): Has the value `true` if the resource exists in live mode or the value `false` if the resource exists in test mode. - [Metadata](https://docs.monei.com/apis/rest/schemas/metadata.md): A set of key-value pairs that you can attach to a resource. This can be useful for storing additional information about the resource in a structured format. - [NotFoundError](https://docs.monei.com/apis/rest/schemas/notfounderror.md) - [Os](https://docs.monei.com/apis/rest/schemas/os.md): Operation system (e.g., `iOS`). - [OsVersion](https://docs.monei.com/apis/rest/schemas/osversion.md): Operation system version (e.g., `13.5.1`). - [PauseSubscriptionRequest](https://docs.monei.com/apis/rest/schemas/pausesubscriptionrequest.md) - [Payment-Amount](https://docs.monei.com/apis/rest/schemas/payment-amount.md): Amount intended to be collected by this payment. A positive integer - [Payment-AuthorizationCode](https://docs.monei.com/apis/rest/schemas/payment-authorizationcode.md): Unique identifier provided by the bank performing transaction. - [Payment-AutoRecover](https://docs.monei.com/apis/rest/schemas/payment-autorecover.md): If set to `true`, the new payment will be automatically created when customer visits the payment link of the previously failed payment. Is automatically set to `true` if `completeUrl` is not provided.(set this value to `true` to create 'Pay By Link' payments). - [Payment-BillingDetails](https://docs.monei.com/apis/rest/schemas/payment-billingdetails.md): Billing information associated with the payment method - [Payment-CallbackUrl](https://docs.monei.com/apis/rest/schemas/payment-callbackurl.md): The URL to which a payment result should be sent asynchronously. - [Payment-CancellationReason](https://docs.monei.com/apis/rest/schemas/payment-cancellationreason.md): The reason for canceling the Payment. - [Payment-CancelUrl](https://docs.monei.com/apis/rest/schemas/payment-cancelurl.md): The URL the customer will be directed to if they decide to cancel - [Payment-CompleteUrl](https://docs.monei.com/apis/rest/schemas/payment-completeurl.md): The URL the customer will be directed to after transaction - [Payment-Currency](https://docs.monei.com/apis/rest/schemas/payment-currency.md): Three-letter [ISO currency code](https://en.wikipedia.org/wiki/ISO_4217), - [Payment-Customer](https://docs.monei.com/apis/rest/schemas/payment-customer.md) - [Payment-Description](https://docs.monei.com/apis/rest/schemas/payment-description.md): An arbitrary string attached to the payment. Often useful for - [Payment-ExpireAt](https://docs.monei.com/apis/rest/schemas/payment-expireat.md): Payment expiration time. - [Payment-FailUrl](https://docs.monei.com/apis/rest/schemas/payment-failurl.md): The URL the customer will be directed to after transaction has failed, - [Payment-GeneratePaymentToken](https://docs.monei.com/apis/rest/schemas/payment-generatepaymenttoken.md): If set to true a permanent token that represents a payment - [Payment-Id](https://docs.monei.com/apis/rest/schemas/payment-id.md): Unique identifier for the payment. - [Payment-LastRefundAmount](https://docs.monei.com/apis/rest/schemas/payment-lastrefundamount.md): Amount in cents refunded in the last transaction. - [Payment-LastRefundReason](https://docs.monei.com/apis/rest/schemas/payment-lastrefundreason.md): The reason of the last refund transaction. - [Payment-MessageChannel](https://docs.monei.com/apis/rest/schemas/payment-messagechannel.md): The channel used to send the payment message. - [Payment-MessageLanguage](https://docs.monei.com/apis/rest/schemas/payment-messagelanguage.md): The language of message sent to the customer. If not provided the default customer language is used if available. - [Payment-NextAction](https://docs.monei.com/apis/rest/schemas/payment-nextaction.md): If present, this property tells you what actions you need - [Payment-OrderId](https://docs.monei.com/apis/rest/schemas/payment-orderid.md): An order ID from your system. A unique identifier that can be used - [Payment-PaymentMethod](https://docs.monei.com/apis/rest/schemas/payment-paymentmethod.md): Details about the payment method at the time of the transaction. - [Payment-PaymentMethodBizum](https://docs.monei.com/apis/rest/schemas/payment-paymentmethodbizum.md): Details about the Bizum account used as payment method at the time of the transaction. - [Payment-PaymentMethodBizumInput](https://docs.monei.com/apis/rest/schemas/payment-paymentmethodbizuminput.md): Details about the Bizum account used for this payment. - [Payment-PaymentMethodCard](https://docs.monei.com/apis/rest/schemas/payment-paymentmethodcard.md): Details about the card used as payment method at the time of the transaction. - [Payment-PaymentMethodCardInput](https://docs.monei.com/apis/rest/schemas/payment-paymentmethodcardinput.md): Details about the card used as payment method. - [Payment-PaymentMethodInput](https://docs.monei.com/apis/rest/schemas/payment-paymentmethodinput.md): An information about a payment method used for this payment. - [Payment-PaymentMethodKlarna](https://docs.monei.com/apis/rest/schemas/payment-paymentmethodklarna.md): Details from Klarna order used as payment method at the time of the transaction. - [Payment-PaymentMethodMbway](https://docs.monei.com/apis/rest/schemas/payment-paymentmethodmbway.md): Details from MBWay order used as payment method at the time of the transaction. - [Payment-PaymentMethodPaypal](https://docs.monei.com/apis/rest/schemas/payment-paymentmethodpaypal.md): Details from Paypal order used as payment method at the time of the transaction. - [Payment-PaymentMethods](https://docs.monei.com/apis/rest/schemas/payment-paymentmethods.md): An array of allowed payment methods (used in hosted payment - [Payment-PaymentMethodSepa](https://docs.monei.com/apis/rest/schemas/payment-paymentmethodsepa.md): Details from SEPA order used as payment method at the time of the transaction. - [Payment-PaymentMethodTrustly](https://docs.monei.com/apis/rest/schemas/payment-paymentmethodtrustly.md): Details from Trustly order used as payment method at the time of the transaction. - [Payment-PaymentToken](https://docs.monei.com/apis/rest/schemas/payment-paymenttoken.md): A permanent token represents a payment method used in the - [Payment-PointOfSaleId](https://docs.monei.com/apis/rest/schemas/payment-pointofsaleid.md): A unique identifier of the Point of Sale. If specified the payment is attached to this Point of Sale. If there is a QR code attached to the same Point of Sale, this payment will be available by scanning the QR code. - [Payment-RefundedAmount](https://docs.monei.com/apis/rest/schemas/payment-refundedamount.md): Amount in cents refunded (can be less than the amount - [Payment-RefundReason](https://docs.monei.com/apis/rest/schemas/payment-refundreason.md): The reason for refunding the Payment. - [Payment-Sequence](https://docs.monei.com/apis/rest/schemas/payment-sequence.md): This field needs to be sent in order to mark the beginning of a sequence of payments - [Payment-SequenceId](https://docs.monei.com/apis/rest/schemas/payment-sequenceid.md): A permanent identifier that refers to the initial payment of - [Payment-SequenceRecurring](https://docs.monei.com/apis/rest/schemas/payment-sequencerecurring.md): Specific configurations for recurring payments. - [Payment-SessionDetails](https://docs.monei.com/apis/rest/schemas/payment-sessiondetails.md): Information related to the browsing session of the user - [Payment-SessionId](https://docs.monei.com/apis/rest/schemas/payment-sessionid.md): A unique identifier within your system that adds security to the - [Payment-ShippingDetails](https://docs.monei.com/apis/rest/schemas/payment-shippingdetails.md): Shipping information associated with the payment. - [Payment-Shop](https://docs.monei.com/apis/rest/schemas/payment-shop.md): The information about the shop (used in - [Payment-Status](https://docs.monei.com/apis/rest/schemas/payment-status.md): The status of the payment. - [Payment-StatusCode](https://docs.monei.com/apis/rest/schemas/payment-statuscode.md): Payment status code. - [Payment-StatusMessage](https://docs.monei.com/apis/rest/schemas/payment-statusmessage.md): Human readable status message, can be displayed to a user. - [Payment-StoreId](https://docs.monei.com/apis/rest/schemas/payment-storeid.md): A unique identifier of the Store. If specified the payment is attached to this Store. - [Payment-SubscriptionId](https://docs.monei.com/apis/rest/schemas/payment-subscriptionid.md): A unique identifier of the Subscription. If specified the payment is attached to this Subscription. - [Payment-TraceDetails](https://docs.monei.com/apis/rest/schemas/payment-tracedetails.md): Information related to the browsing session of the user - [Payment-TransactionType](https://docs.monei.com/apis/rest/schemas/payment-transactiontype.md): Controls when the funds will be captured. - [Payment](https://docs.monei.com/apis/rest/schemas/payment.md) - [PaymentMethods-Amount](https://docs.monei.com/apis/rest/schemas/paymentmethods-amount.md): The amount of the payment in the smallest currency unit. - [PaymentMethods-Currency](https://docs.monei.com/apis/rest/schemas/paymentmethods-currency.md): Three-letter ISO currency code, in uppercase. - [PaymentMethods-MerchantName](https://docs.monei.com/apis/rest/schemas/paymentmethods-merchantname.md): The name of the merchant - [PaymentMethods-MerchantUrl](https://docs.monei.com/apis/rest/schemas/paymentmethods-merchanturl.md): The URL of the merchant's website - [PaymentMethods-Metadata](https://docs.monei.com/apis/rest/schemas/paymentmethods-metadata.md): Additional configuration details for each payment method. - [PaymentMethods-Methods](https://docs.monei.com/apis/rest/schemas/paymentmethods-methods.md): An array of available payment methods for the account or payment. - [PaymentMethods](https://docs.monei.com/apis/rest/schemas/paymentmethods.md) - [RecurringPaymentRequest](https://docs.monei.com/apis/rest/schemas/recurringpaymentrequest.md) - [RefundPaymentRequest](https://docs.monei.com/apis/rest/schemas/refundpaymentrequest.md) - [RegisterApplePayDomainRequest](https://docs.monei.com/apis/rest/schemas/registerapplepaydomainrequest.md) - [SendPaymentLinkRequest](https://docs.monei.com/apis/rest/schemas/sendpaymentlinkrequest.md) - [SendPaymentReceiptRequest](https://docs.monei.com/apis/rest/schemas/sendpaymentreceiptrequest.md) - [SendPaymentRequestRequest](https://docs.monei.com/apis/rest/schemas/sendpaymentrequestrequest.md) - [SendSubscriptionLinkRequest](https://docs.monei.com/apis/rest/schemas/sendsubscriptionlinkrequest.md) - [SendSubscriptionStatusRequest](https://docs.monei.com/apis/rest/schemas/sendsubscriptionstatusrequest.md) - [ServiceUnavailableError](https://docs.monei.com/apis/rest/schemas/serviceunavailableerror.md) - [Source](https://docs.monei.com/apis/rest/schemas/source.md): The source component from where the operation was generated (mostly for our SDK's). - [SourceVersion](https://docs.monei.com/apis/rest/schemas/sourceversion.md): The source component version from where the operation was generated (mostly for our SDK's). - [Subscription-CallbackUrl](https://docs.monei.com/apis/rest/schemas/subscription-callbackurl.md): The URL will be called each time subscription status changes. You will receive a subscription object in the body of the request. - [Subscription-CancelAtPeriodEnd](https://docs.monei.com/apis/rest/schemas/subscription-cancelatperiodend.md): If true, the subscription will be canceled at the end of the current period. - [Subscription-CurrentPeriodEnd](https://docs.monei.com/apis/rest/schemas/subscription-currentperiodend.md): The end date of the current subscription period. Measured in seconds since the Unix epoch. - [Subscription-CurrentPeriodStart](https://docs.monei.com/apis/rest/schemas/subscription-currentperiodstart.md): The start date of the current subscription period. Measured in seconds since the Unix epoch. - [Subscription-Description](https://docs.monei.com/apis/rest/schemas/subscription-description.md): An arbitrary string attached to the subscription. Often useful for - [Subscription-Id](https://docs.monei.com/apis/rest/schemas/subscription-id.md): Unique identifier for the subscription. - [Subscription-Interval](https://docs.monei.com/apis/rest/schemas/subscription-interval.md): Subscription interval. The `minute` and `hour` intervals are only available in test mode. - [Subscription-IntervalCount](https://docs.monei.com/apis/rest/schemas/subscription-intervalcount.md): Number of intervals between subscription payments. - [Subscription-LastPayment](https://docs.monei.com/apis/rest/schemas/subscription-lastpayment.md) - [Subscription-NextPaymentAt](https://docs.monei.com/apis/rest/schemas/subscription-nextpaymentat.md): The date when the next payment will be made. - [Subscription-PauseAtPeriodEnd](https://docs.monei.com/apis/rest/schemas/subscription-pauseatperiodend.md): If true, the subscription will be paused at the end of the current period. - [Subscription-PauseIntervalCount](https://docs.monei.com/apis/rest/schemas/subscription-pauseintervalcount.md): Number of intervals when subscription will be paused before it activates again. - [Subscription-PaymentCallbackUrl](https://docs.monei.com/apis/rest/schemas/subscription-paymentcallbackurl.md): The URL will be called each time subscription creates a new payments. You will receive the payment object in the body of the request. - [Subscription-PaymentMethod](https://docs.monei.com/apis/rest/schemas/subscription-paymentmethod.md): Details about the payment method at the time of the transaction. - [Subscription-PaymentMethodCard](https://docs.monei.com/apis/rest/schemas/subscription-paymentmethodcard.md): Details about the card used as payment method at the time of the transaction. - [Subscription-PaymentMethods](https://docs.monei.com/apis/rest/schemas/subscription-paymentmethods.md): List of payment methods allowed for subscriptions. - [Subscription-RetryCount](https://docs.monei.com/apis/rest/schemas/subscription-retrycount.md): Number of retries left for the subscription. - [Subscription-RetrySchedule](https://docs.monei.com/apis/rest/schemas/subscription-retryschedule.md): Defines a custom schedule for retrying failed subscription payments. Each entry in the array specifies how long to wait before attempting the next payment retry. - [Subscription-SkipIntervalCount](https://docs.monei.com/apis/rest/schemas/subscription-skipintervalcount.md): The number of intervals during which the subscription billing cycle will be skipped without altering the subscription status. This is useful when payment for a specific period is received through different methods. - [Subscription-Status](https://docs.monei.com/apis/rest/schemas/subscription-status.md): The status of the subscription. - [Subscription-TrialPeriodDays](https://docs.monei.com/apis/rest/schemas/subscription-trialperioddays.md): Number of days the trial period lasts. - [Subscription-TrialPeriodEnd](https://docs.monei.com/apis/rest/schemas/subscription-trialperiodend.md): The end date of the trial period. Measured in seconds since the Unix epoch. - [Subscription](https://docs.monei.com/apis/rest/schemas/subscription.md) - [UnauthorizedError](https://docs.monei.com/apis/rest/schemas/unauthorizederror.md) - [UnprocessableEntityError](https://docs.monei.com/apis/rest/schemas/unprocessableentityerror.md) - [UpdateApplePayCertificateRequest](https://docs.monei.com/apis/rest/schemas/updateapplepaycertificaterequest.md) - [UpdatedAt](https://docs.monei.com/apis/rest/schemas/updatedat.md): Time at which the resource updated last time. Measured in seconds since the Unix epoch. - [UpdateSubscriptionRequest](https://docs.monei.com/apis/rest/schemas/updatesubscriptionrequest.md) - [UserAgent](https://docs.monei.com/apis/rest/schemas/useragent.md): Full user agent string of the browser session. - [ValidateBizumPhoneRequest](https://docs.monei.com/apis/rest/schemas/validatebizumphonerequest.md) - [Activate Subscription](https://docs.monei.com/apis/rest/subscriptions-activate.md): Activates a subscription by attaching a payment method and initiating the billing cycle. - [Cancel Subscription](https://docs.monei.com/apis/rest/subscriptions-cancel.md): Cancels an active subscription, permanently stopping the billing cycle. - [Create Subscription](https://docs.monei.com/apis/rest/subscriptions-create.md): Creates a new subscription with the specified parameters. - [Get Subscription](https://docs.monei.com/apis/rest/subscriptions-get.md): Retrieves the complete details of an existing subscription by its unique ID. - [Pause Subscription](https://docs.monei.com/apis/rest/subscriptions-pause.md): Pauses an active subscription, temporarily halting the billing cycle. - [Resume Subscription](https://docs.monei.com/apis/rest/subscriptions-resume.md): Resumes a previously paused subscription, reactivating the billing cycle. - [Send Subscription Link](https://docs.monei.com/apis/rest/subscriptions-send-link.md): Sends a subscription activation link to the customer through their preferred communication channel. - [Send Subscription Status](https://docs.monei.com/apis/rest/subscriptions-send-status.md): Sends subscription status information to the customer through their preferred communication channel. - [Update Subscription](https://docs.monei.com/apis/rest/subscriptions-update.md): Updates the configuration of an existing subscription. - [Subscriptions](https://docs.monei.com/apis/rest/subscriptions.md): Subscriptions ## channel-tokenization - [Hotels Channel Managers](https://docs.monei.com/channel-tokenization.md): This document outlines the process of payment card tokenization, where card information is received. ## e-commerce - [Adobe Commerce (Magento 2)](https://docs.monei.com/e-commerce/adobe-commerce.md): To accept payments through MONEI in your Adobe Commerce (Magento 2) store you simply need to install and configure MONEI Adobe Commerce Extension. - [commercetools](https://docs.monei.com/e-commerce/commercetools.md): Accept Bizum, card payments, Apple Pay, Google Pay, and SEPA Direct Debit in your commercetools store with the MONEI payment connector. - [PrestaShop](https://docs.monei.com/e-commerce/prestashop.md): To accept payments through MONEI in your PrestaShop store you simply need to install and configure MONEI PrestaShop Module. - [Salesforce Commerce Cloud](https://docs.monei.com/e-commerce/salesforce.md): To accept payments through MONEI in your SalesForce Commerce Cloud store you simply need to install and configure the MONEI SalesForce Plugin. - [Hide Payment Methods by Country](https://docs.monei.com/e-commerce/shopify/hide-payment-methods.md): Learn how to hide payment methods on your Shopify checkout based on customer country location using Checkout Blocks (Shopify Plus) or Puco (standard Shopify). - [MONEI Bizum](https://docs.monei.com/e-commerce/shopify/monei-bizum.md): Accept Bizum payments through MONEI in your Shopify store by installing and configuring the MONEI Pay · Bizum Shopify App. - [MONEI MB Way](https://docs.monei.com/e-commerce/shopify/monei-mbway.md): Accept MB Way payments through MONEI in your Shopify store by installing and configuring the MONEI MB Way Shopify App. - [MONEI Multibanco](https://docs.monei.com/e-commerce/shopify/monei-multibanco.md): Accept Multibanco payments through MONEI in your Shopify store by installing and configuring the MONEI Multibanco Shopify App. - [MONEI Onsite](https://docs.monei.com/e-commerce/shopify/monei-onsite.md): Accept payments directly on your Shopify store by installing and configuring the MONEI Onsite Shopify App. - [MONEI Payments](https://docs.monei.com/e-commerce/shopify/monei-payments.md): To accept payments through MONEI in your Shopify store you simply need to install and configure MONEI Payments Shopify App. - [WIX](https://docs.monei.com/e-commerce/wix.md): To accept payments through MONEI in your WIX store you simply need to install MONEI in WIX App Market. - [WooCommerce](https://docs.monei.com/e-commerce/woocommerce.md): To accept payments through MONEI in your WooCommerce store you simply need to install and configure MONEI WooCommerce Plugin. ## eurm-stablecoin - [EURM Stablecoin](https://docs.monei.com/eurm-stablecoin.md): EURM is a euro-pegged stablecoin by MONEI built on Ethereum and Polygon for digital payments. ## getting-started - [Getting started](https://docs.monei.com/getting-started.md): Find a guide to integrate MONEI into your system ## guides - [Ethoca & Verifi Sync](https://docs.monei.com/guides/ethoca-verifi.md): Integrate Ethoca and Verifi services to reduce chargebacks and improve transaction oversight. - [Managing Multiple Stores](https://docs.monei.com/guides/managing-stores.md): Manage multiple stores and points of sale within a single MONEI account. - [Migrate your tokenized cards to MONEI](https://docs.monei.com/guides/migrate-tokens.md): Securely migrate tokenized cards from another payment processor to MONEI. - [Payouts (beta)](https://docs.monei.com/guides/payouts.md): Send money to individuals via Bizum or Cards using the MONEI Payouts API. - [Save payment method](https://docs.monei.com/guides/save-payment-method.md): Tokenize and save payment methods for future use with MONEI. - [Send cardholder name](https://docs.monei.com/guides/send-cardholder-name.md): Send cardholder name with transactions to comply with PSD2 and SCA requirements. - [Verify signature](https://docs.monei.com/guides/verify-signature.md): Verify MONEI webhook signatures to ensure request authenticity. ## hotels - [Channex](https://docs.monei.com/hotels/channex.md): Tokenize payment cards from Channex hotel reservations using the MONEI API. - [Hotels Channel Managers](https://docs.monei.com/hotels/overview.md): Securely tokenize payment cards from hotel channel managers like Siteminder and Channex for PCI-compliant payment processing. - [Siteminder](https://docs.monei.com/hotels/siteminder.md): Tokenize payment cards from Siteminder hotel reservations using the MONEI API. ## integrations - [Build a custom checkout](https://docs.monei.com/integrations/build-custom-checkout.md): Use MONEI Components to build your custom checkout and securely accept Cards, PayPal, Bizum, Apple Pay, GooglePay, Click to Pay and other payment methods. - [Express Checkout](https://docs.monei.com/integrations/express-checkout.md): Collect shipping and billing addresses directly from Apple Pay, Google Pay, or PayPal wallet UIs using MONEI Components. - [Pay By Link](https://docs.monei.com/integrations/pay-by-link.md): Use Pay By Link to send your customers a link to pay online in one click! Works with or without a website. Send payment links via email, WhatsApp or SMS. - [Use payment modal](https://docs.monei.com/integrations/use-payment-modal.md): MONEI Payment Modal is the simplest way to securely collect payments from your customers without them leaving your website. - [Use a prebuilt payment page](https://docs.monei.com/integrations/use-prebuilt-payment-page.md): MONEI Hosted payment page is the simplest way to securely collect payments from your customers with multiple payment methods like Cards, PayPal, Bizum, GooglePay, Apple Pay & Click to Pay among others. - [Use QR code payments](https://docs.monei.com/integrations/use-qr-payments.md): Accept in-store contactless payments with QR codes using the MONEI Pay app, Dashboard Points of Sale, or the Payments API. ## monei-connect - [MONEI Connect](https://docs.monei.com/monei-connect.md): Integrate payments into your platform or marketplace using MONEI Connect partner program. ## monei-js - [Angular Components](https://docs.monei.com/monei-js/angular.md): Angular components for MONEI payments — MoneiCardInput, MoneiBizum, MoneiPayPal, and MoneiPaymentRequest as standalone components with typed @Input() bindings and @ViewChild submit(). - [Migration Guide](https://docs.monei.com/monei-js/migration.md): Migrate from MONEI Components v2 to v3 — new framework packages, submit() API, and deprecated driver patterns. - [MONEI Components](https://docs.monei.com/monei-js/overview.md): MONEI Components enable you to collect sensitive payment information using customizable Components. - [React Components](https://docs.monei.com/monei-js/react.md): React components for MONEI payments — CardInput, Bizum, PayPal, and PaymentRequest with typed props and ref-based submit(). - [MONEI JS Reference](https://docs.monei.com/monei-js/reference.md): You can use monei.js' APIs to tokenize customer information and collect sensitive card data using customizable MONEI Components. - [Svelte Components](https://docs.monei.com/monei-js/svelte.md): Svelte 5 components for MONEI payments — CardInput, Bizum, PayPal, and PaymentRequest with runes-based props and bind:this submit(). - [Vue Components](https://docs.monei.com/monei-js/vue.md): Vue 3 components for MONEI payments — CardInput, Bizum, PayPal, and PaymentRequest with typed props and template ref submit(). ## monei-pay - [Android App Integration](https://docs.monei.com/monei-pay/app-integration/android.md): Accept NFC payments from your Android app using the MONEI Pay Kotlin SDK. - [Getting Started](https://docs.monei.com/monei-pay/app-integration/getting-started.md): Generate POS auth tokens from your backend and integrate your merchant app with MONEI Pay for NFC payments. - [iOS App Integration](https://docs.monei.com/monei-pay/app-integration/ios.md): Accept NFC payments from your iOS app using the MONEI Pay Swift SDK. - [React Native App Integration](https://docs.monei.com/monei-pay/app-integration/react-native.md): Accept NFC payments from your React Native app using the MONEI Pay Expo module SDK. - [MONEI Pay](https://docs.monei.com/monei-pay/overview.md): Turn any smartphone into a payment terminal. Accept NFC tap-to-pay and QR code payments with the MONEI Pay app — no extra hardware needed. ## payment-methods - [Apple Pay](https://docs.monei.com/payment-methods/apple-pay.md): Learn how to accept Apple Pay payments with MONEI. - [Bizum](https://docs.monei.com/payment-methods/bizum.md): Learn how to accept Bizum payments with MONEI. - [Cards](https://docs.monei.com/payment-methods/card.md): Learn how to accept Card payments with MONEI. - [Click to Pay](https://docs.monei.com/payment-methods/click-to-pay.md): Accept Click to Pay payments to let your customers make secure payments in fewer clicks. - [Google Pay](https://docs.monei.com/payment-methods/google-pay.md): Learn how to accept Google Pay payments with MONEI. - [Payment Methods Overview](https://docs.monei.com/payment-methods/overview.md): Overview of all payment methods supported by MONEI including cards, digital wallets, and local payment methods. - [PayPal](https://docs.monei.com/payment-methods/paypal.md): Learn how to accept PayPal payments with MONEI. - [SEPA Request to Pay (SRTP)](https://docs.monei.com/payment-methods/sepa-request-to-pay.md): Create and accept payments using the SRTP scheme. ## subscriptions - [Subscriptions with custom checkout](https://docs.monei.com/subscriptions/build-custom-checkout.md): Collect payment details on your own site using MONEI Components to activate subscriptions. Full control over the checkout experience. - [Handle failed subscription payments](https://docs.monei.com/subscriptions/handle-failed-payments.md): Understand how MONEI retries failed subscription payments, configure retry schedules, and recover past-due subscriptions. - [Manage subscriptions](https://docs.monei.com/subscriptions/manage-subscriptions.md): Pause, resume, cancel, skip, update payment method, and manage subscription details using the MONEI API. - [Subscriptions overview](https://docs.monei.com/subscriptions/overview.md): Learn how MONEI subscriptions work — lifecycle, statuses, billing intervals, trial periods, webhooks, and supported payment methods. - [Subscriptions with prebuilt payment page](https://docs.monei.com/subscriptions/use-prebuilt-payment-page.md): Activate subscriptions by redirecting customers to a MONEI-hosted payment page. Simplest integration — no frontend code required. ## testing - [Testing](https://docs.monei.com/testing.md): This page includes test card numbers and other information to make sure your integration works as planned. ## Optional - [REST API OpenAPI](https://js.monei.com/api/v1/openapi.json): Official OpenAPI specification for MONEI API v1. - [GraphQL Endpoint](https://graphql.monei.com/): GraphQL endpoint for schema introspection. - [Postman Collection](https://postman.monei.com/): Prebuilt requests for testing the REST API. --- # Full Documentation Content [Skip to main content](#__docusaurus_skipToContent_fallback) [![MONEI](https://assets.monei.com/images/logo.svg)![MONEI](https://assets.monei.com/images/logo.svg)](https://docs.monei.com/index.md) [**MONEI**](https://docs.monei.com/index.md) [Documentation](https://docs.monei.com/getting-started/.md) [APIs](#) * [REST API](https://docs.monei.com/apis/rest/.md) * [GraphQL API](https://docs.monei.com/apis/graphql/.md) [Support](https://support.monei.com)[Dashboard](https://dashboard.monei.com) Search # Search the documentation Type your search here Powered by[](https://www.algolia.com/) Copyright © 2026 MONEI — [Winner of the AWS Startup Architecture Challenge 🏆](https://aws.amazon.com/es/blogs/startups/serverless-architecture-powers-moneis-fast-secure-and-scalable-digital-payment-solutions/) MONEI DIGITAL PAYMENTS SL - ESB02660926 Palestina, 1, Entreplanta, 29007, Málaga, Spain BORME Registry Details: Registro Mercantil de MÁLAGA T 5998, L 4905, F 54, S 8,H MA158775, I/A 1 (14.01.21). MONEI is a Payments Institution regulated by Banco de España with license number: 6911, and a Swift member with BIC number: MDIPES22. MONEI is member of the European Payments Council under the SRTP group. --- # Odoo MONEI for Odoo is our official integration that allows you to process payments, manage transactions, and sync your Odoo orders with MONEI payments. The app provides a seamless experience for managing your payment operations directly from your Odoo interface. ![MONEI Odoo App Dashboard](/assets/images/dashboard-1eac8c4833eec862e587d44d2feaabdd.png) ## Features[​](#features "Direct link to Features") * Process payments directly from Odoo * View and manage all your MONEI transactions * Filter and search payments * Perform payment actions (capture, cancel, refund) * Create new payments and payment links * Manual order synchronization * Detailed payment status tracking ## Installation[​](#installation "Direct link to Installation") * Odoo.sh Platform * Self-Hosted Odoo 1. Go to your project on [Odoo.sh](https://odoo.sh) 2. Navigate to the "Repositories" tab 3. Click "Add a Repository" and select "Add a Git Repository" 4. Enter the repository URL: `https://github.com/MONEI/MONEI-Odoo` 5. Select the branch you want to deploy 6. Go to the "Branches" tab and activate the branch where you want MONEI installed 7. Wait for the deployment to complete (you can check status in "Builds") 8. Once deployed, go to Apps and search for "MONEI" 9. Click Install on the MONEI module note If you don't see the module in Apps after deployment: * Enable developer mode (Settings → General Settings → Developer Tools → Activate the developer mode) * Go to Apps → Update Apps List (menu in the top bar) * Search for "MONEI" again 1. Download the module 2. Place the `monei` folder in your Odoo addons directory: * Linux: `/opt/odoo/addons/` or `/usr/lib/python3/dist-packages/odoo/addons/` * Windows: `C:\Program Files\Odoo\server\odoo\addons\` 3. Restart your Odoo server 4. Update the apps list in Odoo: * Enable developer mode * Go to Apps > Update Apps List 5. Search for "MONEI" and install the module ![MONEI App Installation](/assets/images/install-c2fc461d9fe5e1d7efba8bb09defa9ad.png) ### 2. Configuration[​](#2-configuration "Direct link to 2. Configuration") 1. In Odoo, go to **Settings > MONEI Configuration** 2. Enter your API Key. You can find your API Key in [MONEI Dashboard → Settings → API Access](https://dashboard.monei.com/settings/api). 3. Save the configuration ![Odoo MONEI Configuration](/assets/images/configuration-3e0603696fbae5ae1bf7cf659ef1f6a9.png) note Make sure to use the correct API credentials based on your environment (test/live). ## Usage[​](#usage "Direct link to Usage") ### Managing Payments[​](#managing-payments "Direct link to Managing Payments") #### View Payments[​](#view-payments "Direct link to View Payments") 1. Navigate to **MONEI > Payments** 2. View all your payments in a list with key information: * Payment ID * Amount * Status * Customer details * Order reference 3. Use filters to search by: * Date range * Payment status * Amount * Customer information ![Payment List View](/assets/images/payments-list-64b5b2560e36e9d7063798d37b98b84f.png) #### Create a New Payment[​](#create-a-new-payment "Direct link to Create a New Payment") 1. Click on "Create" in the Payments view 2. Fill in the payment details: * Amount * Currency * Customer information * Description * Order reference (optional) 3. Click "Create Payment" ![Create Payment Form](/assets/images/create-dcf80eda23e8d95e67d7dd6e31acae8c.png) #### Payment Actions[​](#payment-actions "Direct link to Payment Actions") For each payment, you can: * Capture authorized payments * Cancel pending payments * Issue refunds * View detailed transaction information ### Order Integration[​](#order-integration "Direct link to Order Integration") The integration allows you to manually synchronize your Odoo orders with MONEI payments: 1. Go to **MONEI > Payments** 2. Click the "Sync Payments" button to fetch the latest payments from MONEI 3. The system will: * Update existing payment statuses * Import new payments * Link payments to corresponding Odoo orders based on order reference tip Regular synchronization is recommended to keep your payment information up to date. Consider syncing at least once per day. ### Payment Links[​](#payment-links "Direct link to Payment Links") To create a payment link: 1. Go to **MONEI > Payment Links** 2. Click "Create" 3. Set the payment details: * Amount * Currency * Description * Expiration date (optional) * Customer information (optional) 4. Click "Generate Link" 5. Share the generated link with your customer ![Create Payment Link](/assets/images/payment-link-0732c19a4446f46c95bcafa8965d6100.png) ### How Syncing Works[​](#how-syncing-works "Direct link to How Syncing Works") 1. **Initial Sync** * After configuring your API key, use the Sync button to import payments * Select a date range to import payments from that period * The module will import all MONEI payments within the selected dates 2. **Syncing Process** * Go to MONEI > Payments * Click the "Sync Payments" button * Select start and end dates for the sync * The module will: * Import new payments from the selected period * Update existing payment information * Show a summary of changes when complete 3. **Order Matching** * Payments are automatically linked to sale orders using the order reference * Each payment's order reference is matched to a sale order number * View linked payments directly from the sale order form ## Troubleshooting[​](#troubleshooting "Direct link to Troubleshooting") If you encounter any issues: 1. Verify your API credentials are correct 2. Check your Odoo system logs 3. Ensure your Odoo instance can connect to MONEI's API 4. Try re-syncing your payments manually 5. Contact [MONEI support](https://support.monei.com) if issues persist Common issues: * **Sync button not working**: Verify your API credentials and internet connection * **Payments not linking to orders**: Ensure order references match between systems tip Keep your app updated to the latest version to ensure you have all the latest features and security updates. --- # MONEI GraphQL API With MONEI GraphQL API you have full access to all MONEI features like analytics reports, payments, events, and much more. This API requires authentication and is intended to be used server side. If you want to know how GraphQL API works, check out [How to GraphQL](https://www.howtographql.com/). If you don't have a MONEI account already, you’ll need to [create](https://dashboard.monei.com/?action=signUp) one to use the GraphQL API. ## GraphQL API Explorer[​](#graphql-api-explorer "Direct link to GraphQL API Explorer") If you want to start playing with the API immediately, you can do it in the [GraphQL API Explorer](https://dashboard.monei.com/api-explorer) of your MONEI account. You can run Queries and Mutations in the explorer to see what the MONEI GraphQL API can offer you. The API Explorer is available to all MONEI users. note **Heads up!** MONEI's GraphQL Explorer makes use of your real, live, production data. ## Authentication[​](#authentication "Direct link to Authentication") The API uses API keys to authenticate requests. You can view and manage your API key in the [MONEI Dashboard → Settings → API Access](https://dashboard.monei.com/settings/api). Your API key enables full access to all MONEI resources, so be sure to keep it secure! Do not share your secret API key in publicly accessible areas such as GitHub, client-side code, and so forth. Include your API Key as an `Authorization` header in all your GraphQL requests. ## GraphQL API Endpoint[​](#graphql-api-endpoint "Direct link to GraphQL API Endpoint") ``` POST https://graphql.monei.com ``` ## Query GraphQL API[​](#query-graphql-api "Direct link to Query GraphQL API") You can access GraphQL API endpoint using cURL or any other HTTP client. ``` curl --request POST 'https://graphql.monei.com' \ --header 'Authorization: ' \ --header 'Content-Type: application/json' \ --data-raw '{"query":"{account {name status}}"}' ``` note You can explore GraphQL API Queries and Mutations in the interactive [GraphQL API Explorer](https://dashboard.monei.com/api-explorer) in you MONEI Dashboard. ## Example Queries[​](#example-queries "Direct link to Example Queries") In GraphQL, queries are the equivalent of REST’s GET action verb. Even though a POST is being sent to the GraphQL endpoint, if the body only contains queries, data will only be retrieved and not modified. #### Query the Contact by Address[​](#query-the-contact-by-address "Direct link to Query the Contact by Address") ``` query { charge(id: "bc8eb8588e175ce4c957212f17ca051a") { amount refundedAmount authorizationCode id description customer { email name phone } orderId paymentMethod { bank brand country last4 method phoneNumber threeDSecure type } status statusCode statusMessage updatedAt } } ``` ## Example Mutations[​](#example-mutations "Direct link to Example Mutations") Mutations are the equivalent of REST’s data-modifying action verbs. ``` mutation { refundCharge(input: {chargeId: "bc8eb8588e175ce4c957212f17ca051a", amount: 10}) { amount refundedAmount authorizationCode id description customer { email name phone } orderId paymentMethod { bank brand country last4 method phoneNumber threeDSecure type } status statusCode statusMessage updatedAt } } ``` --- # defer This directive allows results to be deferred during execution ``` directive @defer on FIELD ``` --- # include Directs the executor to include this field or fragment only when the `if` argument is true. ``` directive @include( if: Boolean! ) on | FIELD | FRAGMENT_SPREAD | INLINE_FRAGMENT ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`include.if`](#if) ● [`Boolean!`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) non-null scalar[​](#if "Direct link to if") Included when true. --- # skip Directs the executor to skip this field or fragment when the `if` argument is true. ``` directive @skip( if: Boolean! ) on | FIELD | FRAGMENT_SPREAD | INLINE_FRAGMENT ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`skip.if`](#if) ● [`Boolean!`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) non-null scalar[​](#if "Direct link to if") Skipped when true. --- # activateAccount Submits the account for compliance approval. Returns a contract-signing URL. ``` activateAccount( language: String ): ActivateAccount! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`activateAccount.language`](#language) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#language "Direct link to language") ### Type[​](#type "Direct link to Type") #### [`ActivateAccount`](https://docs.monei.com/apis/graphql/types/objects/activate-account/.md) object[​](#activateaccount- "Direct link to activateaccount-") Result of `activateAccount`. --- # activateApplePayCert Activates an Apple Pay certificate by uploading the signed certificate downloaded from the Apple Developer Portal. The certificate is validated against the stored private key and its expiration date; on success `active` is set to `true`, `expireAt` is populated, and `csr` is cleared. A certificate can only be activated once. ``` activateApplePayCert( input: ActivateApplePayCertInput! ): ApplePayCertificate! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`activateApplePayCert.input`](#input) ● [`ActivateApplePayCertInput!`](https://docs.monei.com/apis/graphql/types/inputs/activate-apple-pay-cert-input/.md) non-null input[​](#input "Direct link to input") ### Type[​](#type "Direct link to Type") #### [`ApplePayCertificate`](https://docs.monei.com/apis/graphql/types/objects/apple-pay-certificate/.md) object[​](#applepaycertificate- "Direct link to applepaycertificate-") An Apple Pay certificate for iOS app integration. --- # activateSubscription Activates a subscription by attaching a payment method and initiating the billing cycle. Transitions a `PENDING` subscription to `ACTIVE` and creates the initial payment to validate the payment method. If the subscription is already active, this can be used to update the payment method. ``` activateSubscription( input: ActivateSubscriptionInput! ): Payment ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`activateSubscription.input`](#input) ● [`ActivateSubscriptionInput!`](https://docs.monei.com/apis/graphql/types/inputs/activate-subscription-input/.md) non-null input[​](#input "Direct link to input") ### Type[​](#type "Direct link to Type") #### [`Payment`](https://docs.monei.com/apis/graphql/types/objects/payment/.md) object[​](#payment- "Direct link to payment-") Payment returned from create/refund/capture/cancel and the send-link/receipt mutations. --- # addBlacklistItem Adds a blacklist rule. Future payments matching `value` for the given `type` will be rejected. ``` addBlacklistItem( input: BlacklistItemInput! ): BlacklistItem ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`addBlacklistItem.input`](#input) ● [`BlacklistItemInput!`](https://docs.monei.com/apis/graphql/types/inputs/blacklist-item-input/.md) non-null input[​](#input "Direct link to input") ### Type[​](#type "Direct link to Type") #### [`BlacklistItem`](https://docs.monei.com/apis/graphql/types/objects/blacklist-item/.md) object[​](#blacklistitem- "Direct link to blacklistitem-") A blacklist (block list) rule. Payments whose attributes match `value` for the given `type` are rejected before authorization. Rules are scoped to the account that created them; MONEI also maintains a global list applied on top. --- # cancelPayment Cancels a payment. `PENDING` payments and Bizum payments are canceled directly; other methods are voided through the processor. Already-captured payments cannot be canceled (use `refundPayment`). ``` cancelPayment( input: CancelPaymentInput! ): Payment ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`cancelPayment.input`](#input) ● [`CancelPaymentInput!`](https://docs.monei.com/apis/graphql/types/inputs/cancel-payment-input/.md) non-null input[​](#input "Direct link to input") ### Type[​](#type "Direct link to Type") #### [`Payment`](https://docs.monei.com/apis/graphql/types/objects/payment/.md) object[​](#payment- "Direct link to payment-") Payment returned from create/refund/capture/cancel and the send-link/receipt mutations. --- # cancelSubscription Cancels an active subscription, permanently stopping the billing cycle. Use `cancelAtPeriodEnd` for a softer transition that ends the subscription after the current period. ``` cancelSubscription( input: CancelSubscriptionInput! ): Subscription! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`cancelSubscription.input`](#input) ● [`CancelSubscriptionInput!`](https://docs.monei.com/apis/graphql/types/inputs/cancel-subscription-input/.md) non-null input[​](#input "Direct link to input") ### Type[​](#type "Direct link to Type") #### [`Subscription`](https://docs.monei.com/apis/graphql/types/objects/subscription/.md) object[​](#subscription- "Direct link to subscription-") Recurring subscription billing a customer on a fixed cadence. --- # capturePayment Captures a previously authorized (`AUTHORIZED`) payment. `amount` defaults to the authorized amount; partial captures are supported. ``` capturePayment( input: CapturePaymentInput! ): Payment ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`capturePayment.input`](#input) ● [`CapturePaymentInput!`](https://docs.monei.com/apis/graphql/types/inputs/capture-payment-input/.md) non-null input[​](#input "Direct link to input") ### Type[​](#type "Direct link to Type") #### [`Payment`](https://docs.monei.com/apis/graphql/types/objects/payment/.md) object[​](#payment- "Direct link to payment-") Payment returned from create/refund/capture/cancel and the send-link/receipt mutations. --- # connectMasterAccount Connects this account as a sub-account of a master/partner account using a promo code. ``` connectMasterAccount( promoCode: String! externalId: String externalHash: String ): Account! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`connectMasterAccount.promoCode`](#promo-code) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#promo-code "Direct link to promo-code") #### [`connectMasterAccount.externalId`](#external-id) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#external-id "Direct link to external-id") #### [`connectMasterAccount.externalHash`](#external-hash) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#external-hash "Direct link to external-hash") ### Type[​](#type "Direct link to Type") #### [`Account`](https://docs.monei.com/apis/graphql/types/objects/account/.md) object[​](#account- "Direct link to account-") Merchant account. --- # connectShopifyShop Binds a Shopify shop (already OAuth-installed via the MONEI Shopify app) to the caller's MONEI account, then calls Shopify Payments to activate the gateway. Verifies the signed `token`, requires the account can process payments and supports the requested method, and refuses to transfer a shop already linked to a different account. The installation's `testMode` matches the connecting account; the bind is rolled back if gateway activation fails. ``` connectShopifyShop( input: ConnectShopifyShopInput! ): ConnectShopifyShopResult! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`connectShopifyShop.input`](#input) ● [`ConnectShopifyShopInput!`](https://docs.monei.com/apis/graphql/types/inputs/connect-shopify-shop-input/.md) non-null input[​](#input "Direct link to input") ### Type[​](#type "Direct link to Type") #### [`ConnectShopifyShopResult`](https://docs.monei.com/apis/graphql/types/objects/connect-shopify-shop-result/.md) object[​](#connectshopifyshopresult- "Direct link to connectshopifyshopresult-") Result of `connectShopifyShop`. --- # createApplePayCert Creates a new Apple Pay certificate by generating a Certificate Signing Request (CSR). Use the returned `csr` to create an Apple Pay Payment Processing Certificate in the Apple Developer Portal, then call `activateApplePayCert` with the signed `.cer`. The private key is securely generated and stored by MONEI. CSRs are short-lived and can only be used once; create a new certificate if the CSR has expired. ``` createApplePayCert: ApplePayCertificate! ``` ### Type[​](#type "Direct link to Type") #### [`ApplePayCertificate`](https://docs.monei.com/apis/graphql/types/objects/apple-pay-certificate/.md) object[​](#applepaycertificate- "Direct link to applepaycertificate-") An Apple Pay certificate for iOS app integration. --- # createAuthorizedUser Invites a dashboard user to the current account. Caller must have `ADMIN_ACCESS` (or use an API key). Sends an invitation email when the user is new to MONEI. ``` createAuthorizedUser( input: CreateAuthorizedUserInput! ): AuthorizedUser ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`createAuthorizedUser.input`](#input) ● [`CreateAuthorizedUserInput!`](https://docs.monei.com/apis/graphql/types/inputs/create-authorized-user-input/.md) non-null input[​](#input "Direct link to input") ### Type[​](#type "Direct link to Type") #### [`AuthorizedUser`](https://docs.monei.com/apis/graphql/types/objects/authorized-user/.md) object[​](#authorizeduser- "Direct link to authorizeduser-") Dashboard user authorized to access a MONEI merchant account. The same email may appear on multiple accounts with different access levels. --- # createBankSession Starts a hosted bank-account verification session with the chosen bank (see `banks`). ``` createBankSession( bankId: ID! ): Session! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`createBankSession.bankId`](#bank-id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#bank-id "Direct link to bank-id") ### Type[​](#type "Direct link to Type") #### [`Session`](https://docs.monei.com/apis/graphql/types/objects/session/.md) object[​](#session- "Direct link to session-") Hosted session for identity verification, document upload, or bank verification. --- # createDocumentSession Starts a hosted session that lets the merchant fetch their Spanish census certificate automatically (e.g. via Cl\@ve, BAK/BAKQ, or AEAT phone). ``` createDocumentSession: Session! ``` ### Type[​](#type "Direct link to Type") #### [`Session`](https://docs.monei.com/apis/graphql/types/objects/session/.md) object[​](#session- "Direct link to session-") Hosted session for identity verification, document upload, or bank verification. --- # createDocument Creates a KYC/onboarding document record. Follow up with `uploadDocument` to attach the file. ``` createDocument( input: CreateDocumentInput! ): Document! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`createDocument.input`](#input) ● [`CreateDocumentInput!`](https://docs.monei.com/apis/graphql/types/inputs/create-document-input/.md) non-null input[​](#input "Direct link to input") ### Type[​](#type "Direct link to Type") #### [`Document`](https://docs.monei.com/apis/graphql/types/objects/document/.md) object[​](#document- "Direct link to document-") KYC/onboarding document attached to the merchant account. --- # createExportSftpConfig Creates an SFTP destination for scheduled daily charges exports. New configs default to disabled; set `enabled: true` to start the daily push. ``` createExportSftpConfig( input: CreateExportSftpConfigInput! ): SftpConfigExport! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`createExportSftpConfig.input`](#input) ● [`CreateExportSftpConfigInput!`](https://docs.monei.com/apis/graphql/types/inputs/create-export-sftp-config-input/.md) non-null input[​](#input "Direct link to input") ### Type[​](#type "Direct link to Type") #### [`SftpConfigExport`](https://docs.monei.com/apis/graphql/types/objects/sftp-config-export/.md) object[​](#sftpconfigexport- "Direct link to sftpconfigexport-") SFTP destination for scheduled daily charges exports. The previous day's charges are pushed at 06:00 UTC when `enabled` is `true`. --- # createIdSession Starts a hosted identity-verification session for the account representative. ``` createIdSession( input: CreateIdSessionInput! ): Session! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`createIdSession.input`](#input) ● [`CreateIdSessionInput!`](https://docs.monei.com/apis/graphql/types/inputs/create-id-session-input/.md) non-null input[​](#input "Direct link to input") ### Type[​](#type "Direct link to Type") #### [`Session`](https://docs.monei.com/apis/graphql/types/objects/session/.md) object[​](#session- "Direct link to session-") Hosted session for identity verification, document upload, or bank verification. --- # createPayPalLink Generates a link the merchant opens to connect their PayPal account. ``` createPayPalLink: PayPalLink! ``` ### Type[​](#type "Direct link to Type") #### [`PayPalLink`](https://docs.monei.com/apis/graphql/types/objects/pay-pal-link/.md) object[​](#paypallink- "Direct link to paypallink-") PayPal account-linking link. --- # createPaymentRule Creates a payment rule on the authenticated account. ``` createPaymentRule( input: CreatePaymentRuleInput! ): PaymentRule! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`createPaymentRule.input`](#input) ● [`CreatePaymentRuleInput!`](https://docs.monei.com/apis/graphql/types/inputs/create-payment-rule-input/.md) non-null input[​](#input "Direct link to input") ### Type[​](#type "Direct link to Type") #### [`PaymentRule`](https://docs.monei.com/apis/graphql/types/objects/payment-rule/.md) object[​](#paymentrule- "Direct link to paymentrule-") Conditional rule the merchant configures to control card routing or payment-method visibility. Rules are evaluated per transaction; when `conditions` match, `action` is applied. --- # createPayment Creates a payment. When `paymentMethod` or `paymentToken` is provided, attempts direct confirmation (saved cards, digital wallets) and may return a `nextAction` for 3DS. Otherwise returns a payment with a hosted-page redirect. For `PAYOUT` transactions the account balance is checked and reserved. ``` createPayment( input: CreatePaymentInput! ): Payment ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`createPayment.input`](#input) ● [`CreatePaymentInput!`](https://docs.monei.com/apis/graphql/types/inputs/create-payment-input/.md) non-null input[​](#input "Direct link to input") ### Type[​](#type "Direct link to Type") #### [`Payment`](https://docs.monei.com/apis/graphql/types/objects/payment/.md) object[​](#payment- "Direct link to payment-") Payment returned from create/refund/capture/cancel and the send-link/receipt mutations. --- # createPointOfSale Creates a POS. ``` createPointOfSale( input: CreatePointOfSaleInput! ): PointOfSale! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`createPointOfSale.input`](#input) ● [`CreatePointOfSaleInput!`](https://docs.monei.com/apis/graphql/types/inputs/create-point-of-sale-input/.md) non-null input[​](#input "Direct link to input") ### Type[​](#type "Direct link to Type") #### [`PointOfSale`](https://docs.monei.com/apis/graphql/types/objects/point-of-sale/.md) object[​](#pointofsale- "Direct link to pointofsale-") Point of sale belonging to an account, optionally scoped to a store. See `PointOfSaleType`. --- # createProvider Creates a new provider on the account. ``` createProvider( input: CreateProviderInput! ): Provider! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`createProvider.input`](#input) ● [`CreateProviderInput!`](https://docs.monei.com/apis/graphql/types/inputs/create-provider-input/.md) non-null input[​](#input "Direct link to input") ### Type[​](#type "Direct link to Type") #### [`Provider`](https://docs.monei.com/apis/graphql/types/objects/provider/.md) object[​](#provider- "Direct link to provider-") Configured payment provider that routes a specific payment method to a processor/acquirer pair. --- # createStore Creates a store. Dashboard users require `ADMIN_ACCESS`. ``` createStore( input: CreateStoreInput! ): Store! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`createStore.input`](#input) ● [`CreateStoreInput!`](https://docs.monei.com/apis/graphql/types/inputs/create-store-input/.md) non-null input[​](#input "Direct link to input") ### Type[​](#type "Direct link to Type") #### [`Store`](https://docs.monei.com/apis/graphql/types/objects/store/.md) object[​](#store- "Direct link to store-") Merchant store (physical location or online shop) within an account. Stores group points of sale and other resources for multi-store businesses. Hierarchy: `Account` > `Store` > `PointOfSale` > `Terminal`. --- # createSubscription Creates a new subscription with the specified parameters. The subscription is created in `PENDING` status; call `activateSubscription` next to attach a payment method and start billing. ``` createSubscription( input: CreateSubscriptionInput! ): Subscription! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`createSubscription.input`](#input) ● [`CreateSubscriptionInput!`](https://docs.monei.com/apis/graphql/types/inputs/create-subscription-input/.md) non-null input[​](#input "Direct link to input") ### Type[​](#type "Direct link to Type") #### [`Subscription`](https://docs.monei.com/apis/graphql/types/objects/subscription/.md) object[​](#subscription- "Direct link to subscription-") Recurring subscription billing a customer on a fixed cadence. --- # createWebhook Creates a webhook. When `enabled` is `true`, the URL is verified with a `webhook.test` request before persisting. ``` createWebhook( input: CreateWebhookInput! ): Webhook! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`createWebhook.input`](#input) ● [`CreateWebhookInput!`](https://docs.monei.com/apis/graphql/types/inputs/create-webhook-input/.md) non-null input[​](#input "Direct link to input") ### Type[​](#type "Direct link to Type") #### [`Webhook`](https://docs.monei.com/apis/graphql/types/objects/webhook/.md) object[​](#webhook- "Direct link to webhook-") HTTP endpoint that receives MONEI events. Each delivery is signed with the account's API key (`MONEI-Signature: t=,v1=` over `.`). Failed deliveries are retried with exponential backoff; the webhook is automatically disabled and `lastResponse` recorded once retries are exhausted. --- # deleteApplePayCert Deletes an Apple Pay certificate. Permanently removes the certificate and its associated private key; this action cannot be undone. To temporarily disable a certificate, use `updateApplePayCert` instead. ``` deleteApplePayCert( id: ID! ): Boolean! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`deleteApplePayCert.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") ### Type[​](#type "Direct link to Type") #### [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#boolean- "Direct link to boolean-") The `Boolean` scalar type represents `true` or `false`. --- # deleteAuthorizedUser Revokes a dashboard user's access to the current account. Caller must have `ADMIN_ACCESS` (or use an API key). Returns `true` on success. ``` deleteAuthorizedUser( userEmail: String! ): Boolean! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`deleteAuthorizedUser.userEmail`](#user-email) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#user-email "Direct link to user-email") ### Type[​](#type "Direct link to Type") #### [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#boolean- "Direct link to boolean-") The `Boolean` scalar type represents `true` or `false`. --- # deleteBlacklistItem Removes a blacklist rule by its `value`. Returns `true` on success. ``` deleteBlacklistItem( value: String! ): Boolean! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`deleteBlacklistItem.value`](#value) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#value "Direct link to value") ### Type[​](#type "Direct link to Type") #### [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#boolean- "Direct link to boolean-") The `Boolean` scalar type represents `true` or `false`. --- # deleteCode Deletes a QR code. Returns `NotFound` when the code does not exist. ``` deleteCode( id: ID! ): Boolean! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`deleteCode.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") ### Type[​](#type "Direct link to Type") #### [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#boolean- "Direct link to boolean-") The `Boolean` scalar type represents `true` or `false`. --- # deleteDocument Deletes a KYC/onboarding document and its underlying file. ``` deleteDocument( id: ID! ): Boolean! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`deleteDocument.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") ### Type[​](#type "Direct link to Type") #### [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#boolean- "Direct link to boolean-") The `Boolean` scalar type represents `true` or `false`. --- # deleteExportSftpConfig Deletes an SFTP export config. Returns `true` on success. ``` deleteExportSftpConfig( id: ID! ): Boolean! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`deleteExportSftpConfig.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") ### Type[​](#type "Direct link to Type") #### [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#boolean- "Direct link to boolean-") The `Boolean` scalar type represents `true` or `false`. --- # deletePaymentRule Deletes a payment rule by ID. Returns `true` on success. ``` deletePaymentRule( id: ID! ): Boolean! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`deletePaymentRule.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") ### Type[​](#type "Direct link to Type") #### [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#boolean- "Direct link to boolean-") The `Boolean` scalar type represents `true` or `false`. --- # deletePointOfSale Deletes a POS. Returns `true` on success. ``` deletePointOfSale( id: ID! ): Boolean! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`deletePointOfSale.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") ### Type[​](#type "Direct link to Type") #### [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#boolean- "Direct link to boolean-") The `Boolean` scalar type represents `true` or `false`. --- # deleteProvider Deletes a provider. ``` deleteProvider( id: ID! ): Provider! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`deleteProvider.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") ### Type[​](#type "Direct link to Type") #### [`Provider`](https://docs.monei.com/apis/graphql/types/objects/provider/.md) object[​](#provider- "Direct link to provider-") Configured payment provider that routes a specific payment method to a processor/acquirer pair. --- # deleteStore Deletes a store. Dashboard users require `ADMIN_ACCESS`. ``` deleteStore( id: ID! ): Boolean! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`deleteStore.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") ### Type[​](#type "Direct link to Type") #### [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#boolean- "Direct link to boolean-") The `Boolean` scalar type represents `true` or `false`. --- # deleteWebhook Deletes a webhook. Returns `true` on success. ``` deleteWebhook( id: ID! ): Boolean! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`deleteWebhook.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") ### Type[​](#type "Direct link to Type") #### [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#boolean- "Direct link to boolean-") The `Boolean` scalar type represents `true` or `false`. --- # disableCustomDomain Tears down the custom domain and its certificate. `status` moves to `PENDING_DELETION` and the config is cleared once cleanup finishes (a few minutes). ``` disableCustomDomain: Account! ``` ### Type[​](#type "Direct link to Type") #### [`Account`](https://docs.monei.com/apis/graphql/types/objects/account/.md) object[​](#account- "Direct link to account-") Merchant account. --- # disableTokenizationMethod Disables a tokenization wallet (Google Pay, Apple Pay, Click to Pay) for the account. ``` disableTokenizationMethod( method: TokenizationMethods! ): Account! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`disableTokenizationMethod.method`](#method) ● [`TokenizationMethods!`](https://docs.monei.com/apis/graphql/types/enums/tokenization-methods/.md) non-null enum[​](#method "Direct link to method") ### Type[​](#type "Direct link to Type") #### [`Account`](https://docs.monei.com/apis/graphql/types/objects/account/.md) object[​](#account- "Direct link to account-") Merchant account. --- # disconnectMasterAccount Disconnects this account from its master/partner account. ``` disconnectMasterAccount: Account! ``` ### Type[​](#type "Direct link to Type") #### [`Account`](https://docs.monei.com/apis/graphql/types/objects/account/.md) object[​](#account- "Direct link to account-") Merchant account. --- # downloadAccountInvoice Pre-signed URL to download the account invoice PDF. Valid for 15 minutes. ``` downloadAccountInvoice( invoiceId: ID! ): DownloadFile ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`downloadAccountInvoice.invoiceId`](#invoice-id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#invoice-id "Direct link to invoice-id") ### Type[​](#type "Direct link to Type") #### [`DownloadFile`](https://docs.monei.com/apis/graphql/types/objects/download-file/.md) object[​](#downloadfile- "Direct link to downloadfile-") Pre-signed URL for downloading a file from MONEI storage. --- # downloadContract Pre-signed URL to download the merchant's signed MONEI contract. ``` downloadContract: DownloadFile ``` ### Type[​](#type "Direct link to Type") #### [`DownloadFile`](https://docs.monei.com/apis/graphql/types/objects/download-file/.md) object[​](#downloadfile- "Direct link to downloadfile-") Pre-signed URL for downloading a file from MONEI storage. --- # downloadDocument Returns a pre-signed URL for downloading the file content of a document. ``` downloadDocument( id: ID! ): DownloadFile! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`downloadDocument.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") ### Type[​](#type "Direct link to Type") #### [`DownloadFile`](https://docs.monei.com/apis/graphql/types/objects/download-file/.md) object[​](#downloadfile- "Direct link to downloadfile-") Pre-signed URL for downloading a file from MONEI storage. --- # downloadExport Returns a 15-minute pre-signed URL to download the CSV produced by an asynchronous charges export. The export must be in `COMPLETED` status. ``` downloadExport( id: ID! ): DownloadFile! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`downloadExport.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") ### Type[​](#type "Direct link to Type") #### [`DownloadFile`](https://docs.monei.com/apis/graphql/types/objects/download-file/.md) object[​](#downloadfile- "Direct link to downloadfile-") Pre-signed URL for downloading a file from MONEI storage. --- # downloadOperationsFile Pre-signed URL to download the per-transaction operations file (fees and amounts per charge) for a completed settlement. Only available for settlements in `COMPLETED` status; if the file has not been generated yet, generation is triggered asynchronously and the call should be retried. URL is valid for 15 minutes. ``` downloadOperationsFile( settlementId: ID! ): DownloadFile ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`downloadOperationsFile.settlementId`](#settlement-id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#settlement-id "Direct link to settlement-id") ### Type[​](#type "Direct link to Type") #### [`DownloadFile`](https://docs.monei.com/apis/graphql/types/objects/download-file/.md) object[​](#downloadfile- "Direct link to downloadfile-") Pre-signed URL for downloading a file from MONEI storage. --- # enableCustomDomain Starts the custom hosted-payment-page domain flow. Requests an SSL certificate and returns the account with `customDomainConfig.certificateDnsRecord` populated for the merchant to add at their DNS provider. `domain` must be a subdomain of the verified business website (e.g. `pay.example.com`). ``` enableCustomDomain( domain: String! ): Account! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`enableCustomDomain.domain`](#domain) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#domain "Direct link to domain") ### Type[​](#type "Direct link to Type") #### [`Account`](https://docs.monei.com/apis/graphql/types/objects/account/.md) object[​](#account- "Direct link to account-") Merchant account. --- # enableProvider Enables or disables a provider without altering its configuration. ``` enableProvider( id: ID! enabled: Boolean! ): Provider! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`enableProvider.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") #### [`enableProvider.enabled`](#enabled) ● [`Boolean!`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) non-null scalar[​](#enabled "Direct link to enabled") ### Type[​](#type "Direct link to Type") #### [`Provider`](https://docs.monei.com/apis/graphql/types/objects/provider/.md) object[​](#provider- "Direct link to provider-") Configured payment provider that routes a specific payment method to a processor/acquirer pair. --- # enableTokenizationMethod Enables a tokenization wallet (Google Pay, Apple Pay, Click to Pay) for the account. ``` enableTokenizationMethod( method: TokenizationMethods! ): Account! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`enableTokenizationMethod.method`](#method) ● [`TokenizationMethods!`](https://docs.monei.com/apis/graphql/types/enums/tokenization-methods/.md) non-null enum[​](#method "Direct link to method") ### Type[​](#type "Direct link to Type") #### [`Account`](https://docs.monei.com/apis/graphql/types/objects/account/.md) object[​](#account- "Direct link to account-") Merchant account. --- # exportCharges Synchronously exports charges to a CSV and returns a 15-minute pre-signed download URL. Includes `charge.succeeded`, `charge.captured`, `charge.failed`, `charge.refunded`, `charge.partially_refunded`, `charge.canceled`, and `charge.paid_out` events matching `filter`. Subject to a runtime timeout and a response-size limit — for large datasets use `startExportCharges`. ``` exportCharges( filter: SearchableChargeFilterInput columns: [String!] timezone: String ): ExportCharges! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`exportCharges.filter`](#filter) ● [`SearchableChargeFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-charge-filter-input/.md) input[​](#filter "Direct link to filter") #### [`exportCharges.columns`](#columns) ● [`[String!]`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) list scalar[​](#columns "Direct link to columns") #### [`exportCharges.timezone`](#timezone) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#timezone "Direct link to timezone") ### Type[​](#type "Direct link to Type") #### [`ExportCharges`](https://docs.monei.com/apis/graphql/types/objects/export-charges/.md) object[​](#exportcharges- "Direct link to exportcharges-") Result of a synchronous charges export. CSV is generated inline and made available for download. --- # pauseSubscription Pauses an active subscription, temporarily halting the billing cycle. The current billing period end date remains unchanged. ``` pauseSubscription( input: PauseSubscriptionInput! ): Subscription! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`pauseSubscription.input`](#input) ● [`PauseSubscriptionInput!`](https://docs.monei.com/apis/graphql/types/inputs/pause-subscription-input/.md) non-null input[​](#input "Direct link to input") ### Type[​](#type "Direct link to Type") #### [`Subscription`](https://docs.monei.com/apis/graphql/types/objects/subscription/.md) object[​](#subscription- "Direct link to subscription-") Recurring subscription billing a customer on a fixed cadence. --- # refundPayment Refunds a captured payment, fully or partially. Refunds are validated against the captured operation (for `AUTH`+`CAPTURE` flows the capture operation is used). Repeated refund calls with the same `paymentId` and `amount` in quick succession are deduplicated. Account must have refunds enabled. ``` refundPayment( input: RefundPaymentInput! ): Payment ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`refundPayment.input`](#input) ● [`RefundPaymentInput!`](https://docs.monei.com/apis/graphql/types/inputs/refund-payment-input/.md) non-null input[​](#input "Direct link to input") ### Type[​](#type "Direct link to Type") #### [`Payment`](https://docs.monei.com/apis/graphql/types/objects/payment/.md) object[​](#payment- "Direct link to payment-") Payment returned from create/refund/capture/cancel and the send-link/receipt mutations. --- # registerApplePayDomain Registers a domain with Apple Pay so it can present the Apple Pay sheet on the web. The domain must be served over HTTPS with a valid SSL certificate, and the domain association file must be hosted at `https:///.well-known/apple-developer-merchantid-domain-association` before calling this mutation. Once Apple verifies the domain, you can display Apple Pay buttons and process Apple Pay payments on your website. ``` registerApplePayDomain( input: RegisterApplePayDomainInput! ): RegisterApplePayDomain! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`registerApplePayDomain.input`](#input) ● [`RegisterApplePayDomainInput!`](https://docs.monei.com/apis/graphql/types/inputs/register-apple-pay-domain-input/.md) non-null input[​](#input "Direct link to input") ### Type[​](#type "Direct link to Type") #### [`RegisterApplePayDomain`](https://docs.monei.com/apis/graphql/types/objects/register-apple-pay-domain/.md) object[​](#registerapplepaydomain- "Direct link to registerapplepaydomain-") A successful response. --- # registerCode Registers a QR code and attaches it to a Point of Sale. See `RegisterCodeInput.pointOfSaleId` for the auto-create / single-POS / required-when-ambiguous behaviour. ``` registerCode( input: RegisterCodeInput! ): Code! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`registerCode.input`](#input) ● [`RegisterCodeInput!`](https://docs.monei.com/apis/graphql/types/inputs/register-code-input/.md) non-null input[​](#input "Direct link to input") ### Type[​](#type "Direct link to Type") #### [`Code`](https://docs.monei.com/apis/graphql/types/objects/code/.md) object[​](#code- "Direct link to code-") Permanent QR code that routes a customer to a Point of Sale checkout. Render the image via `https://secure.monei.com/codes/{id}/qr?format=png|svg&size=100..1000` (defaults: `png`, `500`). --- # requestAccountReview Requests a re-review of an account in `NOT_CONFIGURED` after additional information has been provided. ``` requestAccountReview( note: String ): Account! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`requestAccountReview.note`](#note) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#note "Direct link to note") ### Type[​](#type "Direct link to Type") #### [`Account`](https://docs.monei.com/apis/graphql/types/objects/account/.md) object[​](#account- "Direct link to account-") Merchant account. --- # resumeSubscription Resumes a previously paused subscription, reactivating the billing cycle. The next billing date is recalculated based on the current date; no immediate charge is created. ``` resumeSubscription( input: ResumeSubscriptionInput! ): Subscription! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`resumeSubscription.input`](#input) ● [`ResumeSubscriptionInput!`](https://docs.monei.com/apis/graphql/types/inputs/resume-subscription-input/.md) non-null input[​](#input "Direct link to input") ### Type[​](#type "Direct link to Type") #### [`Subscription`](https://docs.monei.com/apis/graphql/types/objects/subscription/.md) object[​](#subscription- "Direct link to subscription-") Recurring subscription billing a customer on a fixed cadence. --- # sendPaymentLink Sends the hosted payment-link email (or SMS/WhatsApp) to the customer. Defaults to `EMAIL`. ``` sendPaymentLink( input: SendPaymentMessageInput! ): Payment ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`sendPaymentLink.input`](#input) ● [`SendPaymentMessageInput!`](https://docs.monei.com/apis/graphql/types/inputs/send-payment-message-input/.md) non-null input[​](#input "Direct link to input") ### Type[​](#type "Direct link to Type") #### [`Payment`](https://docs.monei.com/apis/graphql/types/objects/payment/.md) object[​](#payment- "Direct link to payment-") Payment returned from create/refund/capture/cancel and the send-link/receipt mutations. --- # sendPaymentReceipt Sends a payment receipt to the customer over the chosen channel (`EMAIL`/`SMS`/`WHATSAPP`). ``` sendPaymentReceipt( input: SendPaymentMessageInput! ): Payment ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`sendPaymentReceipt.input`](#input) ● [`SendPaymentMessageInput!`](https://docs.monei.com/apis/graphql/types/inputs/send-payment-message-input/.md) non-null input[​](#input "Direct link to input") ### Type[​](#type "Direct link to Type") #### [`Payment`](https://docs.monei.com/apis/graphql/types/objects/payment/.md) object[​](#payment- "Direct link to payment-") Payment returned from create/refund/capture/cancel and the send-link/receipt mutations. --- # sendPaymentRequest Sends an SMS payment request to the given phone number. ``` sendPaymentRequest( input: SendPaymentRequestInput! ): Payment ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`sendPaymentRequest.input`](#input) ● [`SendPaymentRequestInput!`](https://docs.monei.com/apis/graphql/types/inputs/send-payment-request-input/.md) non-null input[​](#input "Direct link to input") ### Type[​](#type "Direct link to Type") #### [`Payment`](https://docs.monei.com/apis/graphql/types/objects/payment/.md) object[​](#payment- "Direct link to payment-") Payment returned from create/refund/capture/cancel and the send-link/receipt mutations. --- # sendSubscriptionLink Sends a subscription activation link to the customer through their preferred communication channel. Only available for subscriptions in `PENDING` status. ``` sendSubscriptionLink( input: SendSubscriptionMessageInput! ): Subscription ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`sendSubscriptionLink.input`](#input) ● [`SendSubscriptionMessageInput!`](https://docs.monei.com/apis/graphql/types/inputs/send-subscription-message-input/.md) non-null input[​](#input "Direct link to input") ### Type[​](#type "Direct link to Type") #### [`Subscription`](https://docs.monei.com/apis/graphql/types/objects/subscription/.md) object[​](#subscription- "Direct link to subscription-") Recurring subscription billing a customer on a fixed cadence. --- # sendSubscriptionStatus Sends subscription status information to the customer through their preferred communication channel. Only available for subscriptions in `ACTIVE`, `TRIALING`, or `PAST_DUE` status. ``` sendSubscriptionStatus( input: SendSubscriptionMessageInput! ): Subscription ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`sendSubscriptionStatus.input`](#input) ● [`SendSubscriptionMessageInput!`](https://docs.monei.com/apis/graphql/types/inputs/send-subscription-message-input/.md) non-null input[​](#input "Direct link to input") ### Type[​](#type "Direct link to Type") #### [`Subscription`](https://docs.monei.com/apis/graphql/types/objects/subscription/.md) object[​](#subscription- "Direct link to subscription-") Recurring subscription billing a customer on a fixed cadence. --- # setDefaultCardProvider Marks the given card provider as the only enabled card provider on the account, disabling all others. ``` setDefaultCardProvider( providerId: ID! ): Provider! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`setDefaultCardProvider.providerId`](#provider-id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#provider-id "Direct link to provider-id") ### Type[​](#type "Direct link to Type") #### [`Provider`](https://docs.monei.com/apis/graphql/types/objects/provider/.md) object[​](#provider- "Direct link to provider-") Configured payment provider that routes a specific payment method to a processor/acquirer pair. --- # setupAccount Submits or updates account information during KYC. ``` setupAccount( input: SetupAccountInput! ): Account! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`setupAccount.input`](#input) ● [`SetupAccountInput!`](https://docs.monei.com/apis/graphql/types/inputs/setup-account-input/.md) non-null input[​](#input "Direct link to input") ### Type[​](#type "Direct link to Type") #### [`Account`](https://docs.monei.com/apis/graphql/types/objects/account/.md) object[​](#account- "Direct link to account-") Merchant account. --- # startCompanyLookup Looks up a company in the public business registry by tax/document number and pre-fills the account. ``` startCompanyLookup( documentNumber: String! ): Account! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`startCompanyLookup.documentNumber`](#document-number) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#document-number "Direct link to document-number") ### Type[​](#type "Direct link to Type") #### [`Account`](https://docs.monei.com/apis/graphql/types/objects/account/.md) object[​](#account- "Direct link to account-") Merchant account. --- # startExportCharges Starts an asynchronous charges export job. Returns immediately with a `ChargesExport` whose `status` is `PENDING`; poll `chargesExport(id)` until `COMPLETED`, then call `downloadExport(id)` for the file. Use this instead of `exportCharges` for large result sets. ``` startExportCharges( filter: SearchableChargeFilterInput columns: [String!] timezone: String ): ChargesExport! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`startExportCharges.filter`](#filter) ● [`SearchableChargeFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-charge-filter-input/.md) input[​](#filter "Direct link to filter") #### [`startExportCharges.columns`](#columns) ● [`[String!]`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) list scalar[​](#columns "Direct link to columns") #### [`startExportCharges.timezone`](#timezone) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#timezone "Direct link to timezone") ### Type[​](#type "Direct link to Type") #### [`ChargesExport`](https://docs.monei.com/apis/graphql/types/objects/charges-export/.md) object[​](#chargesexport- "Direct link to chargesexport-") Asynchronous charges export job. Created by `startExportCharges`; download via `downloadExport` once `status` is `COMPLETED`. --- # updateAccount Updates account configuration (branding, notifications, fraud detector, etc.). ``` updateAccount( input: UpdateAccountInput! ): Account! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`updateAccount.input`](#input) ● [`UpdateAccountInput!`](https://docs.monei.com/apis/graphql/types/inputs/update-account-input/.md) non-null input[​](#input "Direct link to input") ### Type[​](#type "Direct link to Type") #### [`Account`](https://docs.monei.com/apis/graphql/types/objects/account/.md) object[​](#account- "Direct link to account-") Merchant account. --- # updateApplePayCert Updates an Apple Pay certificate's active status. Disabling a certificate prevents it from being used for payment token decryption while keeping it available for future use. ``` updateApplePayCert( input: UpdateApplePayCertInput! ): ApplePayCertificate! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`updateApplePayCert.input`](#input) ● [`UpdateApplePayCertInput!`](https://docs.monei.com/apis/graphql/types/inputs/update-apple-pay-cert-input/.md) non-null input[​](#input "Direct link to input") ### Type[​](#type "Direct link to Type") #### [`ApplePayCertificate`](https://docs.monei.com/apis/graphql/types/objects/apple-pay-certificate/.md) object[​](#applepaycertificate- "Direct link to applepaycertificate-") An Apple Pay certificate for iOS app integration. --- # updateAuthorizedUser Updates a dashboard user's access level or store/POS scoping on the current account. Caller must have `ADMIN_ACCESS` (or use an API key). ``` updateAuthorizedUser( input: UpdateAuthorizedUserInput! ): AuthorizedUser ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`updateAuthorizedUser.input`](#input) ● [`UpdateAuthorizedUserInput!`](https://docs.monei.com/apis/graphql/types/inputs/update-authorized-user-input/.md) non-null input[​](#input "Direct link to input") ### Type[​](#type "Direct link to Type") #### [`AuthorizedUser`](https://docs.monei.com/apis/graphql/types/objects/authorized-user/.md) object[​](#authorizeduser- "Direct link to authorizeduser-") Dashboard user authorized to access a MONEI merchant account. The same email may appear on multiple accounts with different access levels. --- # updateCode Updates a QR code (enable/disable, re-attach to a Point of Sale). Returns `NotFound` when the code does not exist. ``` updateCode( input: UpdateCodeInput! ): Code! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`updateCode.input`](#input) ● [`UpdateCodeInput!`](https://docs.monei.com/apis/graphql/types/inputs/update-code-input/.md) non-null input[​](#input "Direct link to input") ### Type[​](#type "Direct link to Type") #### [`Code`](https://docs.monei.com/apis/graphql/types/objects/code/.md) object[​](#code- "Direct link to code-") Permanent QR code that routes a customer to a Point of Sale checkout. Render the image via `https://secure.monei.com/codes/{id}/qr?format=png|svg&size=100..1000` (defaults: `png`, `500`). --- # updateExportSftpConfig Updates an SFTP export config. Only provided fields are changed. ``` updateExportSftpConfig( input: UpdateExportSftpConfigInput! ): SftpConfigExport! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`updateExportSftpConfig.input`](#input) ● [`UpdateExportSftpConfigInput!`](https://docs.monei.com/apis/graphql/types/inputs/update-export-sftp-config-input/.md) non-null input[​](#input "Direct link to input") ### Type[​](#type "Direct link to Type") #### [`SftpConfigExport`](https://docs.monei.com/apis/graphql/types/objects/sftp-config-export/.md) object[​](#sftpconfigexport- "Direct link to sftpconfigexport-") SFTP destination for scheduled daily charges exports. The previous day's charges are pushed at 06:00 UTC when `enabled` is `true`. --- # updateIdentity Updates an existing identity. Only fields provided in `input` are written. ``` updateIdentity( input: UpdateIdentityInput! ): Identity! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`updateIdentity.input`](#input) ● [`UpdateIdentityInput!`](https://docs.monei.com/apis/graphql/types/inputs/update-identity-input/.md) non-null input[​](#input "Direct link to input") ### Type[​](#type "Direct link to Type") #### [`Identity`](https://docs.monei.com/apis/graphql/types/objects/identity/.md) object[​](#identity- "Direct link to identity-") Account representative undergoing KYC/identity verification. Stores personal data, document number, and the verification outcome produced by the hosted ID-verification session (see `createIdSession`). --- # updatePaymentRule Updates a payment rule. Omitted fields are left unchanged. ``` updatePaymentRule( input: UpdatePaymentRuleInput! ): PaymentRule! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`updatePaymentRule.input`](#input) ● [`UpdatePaymentRuleInput!`](https://docs.monei.com/apis/graphql/types/inputs/update-payment-rule-input/.md) non-null input[​](#input "Direct link to input") ### Type[​](#type "Direct link to Type") #### [`PaymentRule`](https://docs.monei.com/apis/graphql/types/objects/payment-rule/.md) object[​](#paymentrule- "Direct link to paymentrule-") Conditional rule the merchant configures to control card routing or payment-method visibility. Rules are evaluated per transaction; when `conditions` match, `action` is applied. --- # updatePointOfSale Updates a POS. ``` updatePointOfSale( input: UpdatePointOfSaleInput! ): PointOfSale! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`updatePointOfSale.input`](#input) ● [`UpdatePointOfSaleInput!`](https://docs.monei.com/apis/graphql/types/inputs/update-point-of-sale-input/.md) non-null input[​](#input "Direct link to input") ### Type[​](#type "Direct link to Type") #### [`PointOfSale`](https://docs.monei.com/apis/graphql/types/objects/point-of-sale/.md) object[​](#pointofsale- "Direct link to pointofsale-") Point of sale belonging to an account, optionally scoped to a store. See `PointOfSaleType`. --- # updateProvider Updates an existing provider. ``` updateProvider( input: UpdateProviderInput! ): Provider! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`updateProvider.input`](#input) ● [`UpdateProviderInput!`](https://docs.monei.com/apis/graphql/types/inputs/update-provider-input/.md) non-null input[​](#input "Direct link to input") ### Type[​](#type "Direct link to Type") #### [`Provider`](https://docs.monei.com/apis/graphql/types/objects/provider/.md) object[​](#provider- "Direct link to provider-") Configured payment provider that routes a specific payment method to a processor/acquirer pair. --- # updateShopifyShopSettings Updates the country-to-store routing rules and/or `testMode` on a Shopify shop installation owned by the caller's account. A `testMode` change re-binds the installation to the paired live/test MONEI account. ``` updateShopifyShopSettings( input: UpdateShopifyShopSettingsInput! ): UpdateShopifyShopSettingsResult! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`updateShopifyShopSettings.input`](#input) ● [`UpdateShopifyShopSettingsInput!`](https://docs.monei.com/apis/graphql/types/inputs/update-shopify-shop-settings-input/.md) non-null input[​](#input "Direct link to input") ### Type[​](#type "Direct link to Type") #### [`UpdateShopifyShopSettingsResult`](https://docs.monei.com/apis/graphql/types/objects/update-shopify-shop-settings-result/.md) object[​](#updateshopifyshopsettingsresult- "Direct link to updateshopifyshopsettingsresult-") Result of `updateShopifyShopSettings`. Echoes the persisted values. --- # updateStore Updates a store. Dashboard users require `ADMIN_ACCESS`. ``` updateStore( input: UpdateStoreInput! ): Store! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`updateStore.input`](#input) ● [`UpdateStoreInput!`](https://docs.monei.com/apis/graphql/types/inputs/update-store-input/.md) non-null input[​](#input "Direct link to input") ### Type[​](#type "Direct link to Type") #### [`Store`](https://docs.monei.com/apis/graphql/types/objects/store/.md) object[​](#store- "Direct link to store-") Merchant store (physical location or online shop) within an account. Stores group points of sale and other resources for multi-store businesses. Hierarchy: `Account` > `Store` > `PointOfSale` > `Terminal`. --- # updateSubscription Updates the configuration of an existing subscription. Currency and billing interval cannot be changed once a subscription is created. ``` updateSubscription( input: UpdateSubscriptionInput! ): Subscription! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`updateSubscription.input`](#input) ● [`UpdateSubscriptionInput!`](https://docs.monei.com/apis/graphql/types/inputs/update-subscription-input/.md) non-null input[​](#input "Direct link to input") ### Type[​](#type "Direct link to Type") #### [`Subscription`](https://docs.monei.com/apis/graphql/types/objects/subscription/.md) object[​](#subscription- "Direct link to subscription-") Recurring subscription billing a customer on a fixed cadence. --- # updateWebhook Updates a webhook. Re-enabling (`enabled: true`) re-runs the URL reachability test. ``` updateWebhook( input: UpdateWebhookInput! ): Webhook! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`updateWebhook.input`](#input) ● [`UpdateWebhookInput!`](https://docs.monei.com/apis/graphql/types/inputs/update-webhook-input/.md) non-null input[​](#input "Direct link to input") ### Type[​](#type "Direct link to Type") #### [`Webhook`](https://docs.monei.com/apis/graphql/types/objects/webhook/.md) object[​](#webhook- "Direct link to webhook-") HTTP endpoint that receives MONEI events. Each delivery is signed with the account's API key (`MONEI-Signature: t=,v1=` over `.`). Failed deliveries are retried with exponential backoff; the webhook is automatically disabled and `lastResponse` recorded once retries are exhausted. --- # uploadDocument Returns a pre-signed URL for uploading the file content of a previously created document. Issue a `PUT` with the matching `Content-Type`. ``` uploadDocument( id: ID! contentType: String! ): UploadFile! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`uploadDocument.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") #### [`uploadDocument.contentType`](#content-type) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#content-type "Direct link to content-type") ### Type[​](#type "Direct link to Type") #### [`UploadFile`](https://docs.monei.com/apis/graphql/types/objects/upload-file/.md) object[​](#uploadfile- "Direct link to uploadfile-") Pre-signed URL for uploading a file to MONEI storage. --- # verifyBusinessDetails Re-verifies the business in the public registry and updates `business`. ``` verifyBusinessDetails( input: SetupAccountInput! ): Account! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`verifyBusinessDetails.input`](#input) ● [`SetupAccountInput!`](https://docs.monei.com/apis/graphql/types/inputs/setup-account-input/.md) non-null input[​](#input "Direct link to input") ### Type[​](#type "Direct link to Type") #### [`Account`](https://docs.monei.com/apis/graphql/types/objects/account/.md) object[​](#account- "Direct link to account-") Merchant account. --- # verifyCustomDomain Checks for certificate validation and, once issued, provisions the custom domain and returns `customDomainConfig.distributionDnsRecord`. Call after each DNS change. Transitions `status` to `SUCCESS` when the domain is reachable, or `FAILED` if validation never completes. ``` verifyCustomDomain: Account! ``` ### Type[​](#type "Direct link to Type") #### [`Account`](https://docs.monei.com/apis/graphql/types/objects/account/.md) object[​](#account- "Direct link to account-") Merchant account. --- # accountBalances Per-currency balances for the authenticated account. ``` accountBalances: AccountBalancesConnection! ``` ### Type[​](#type "Direct link to Type") #### [`AccountBalancesConnection`](https://docs.monei.com/apis/graphql/types/objects/account-balances-connection/.md) object[​](#accountbalancesconnection- "Direct link to accountbalancesconnection-") Per-currency account balances for the authenticated account. --- # accountInvoice Single account invoice by ID. ``` accountInvoice( id: ID! ): AccountInvoice ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`accountInvoice.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") ### Type[​](#type "Direct link to Type") #### [`AccountInvoice`](https://docs.monei.com/apis/graphql/types/objects/account-invoice/.md) object[​](#accountinvoice- "Direct link to accountinvoice-") Invoice MONEI issues to a merchant account for fees accrued in a billing period. Generated automatically from the account's transactions and plan. --- # accountInvoices Paginated account invoices for the authenticated merchant, optionally filtered by issue date. ``` accountInvoices( filter: SearchableAccountInvoiceFilterInput size: Int from: Int ): AccountInvoicesConnection! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`accountInvoices.filter`](#filter) ● [`SearchableAccountInvoiceFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-account-invoice-filter-input/.md) input[​](#filter "Direct link to filter") #### [`accountInvoices.size`](#size) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#size "Direct link to size") #### [`accountInvoices.from`](#from) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#from "Direct link to from") ### Type[​](#type "Direct link to Type") #### [`AccountInvoicesConnection`](https://docs.monei.com/apis/graphql/types/objects/account-invoices-connection/.md) object[​](#accountinvoicesconnection- "Direct link to accountinvoicesconnection-") Paginated list of account invoices. --- # accountSettlement Single settlement by ID. ``` accountSettlement( id: ID! ): AccountSettlement ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`accountSettlement.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") ### Type[​](#type "Direct link to Type") #### [`AccountSettlement`](https://docs.monei.com/apis/graphql/types/objects/account-settlement/.md) object[​](#accountsettlement- "Direct link to accountsettlement-") Settlement batch grouping a merchant's transactions for one payout period, currency, and payment method. A `COMPLETED` settlement produces a single bank transfer to `iban`. --- # accountSettlements Settlements for the current account, ordered by `scheduledAt` descending. ``` accountSettlements( filter: SearchableAccountSettlementFilterInput size: Int from: Int ): AccountSettlementsConnection! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`accountSettlements.filter`](#filter) ● [`SearchableAccountSettlementFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-account-settlement-filter-input/.md) input[​](#filter "Direct link to filter") #### [`accountSettlements.size`](#size) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#size "Direct link to size") #### [`accountSettlements.from`](#from) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#from "Direct link to from") ### Type[​](#type "Direct link to Type") #### [`AccountSettlementsConnection`](https://docs.monei.com/apis/graphql/types/objects/account-settlements-connection/.md) object[​](#accountsettlementsconnection- "Direct link to accountsettlementsconnection-") Paginated list of settlements. --- # account Authenticated merchant account. ``` account: Account! ``` ### Type[​](#type "Direct link to Type") #### [`Account`](https://docs.monei.com/apis/graphql/types/objects/account/.md) object[​](#account- "Direct link to account-") Merchant account. --- # applePayCert Retrieves a specific Apple Pay certificate by its ID. Returns the certificate object with its current status, CSR (if not yet activated), and expiration date (if activated). ``` applePayCert( id: ID! ): ApplePayCertificate ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`applePayCert.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") ### Type[​](#type "Direct link to Type") #### [`ApplePayCertificate`](https://docs.monei.com/apis/graphql/types/objects/apple-pay-certificate/.md) object[​](#applepaycertificate- "Direct link to applepaycertificate-") An Apple Pay certificate for iOS app integration. --- # applePayCerts Retrieves all Apple Pay certificates for the account, including both active and inactive certificates. ``` applePayCerts: [ApplePayCertificate!] ``` ### Type[​](#type "Direct link to Type") #### [`ApplePayCertificate`](https://docs.monei.com/apis/graphql/types/objects/apple-pay-certificate/.md) object[​](#applepaycertificate- "Direct link to applepaycertificate-") An Apple Pay certificate for iOS app integration. --- # authorizedUsers Lists dashboard users authorized on the current account. Caller must have `ADMIN_ACCESS` (or use an API key). ``` authorizedUsers( token: String pageSize: Int ): AuthorizedUsersConnection! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`authorizedUsers.token`](#token) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#token "Direct link to token") #### [`authorizedUsers.pageSize`](#page-size) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#page-size "Direct link to page-size") ### Type[​](#type "Direct link to Type") #### [`AuthorizedUsersConnection`](https://docs.monei.com/apis/graphql/types/objects/authorized-users-connection/.md) object[​](#authorizedusersconnection- "Direct link to authorizedusersconnection-") Paginated list of authorized users on the current account. --- # availablePaymentMethods Lists payment methods on the account, with aggregate `configured`/`enabled` flags across providers. ``` availablePaymentMethods: [AvailablePaymentMethod!] ``` ### Type[​](#type "Direct link to Type") #### [`AvailablePaymentMethod`](https://docs.monei.com/apis/graphql/types/objects/available-payment-method/.md) object[​](#availablepaymentmethod- "Direct link to availablepaymentmethod-") Aggregate availability of a payment method across the account's providers. --- # availableProcessors Lists processors that can handle the given payment method, with per-processor configuration status. ``` availableProcessors( paymentMethod: PaymentMethods! ): [AvailableProcessor!] ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`availableProcessors.paymentMethod`](#payment-method) ● [`PaymentMethods!`](https://docs.monei.com/apis/graphql/types/enums/payment-methods/.md) non-null enum[​](#payment-method "Direct link to payment-method") ### Type[​](#type "Direct link to Type") #### [`AvailableProcessor`](https://docs.monei.com/apis/graphql/types/objects/available-processor/.md) object[​](#availableprocessor- "Direct link to availableprocessor-") Availability of a specific processor for a payment method on the account. --- # banks Banks available for bank-account verification in the given country (ISO 3166-1 alpha-2). ``` banks( country: String! ): [Bank!]! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`banks.country`](#country) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#country "Direct link to country") ### Type[​](#type "Direct link to Type") #### [`Bank`](https://docs.monei.com/apis/graphql/types/objects/bank/.md) object[​](#bank- "Direct link to bank-") Bank shown in the bank-account verification picker. --- # blacklistItem Fetch a single blacklist rule by its `value`. ``` blacklistItem( value: String! ): BlacklistItem ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`blacklistItem.value`](#value) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#value "Direct link to value") ### Type[​](#type "Direct link to Type") #### [`BlacklistItem`](https://docs.monei.com/apis/graphql/types/objects/blacklist-item/.md) object[​](#blacklistitem- "Direct link to blacklistitem-") A blacklist (block list) rule. Payments whose attributes match `value` for the given `type` are rejected before authorization. Rules are scoped to the account that created them; MONEI also maintains a global list applied on top. --- # blacklistItems List blacklist rules for the current account. ``` blacklistItems( token: String pageSize: Int type: BlacklistItemType ): BlacklistItemsConnection! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`blacklistItems.token`](#token) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#token "Direct link to token") #### [`blacklistItems.pageSize`](#page-size) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#page-size "Direct link to page-size") #### [`blacklistItems.type`](#type) ● [`BlacklistItemType`](https://docs.monei.com/apis/graphql/types/enums/blacklist-item-type/.md) enum[​](#type "Direct link to type") ### Type[​](#type "Direct link to Type") #### [`BlacklistItemsConnection`](https://docs.monei.com/apis/graphql/types/objects/blacklist-items-connection/.md) object[​](#blacklistitemsconnection- "Direct link to blacklistitemsconnection-") Paginated list of blacklist rules. --- # chargeEvents Paginated lifecycle events for a single charge, sorted by `createdAt` descending. ``` chargeEvents( chargeId: ID! size: Int from: Int ): ChargeEventsConnection! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`chargeEvents.chargeId`](#charge-id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#charge-id "Direct link to charge-id") #### [`chargeEvents.size`](#size) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#size "Direct link to size") #### [`chargeEvents.from`](#from) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#from "Direct link to from") ### Type[​](#type "Direct link to Type") #### [`ChargeEventsConnection`](https://docs.monei.com/apis/graphql/types/objects/charge-events-connection/.md) object[​](#chargeeventsconnection- "Direct link to chargeeventsconnection-") Paginated charge events result. --- # chargeSources Distinct integration sources observed on this account's charges (e.g. `shopify`, `prestashop`, `api`). Useful for source-based filtering in dashboards. ``` chargeSources: [String!]! ``` ### Type[​](#type "Direct link to Type") #### [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#string- "Direct link to string-") The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. --- # charge Single charge by id. ``` charge( id: ID! ): Charge ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`charge.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") ### Type[​](#type "Direct link to Type") #### [`Charge`](https://docs.monei.com/apis/graphql/types/objects/charge/.md) object[​](#charge- "Direct link to charge-") Single payment record. The merchant API's primary resource. --- # chargesDateRangeKPI Charge KPIs (succeeded/captured/direct/canceled/refunded/failed) bucketed by `interval`. `start` and `end` are unix timestamps (seconds); when omitted, defaults to the last 24 hours. The `currency` argument filters charges by that ISO 4217 currency (default `EUR`) and the same value is echoed on the response. Cumulative series are returned for succeeded/captured/direct. ``` chargesDateRangeKPI( start: Int end: Int interval: Interval timezone: String storeId: ID pointOfSaleId: ID currency: Currencies ): ChargesDateRangeKPI! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`chargesDateRangeKPI.start`](#start) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#start "Direct link to start") #### [`chargesDateRangeKPI.end`](#end) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#end "Direct link to end") #### [`chargesDateRangeKPI.interval`](#interval) ● [`Interval`](https://docs.monei.com/apis/graphql/types/enums/interval/.md) enum[​](#interval "Direct link to interval") #### [`chargesDateRangeKPI.timezone`](#timezone) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#timezone "Direct link to timezone") #### [`chargesDateRangeKPI.storeId`](#store-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#store-id "Direct link to store-id") #### [`chargesDateRangeKPI.pointOfSaleId`](#point-of-sale-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#point-of-sale-id "Direct link to point-of-sale-id") #### [`chargesDateRangeKPI.currency`](#currency) ● [`Currencies`](https://docs.monei.com/apis/graphql/types/enums/currencies/.md) enum[​](#currency "Direct link to currency") ### Type[​](#type "Direct link to Type") #### [`ChargesDateRangeKPI`](https://docs.monei.com/apis/graphql/types/objects/charges-date-range-kpi/.md) object[​](#chargesdaterangekpi- "Direct link to chargesdaterangekpi-") Time-bucketed KPI series for charges over a date range. --- # chargesExport Fetches an asynchronous charges export job by ID. Use to poll for completion after `startExportCharges`. ``` chargesExport( id: ID! ): ChargesExport ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`chargesExport.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") ### Type[​](#type "Direct link to Type") #### [`ChargesExport`](https://docs.monei.com/apis/graphql/types/objects/charges-export/.md) object[​](#chargesexport- "Direct link to chargesexport-") Asynchronous charges export job. Created by `startExportCharges`; download via `downloadExport` once `status` is `COMPLETED`. --- # chargesExports Lists asynchronous charges export jobs for the account, newest first. ``` chargesExports( token: String pageSize: Int ): ChargesExportsConnection! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`chargesExports.token`](#token) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#token "Direct link to token") #### [`chargesExports.pageSize`](#page-size) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#page-size "Direct link to page-size") ### Type[​](#type "Direct link to Type") #### [`ChargesExportsConnection`](https://docs.monei.com/apis/graphql/types/objects/charges-exports-connection/.md) object[​](#chargesexportsconnection- "Direct link to chargesexportsconnection-") Paginated list of charges export jobs for the account. --- # charges Paginated charges, sorted by `createdAt` descending. `search` is a case-insensitive prefix match across `id`, `orderId`, `providerReferenceId`, `customer.email`, `authorizationCode`, and `paymentMethod.card.last4`. Combine with `filter` for structured queries. ``` charges( filter: SearchableChargeFilterInput search: String size: Int from: Int ): ChargesConnection! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`charges.filter`](#filter) ● [`SearchableChargeFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-charge-filter-input/.md) input[​](#filter "Direct link to filter") #### [`charges.search`](#search) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#search "Direct link to search") #### [`charges.size`](#size) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#size "Direct link to size") #### [`charges.from`](#from) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#from "Direct link to from") ### Type[​](#type "Direct link to Type") #### [`ChargesConnection`](https://docs.monei.com/apis/graphql/types/objects/charges-connection/.md) object[​](#chargesconnection- "Direct link to chargesconnection-") Paginated charges result. --- # code QR code by ID. Returns null when the code is not found. ``` code( id: ID! ): Code ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`code.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") ### Type[​](#type "Direct link to Type") #### [`Code`](https://docs.monei.com/apis/graphql/types/objects/code/.md) object[​](#code- "Direct link to code-") Permanent QR code that routes a customer to a Point of Sale checkout. Render the image via `https://secure.monei.com/codes/{id}/qr?format=png|svg&size=100..1000` (defaults: `png`, `500`). --- # codes QR codes on the account, optionally filtered by Point of Sale. ``` codes( pointOfSaleId: ID ): [Code!]! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`codes.pointOfSaleId`](#point-of-sale-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#point-of-sale-id "Direct link to point-of-sale-id") ### Type[​](#type "Direct link to Type") #### [`Code`](https://docs.monei.com/apis/graphql/types/objects/code/.md) object[​](#code- "Direct link to code-") Permanent QR code that routes a customer to a Point of Sale checkout. Render the image via `https://secure.monei.com/codes/{id}/qr?format=png|svg&size=100..1000` (defaults: `png`, `500`). --- # countries Country reference data plus the caller's geolocation. ``` countries: Countries! ``` ### Type[​](#type "Direct link to Type") #### [`Countries`](https://docs.monei.com/apis/graphql/types/objects/countries/.md) object[​](#countries- "Direct link to countries-") Country reference data plus geolocation of the current caller. --- # document Looks up a single KYC/onboarding document on the current account by ID. ``` document( id: ID! ): Document ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`document.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") ### Type[​](#type "Direct link to Type") #### [`Document`](https://docs.monei.com/apis/graphql/types/objects/document/.md) object[​](#document- "Direct link to document-") KYC/onboarding document attached to the merchant account. --- # documents Lists KYC/onboarding documents attached to the current account. ``` documents( token: String pageSize: Int ): DocumentsConnection! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`documents.token`](#token) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#token "Direct link to token") #### [`documents.pageSize`](#page-size) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#page-size "Direct link to page-size") ### Type[​](#type "Direct link to Type") #### [`DocumentsConnection`](https://docs.monei.com/apis/graphql/types/objects/documents-connection/.md) object[​](#documentsconnection- "Direct link to documentsconnection-") Paginated list of `Document`. --- # events Paginated charge events across the account, with structured filtering. ``` events( filter: SearchableEventFilterInput size: Int from: Int ): ChargeEventsConnection! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`events.filter`](#filter) ● [`SearchableEventFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-event-filter-input/.md) input[​](#filter "Direct link to filter") #### [`events.size`](#size) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#size "Direct link to size") #### [`events.from`](#from) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#from "Direct link to from") ### Type[​](#type "Direct link to Type") #### [`ChargeEventsConnection`](https://docs.monei.com/apis/graphql/types/objects/charge-events-connection/.md) object[​](#chargeeventsconnection- "Direct link to chargeeventsconnection-") Paginated charge events result. --- # exportSftpConfig Fetches an SFTP export config by ID. ``` exportSftpConfig( id: ID! ): SftpConfigExport! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`exportSftpConfig.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") ### Type[​](#type "Direct link to Type") #### [`SftpConfigExport`](https://docs.monei.com/apis/graphql/types/objects/sftp-config-export/.md) object[​](#sftpconfigexport- "Direct link to sftpconfigexport-") SFTP destination for scheduled daily charges exports. The previous day's charges are pushed at 06:00 UTC when `enabled` is `true`. --- # exportSftpConfigs Lists SFTP export configs for the account. ``` exportSftpConfigs: SftpConfigExportsConnection! ``` ### Type[​](#type "Direct link to Type") #### [`SftpConfigExportsConnection`](https://docs.monei.com/apis/graphql/types/objects/sftp-config-exports-connection/.md) object[​](#sftpconfigexportsconnection- "Direct link to sftpconfigexportsconnection-") List of SFTP export configs for the account. --- # getShopifyShopSettings Returns the country-to-store routing rules, `testMode`, and the Shopify Payments Partner gateway settings URL for an installation owned by the caller's account. ``` getShopifyShopSettings( input: GetShopifyShopSettingsInput! ): ShopifyShopSettings! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`getShopifyShopSettings.input`](#input) ● [`GetShopifyShopSettingsInput!`](https://docs.monei.com/apis/graphql/types/inputs/get-shopify-shop-settings-input/.md) non-null input[​](#input "Direct link to input") ### Type[​](#type "Direct link to Type") #### [`ShopifyShopSettings`](https://docs.monei.com/apis/graphql/types/objects/shopify-shop-settings/.md) object[​](#shopifyshopsettings- "Direct link to shopifyshopsettings-") Settings of a single Shopify shop installation linked to the caller's account. --- # notificationsPortalUrl Hosted link to the merchant's notification preferences portal. ``` notificationsPortalUrl: Redirect ``` ### Type[​](#type "Direct link to Type") #### [`Redirect`](https://docs.monei.com/apis/graphql/types/objects/redirect/.md) object[​](#redirect- "Direct link to redirect-") Generic redirect target. --- # paymentEmailPreview DEPRECATED Use `previewPaymentEmail`. Will be removed in a future release. No description ``` paymentEmailPreview( paymentId: ID! emailType: PaymentEmailType language: String ): String @deprecated ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`paymentEmailPreview.paymentId`](#payment-id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#payment-id "Direct link to payment-id") #### [`paymentEmailPreview.emailType`](#email-type) ● [`PaymentEmailType`](https://docs.monei.com/apis/graphql/types/enums/payment-email-type/.md) enum[​](#email-type "Direct link to email-type") #### [`paymentEmailPreview.language`](#language) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#language "Direct link to language") ### Type[​](#type "Direct link to Type") #### [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#string- "Direct link to string-") The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. --- # paymentRule Fetches a single payment rule owned by the authenticated account. ``` paymentRule( id: ID! ): PaymentRule ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`paymentRule.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") ### Type[​](#type "Direct link to Type") #### [`PaymentRule`](https://docs.monei.com/apis/graphql/types/objects/payment-rule/.md) object[​](#paymentrule- "Direct link to paymentrule-") Conditional rule the merchant configures to control card routing or payment-method visibility. Rules are evaluated per transaction; when `conditions` match, `action` is applied. --- # paymentRules Lists payment rules owned by the authenticated account. Returns both `CARD_ROUTING` and `PAYMENT_METHOD_VISIBILITY` rules; filter client-side by `ruleType`. ``` paymentRules( token: String pageSize: Int ): PaymentRulesConnection! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`paymentRules.token`](#token) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#token "Direct link to token") #### [`paymentRules.pageSize`](#page-size) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#page-size "Direct link to page-size") ### Type[​](#type "Direct link to Type") #### [`PaymentRulesConnection`](https://docs.monei.com/apis/graphql/types/objects/payment-rules-connection/.md) object[​](#paymentrulesconnection- "Direct link to paymentrulesconnection-") Paginated list of payment rules. --- # pointOfSale Single POS by ID. ``` pointOfSale( id: ID! ): PointOfSale ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`pointOfSale.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") ### Type[​](#type "Direct link to Type") #### [`PointOfSale`](https://docs.monei.com/apis/graphql/types/objects/point-of-sale/.md) object[​](#pointofsale- "Direct link to pointofsale-") Point of sale belonging to an account, optionally scoped to a store. See `PointOfSaleType`. --- # pointsOfSale Lists points of sale for the account, optionally scoped to a store. ``` pointsOfSale( storeId: ID token: String pageSize: Int ): PointsOfSaleConnection! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`pointsOfSale.storeId`](#store-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#store-id "Direct link to store-id") #### [`pointsOfSale.token`](#token) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#token "Direct link to token") #### [`pointsOfSale.pageSize`](#page-size) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#page-size "Direct link to page-size") ### Type[​](#type "Direct link to Type") #### [`PointsOfSaleConnection`](https://docs.monei.com/apis/graphql/types/objects/points-of-sale-connection/.md) object[​](#pointsofsaleconnection- "Direct link to pointsofsaleconnection-") Paginated list of points of sale. --- # previewPaymentEmail Renders the HTML body of the payment-link or receipt email. Returns the rendered HTML string. ``` previewPaymentEmail( paymentId: ID! emailType: PaymentEmailType language: String ): String ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`previewPaymentEmail.paymentId`](#payment-id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#payment-id "Direct link to payment-id") #### [`previewPaymentEmail.emailType`](#email-type) ● [`PaymentEmailType`](https://docs.monei.com/apis/graphql/types/enums/payment-email-type/.md) enum[​](#email-type "Direct link to email-type") #### [`previewPaymentEmail.language`](#language) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#language "Direct link to language") ### Type[​](#type "Direct link to Type") #### [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#string- "Direct link to string-") The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. --- # previewSubscriptionEmail Rendered HTML preview of a subscription email. ``` previewSubscriptionEmail( subscriptionId: ID! emailType: SubscriptionEmailType language: String ): String ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`previewSubscriptionEmail.subscriptionId`](#subscription-id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#subscription-id "Direct link to subscription-id") #### [`previewSubscriptionEmail.emailType`](#email-type) ● [`SubscriptionEmailType`](https://docs.monei.com/apis/graphql/types/enums/subscription-email-type/.md) enum[​](#email-type "Direct link to email-type") #### [`previewSubscriptionEmail.language`](#language) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#language "Direct link to language") ### Type[​](#type "Direct link to Type") #### [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#string- "Direct link to string-") The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. --- # providerConfig Returns the configuration template (compatible acquirers and metadata field schema) for a payment-method/processor pair. ``` providerConfig( paymentMethod: PaymentMethods! processor: Processor! ): ProviderConfig ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`providerConfig.paymentMethod`](#payment-method) ● [`PaymentMethods!`](https://docs.monei.com/apis/graphql/types/enums/payment-methods/.md) non-null enum[​](#payment-method "Direct link to payment-method") #### [`providerConfig.processor`](#processor) ● [`Processor!`](https://docs.monei.com/apis/graphql/types/enums/processor/.md) non-null enum[​](#processor "Direct link to processor") ### Type[​](#type "Direct link to Type") #### [`ProviderConfig`](https://docs.monei.com/apis/graphql/types/objects/provider-config/.md) object[​](#providerconfig- "Direct link to providerconfig-") Configuration template for a payment-method/processor pair. Describes which acquirers are valid and which metadata fields the provider expects. --- # provider Fetches a provider by ID. ``` provider( id: ID! ): Provider ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`provider.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") ### Type[​](#type "Direct link to Type") #### [`Provider`](https://docs.monei.com/apis/graphql/types/objects/provider/.md) object[​](#provider- "Direct link to provider-") Configured payment provider that routes a specific payment method to a processor/acquirer pair. --- # providers Lists all providers configured on the account. ``` providers: [Provider!] ``` ### Type[​](#type "Direct link to Type") #### [`Provider`](https://docs.monei.com/apis/graphql/types/objects/provider/.md) object[​](#provider- "Direct link to provider-") Configured payment provider that routes a specific payment method to a processor/acquirer pair. --- # representative Legal representative by ID, scoped to the caller's account. ``` representative( id: ID! ): RepresentativeData! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`representative.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") ### Type[​](#type "Direct link to Type") #### [`RepresentativeData`](https://docs.monei.com/apis/graphql/types/objects/representative-data/.md) object[​](#representativedata- "Direct link to representativedata-") Legal representative of a merchant account, used for KYC/AML compliance. Includes the primary representative (signatory) and any additional ultimate beneficial owners (UBOs). Full personal data (name, document, verification status) is exposed via the `Identity` type, looked up by `identityId`. --- # representatives Legal representatives (signatory and UBOs) for the caller's account. ``` representatives( token: String pageSize: Int ): RepresentativesConnection! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`representatives.token`](#token) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#token "Direct link to token") #### [`representatives.pageSize`](#page-size) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#page-size "Direct link to page-size") ### Type[​](#type "Direct link to Type") #### [`RepresentativesConnection`](https://docs.monei.com/apis/graphql/types/objects/representatives-connection/.md) object[​](#representativesconnection- "Direct link to representativesconnection-") Paginated list of legal representatives. --- # settlementEvents Lifecycle events for a settlement, ordered by `createdAt` descending. ``` settlementEvents( settlementId: ID! size: Int from: Int ): SettlementEventsConnection! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`settlementEvents.settlementId`](#settlement-id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#settlement-id "Direct link to settlement-id") #### [`settlementEvents.size`](#size) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#size "Direct link to size") #### [`settlementEvents.from`](#from) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#from "Direct link to from") ### Type[​](#type "Direct link to Type") #### [`SettlementEventsConnection`](https://docs.monei.com/apis/graphql/types/objects/settlement-events-connection/.md) object[​](#settlementeventsconnection- "Direct link to settlementeventsconnection-") Paginated list of settlement events. --- # shopifyStores Lists Shopify shop installations bound to the caller's account. Returns one item per `(domain, paymentMethod)` pair. ``` shopifyStores( token: String pageSize: Int ): ShopifyStoresConnection! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`shopifyStores.token`](#token) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#token "Direct link to token") #### [`shopifyStores.pageSize`](#page-size) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#page-size "Direct link to page-size") ### Type[​](#type "Direct link to Type") #### [`ShopifyStoresConnection`](https://docs.monei.com/apis/graphql/types/objects/shopify-stores-connection/.md) object[​](#shopifystoresconnection- "Direct link to shopifystoresconnection-") Paginated list of Shopify shops connected to the account. --- # store Fetches a single store by ID. Deleted stores resolve as `null`. ``` store( id: ID! ): Store ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`store.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") ### Type[​](#type "Direct link to Type") #### [`Store`](https://docs.monei.com/apis/graphql/types/objects/store/.md) object[​](#store- "Direct link to store-") Merchant store (physical location or online shop) within an account. Stores group points of sale and other resources for multi-store businesses. Hierarchy: `Account` > `Store` > `PointOfSale` > `Terminal`. --- # stores Lists stores in the account. ``` stores( token: String pageSize: Int ): StoresConnection! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`stores.token`](#token) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#token "Direct link to token") #### [`stores.pageSize`](#page-size) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#page-size "Direct link to page-size") ### Type[​](#type "Direct link to Type") #### [`StoresConnection`](https://docs.monei.com/apis/graphql/types/objects/stores-connection/.md) object[​](#storesconnection- "Direct link to storesconnection-") Paginated list of stores. --- # subscriptionEmailPreview DEPRECATED Use previewSubscriptionEmail instead No description ``` subscriptionEmailPreview( subscriptionId: ID! emailType: SubscriptionEmailType language: String ): String @deprecated ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`subscriptionEmailPreview.subscriptionId`](#subscription-id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#subscription-id "Direct link to subscription-id") #### [`subscriptionEmailPreview.emailType`](#email-type) ● [`SubscriptionEmailType`](https://docs.monei.com/apis/graphql/types/enums/subscription-email-type/.md) enum[​](#email-type "Direct link to email-type") #### [`subscriptionEmailPreview.language`](#language) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#language "Direct link to language") ### Type[​](#type "Direct link to Type") #### [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#string- "Direct link to string-") The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. --- # subscriptionEvents Paginated lifecycle events for a subscription. ``` subscriptionEvents( subscriptionId: ID! size: Int from: Int ): SubscriptionEventsConnection! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`subscriptionEvents.subscriptionId`](#subscription-id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#subscription-id "Direct link to subscription-id") #### [`subscriptionEvents.size`](#size) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#size "Direct link to size") #### [`subscriptionEvents.from`](#from) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#from "Direct link to from") ### Type[​](#type "Direct link to Type") #### [`SubscriptionEventsConnection`](https://docs.monei.com/apis/graphql/types/objects/subscription-events-connection/.md) object[​](#subscriptioneventsconnection- "Direct link to subscriptioneventsconnection-") Paginated list of subscription events. --- # subscription Retrieves the complete details of an existing subscription by its unique ID. ``` subscription( id: ID! ): Subscription ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`subscription.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") ### Type[​](#type "Direct link to Type") #### [`Subscription`](https://docs.monei.com/apis/graphql/types/objects/subscription/.md) object[​](#subscription- "Direct link to subscription-") Recurring subscription billing a customer on a fixed cadence. --- # subscriptions Paginated, filterable list of subscriptions. ``` subscriptions( filter: SearchableSubscriptionFilterInput search: String size: Int from: Int ): SubscriptionsConnection! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`subscriptions.filter`](#filter) ● [`SearchableSubscriptionFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-subscription-filter-input/.md) input[​](#filter "Direct link to filter") #### [`subscriptions.search`](#search) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#search "Direct link to search") #### [`subscriptions.size`](#size) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#size "Direct link to size") #### [`subscriptions.from`](#from) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#from "Direct link to from") ### Type[​](#type "Direct link to Type") #### [`SubscriptionsConnection`](https://docs.monei.com/apis/graphql/types/objects/subscriptions-connection/.md) object[​](#subscriptionsconnection- "Direct link to subscriptionsconnection-") Paginated list of subscriptions. --- # webhook Fetches a webhook by ID. ``` webhook( id: ID! ): Webhook ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`webhook.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") ### Type[​](#type "Direct link to Type") #### [`Webhook`](https://docs.monei.com/apis/graphql/types/objects/webhook/.md) object[​](#webhook- "Direct link to webhook-") HTTP endpoint that receives MONEI events. Each delivery is signed with the account's API key (`MONEI-Signature: t=,v1=` over `.`). Failed deliveries are retried with exponential backoff; the webhook is automatically disabled and `lastResponse` recorded once retries are exhausted. --- # webhooks Lists webhooks configured on the account. ``` webhooks( token: String pageSize: Int ): WebhooksConnection! ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`webhooks.token`](#token) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#token "Direct link to token") #### [`webhooks.pageSize`](#page-size) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#page-size "Direct link to page-size") ### Type[​](#type "Direct link to Type") #### [`WebhooksConnection`](https://docs.monei.com/apis/graphql/types/objects/webhooks-connection/.md) object[​](#webhooksconnection- "Direct link to webhooksconnection-") Paginated list of webhooks. --- # aws\_api\_key Tells the service this field/object has access authorized by an API key. ``` directive @aws_api_key on | OBJECT | FIELD_DEFINITION ``` --- # aws\_auth Directs the schema to enforce authorization on a field ``` directive @aws_auth( cognito_groups: [String] ) on FIELD_DEFINITION ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`aws_auth.cognito_groups`](#cognito-groups) ● [`[String]`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) list scalar[​](#cognito-groups "Direct link to cognito-groups") List of cognito user pool groups which have access on this field --- # aws\_cognito\_user\_pools Tells the service this field/object has access authorized by a Cognito User Pools token. ``` directive @aws_cognito_user_pools( cognito_groups: [String] ) on | OBJECT | FIELD_DEFINITION ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`aws_cognito_user_pools.cognito_groups`](#cognito-groups) ● [`[String]`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) list scalar[​](#cognito-groups "Direct link to cognito-groups") List of cognito user pool groups which have access on this field --- # aws\_iam Tells the service this field/object has access authorized by sigv4 signing. ``` directive @aws_iam on | OBJECT | FIELD_DEFINITION ``` --- # aws\_lambda Tells the service this field/object has access authorized by a Lambda Authorizer. ``` directive @aws_lambda on | OBJECT | FIELD_DEFINITION ``` --- # aws\_oidc Tells the service this field/object has access authorized by an OIDC token. ``` directive @aws_oidc on | OBJECT | FIELD_DEFINITION ``` --- # aws\_publish Tells the service which subscriptions will be published to when this mutation is called. This directive is deprecated use @aws\_susbscribe directive instead. ``` directive @aws_publish( subscriptions: [String] ) on FIELD_DEFINITION ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`aws_publish.subscriptions`](#subscriptions) ● [`[String]`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) list scalar[​](#subscriptions "Direct link to subscriptions") List of subscriptions which will be published to when this mutation is called. --- # aws\_subscribe Tells the service which mutation triggers this subscription. ``` directive @aws_subscribe( mutations: [String] ) on FIELD_DEFINITION ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`aws_subscribe.mutations`](#mutations) ● [`[String]`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) list scalar[​](#mutations "Direct link to mutations") List of mutations which will trigger this subscription when they are called. --- # deprecated Marks an element of a GraphQL schema as no longer supported. ``` directive @deprecated( reason: String = "No longer supported" ) on | FIELD_DEFINITION | ARGUMENT_DEFINITION | INPUT_FIELD_DEFINITION | ENUM_VALUE ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`deprecated.reason`](#reason) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#reason "Direct link to reason") Explains why this element was deprecated, usually also including a suggestion for how to access supported similar data. Formatted using the Markdown syntax, as specified by [CommonMark](https://commonmark.org/). --- # oneOf Indicates exactly one field must be supplied and this field must not be `null`. ``` directive @oneOf on INPUT_OBJECT ``` --- # specifiedBy Exposes a URL that specifies the behavior of this scalar. ``` directive @specifiedBy( url: String! ) on SCALAR ``` ### Arguments[​](#arguments "Direct link to Arguments") #### [`specifiedBy.url`](#url) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#url "Direct link to url") The URL that specifies the behavior of this scalar. --- # AccountInvoicePaymentMethod Method MONEI uses to collect payment for an account invoice. * `bank_transfer` - Manual SEPA bank transfer to MONEI. * `direct_debit` - SEPA Direct Debit charged against the merchant's IBAN. ``` enum AccountInvoicePaymentMethod { bank_transfer direct_debit } ``` ### Values[​](#values "Direct link to Values") #### [`AccountInvoicePaymentMethod.bank_transfer`](#bank-transfer)[​](#bank-transfer "Direct link to bank-transfer") #### [`AccountInvoicePaymentMethod.direct_debit`](#direct-debit)[​](#direct-debit "Direct link to direct-debit") ### Member Of[​](#member-of "Direct link to Member Of") [`AccountInvoice`](https://docs.monei.com/apis/graphql/types/objects/account-invoice/.md) object --- # AccountInvoiceStatus Payment state of an account invoice that MONEI issues to the merchant. * `PENDING` - Invoice generated, payment not yet due. * `PAST_DUE` - Payment deadline passed without successful collection. * `PAID` - Invoice paid in full. * `UNPAID` - Invoice not paid (collection failed or cancelled). ``` enum AccountInvoiceStatus { PENDING PAST_DUE PAID UNPAID } ``` ### Values[​](#values "Direct link to Values") #### [`AccountInvoiceStatus.PENDING`](#pending)[​](#pending "Direct link to pending") #### [`AccountInvoiceStatus.PAST_DUE`](#past-due)[​](#past-due "Direct link to past-due") #### [`AccountInvoiceStatus.PAID`](#paid)[​](#paid "Direct link to paid") #### [`AccountInvoiceStatus.UNPAID`](#unpaid)[​](#unpaid "Direct link to unpaid") ### Member Of[​](#member-of "Direct link to Member Of") [`AccountInvoice`](https://docs.monei.com/apis/graphql/types/objects/account-invoice/.md) object --- # AccountStatus Lifecycle status of a merchant account. * `ACTIVE` - Account is active and can process payments. * `PENDING_CONTRACT` - KYC review pending; onboarding is not yet complete. * `PENDING_APPROVAL` - Contract signed, awaiting compliance review. * `APPROVED` - Compliance review passed; payouts are being released. * `NOT_CONFIGURED` - Additional information or documents are required (see `statusReason`). * `SUSPENDED` - Temporarily disabled by MONEI (see `statusReason`). * `REJECTED` - Compliance review failed (see `statusReason`). * `DELETED` - Account permanently removed. * `PENDING_REVIEW` - Re-review in progress after additional information was provided. ``` enum AccountStatus { ACTIVE PENDING_CONTRACT PENDING_APPROVAL APPROVED NOT_CONFIGURED SUSPENDED REJECTED DELETED PENDING_REVIEW } ``` ### Values[​](#values "Direct link to Values") #### [`AccountStatus.ACTIVE`](#active)[​](#active "Direct link to active") #### [`AccountStatus.PENDING_CONTRACT`](#pending-contract)[​](#pending-contract "Direct link to pending-contract") #### [`AccountStatus.PENDING_APPROVAL`](#pending-approval)[​](#pending-approval "Direct link to pending-approval") #### [`AccountStatus.APPROVED`](#approved)[​](#approved "Direct link to approved") #### [`AccountStatus.NOT_CONFIGURED`](#not-configured)[​](#not-configured "Direct link to not-configured") #### [`AccountStatus.SUSPENDED`](#suspended)[​](#suspended "Direct link to suspended") #### [`AccountStatus.REJECTED`](#rejected)[​](#rejected "Direct link to rejected") #### [`AccountStatus.DELETED`](#deleted)[​](#deleted "Direct link to deleted") #### [`AccountStatus.PENDING_REVIEW`](#pending-review)[​](#pending-review "Direct link to pending-review") ### Member Of[​](#member-of "Direct link to Member Of") [`Account`](https://docs.monei.com/apis/graphql/types/objects/account/.md) object --- # Acquirer Acquiring entity that settles funds for transactions routed through a provider. * `CUSTOM` - Merchant's own acquiring contract. * `ADYEN` - Adyen. * `STRIPE` - Stripe. * `MONEI_X` - MONEI's in-house acquiring (MONEI X). * `PAYPAL` - PayPal. * `PAYCOMET` - PAYCOMET. * `ABANCA` - Abanca (Spain). * `BANCAMARCH` - Banca March (Spain). * `BANKIA` - Bankia (Spain). * `BANKINTER` - Bankinter (Spain). * `BBVA` - BBVA (Spain). * `CAJALABORAL` - Caja Laboral / Laboral Kutxa (Spain). * `CAJAMAR` - Cajamar (Spain). * `CAJARURAL` - Caja Rural (Spain). * `CAJASUR` - CajaSur (Spain). * `COMERCIAGLOBALPAY` - Comercia Global Payments (Spain). * `CREDITANDORRA` - Crèdit Andorrà (Andorra). * `KUTXABANK` - Kutxabank (Spain). * `SABADELL` - Banco Sabadell (Spain). * `SANTANDER` - Banco Santander (Spain). * `UNICAJA` - Unicaja (Spain). * `DEUTSCHE_BANK` - Deutsche Bank. ``` enum Acquirer { CUSTOM ADYEN STRIPE MONEI_X PAYPAL PAYCOMET ABANCA BANCAMARCH BANKIA BANKINTER BBVA CAJALABORAL CAJAMAR CAJARURAL CAJASUR COMERCIAGLOBALPAY CREDITANDORRA KUTXABANK SABADELL SANTANDER UNICAJA DEUTSCHE_BANK } ``` ### Values[​](#values "Direct link to Values") #### [`Acquirer.CUSTOM`](#custom)[​](#custom "Direct link to custom") #### [`Acquirer.ADYEN`](#adyen)[​](#adyen "Direct link to adyen") #### [`Acquirer.STRIPE`](#stripe)[​](#stripe "Direct link to stripe") #### [`Acquirer.MONEI_X`](#monei-x)[​](#monei-x "Direct link to monei-x") #### [`Acquirer.PAYPAL`](#paypal)[​](#paypal "Direct link to paypal") #### [`Acquirer.PAYCOMET`](#paycomet)[​](#paycomet "Direct link to paycomet") #### [`Acquirer.ABANCA`](#abanca)[​](#abanca "Direct link to abanca") #### [`Acquirer.BANCAMARCH`](#bancamarch)[​](#bancamarch "Direct link to bancamarch") #### [`Acquirer.BANKIA`](#bankia)[​](#bankia "Direct link to bankia") #### [`Acquirer.BANKINTER`](#bankinter)[​](#bankinter "Direct link to bankinter") #### [`Acquirer.BBVA`](#bbva)[​](#bbva "Direct link to bbva") #### [`Acquirer.CAJALABORAL`](#cajalaboral)[​](#cajalaboral "Direct link to cajalaboral") #### [`Acquirer.CAJAMAR`](#cajamar)[​](#cajamar "Direct link to cajamar") #### [`Acquirer.CAJARURAL`](#cajarural)[​](#cajarural "Direct link to cajarural") #### [`Acquirer.CAJASUR`](#cajasur)[​](#cajasur "Direct link to cajasur") #### [`Acquirer.COMERCIAGLOBALPAY`](#comerciaglobalpay)[​](#comerciaglobalpay "Direct link to comerciaglobalpay") #### [`Acquirer.CREDITANDORRA`](#creditandorra)[​](#creditandorra "Direct link to creditandorra") #### [`Acquirer.KUTXABANK`](#kutxabank)[​](#kutxabank "Direct link to kutxabank") #### [`Acquirer.SABADELL`](#sabadell)[​](#sabadell "Direct link to sabadell") #### [`Acquirer.SANTANDER`](#santander)[​](#santander "Direct link to santander") #### [`Acquirer.UNICAJA`](#unicaja)[​](#unicaja "Direct link to unicaja") #### [`Acquirer.DEUTSCHE_BANK`](#deutsche-bank)[​](#deutsche-bank "Direct link to deutsche-bank") ### Member Of[​](#member-of "Direct link to Member Of") [`CreateProviderInput`](https://docs.monei.com/apis/graphql/types/inputs/create-provider-input/.md) input ● [`Provider`](https://docs.monei.com/apis/graphql/types/objects/provider/.md) object ● [`ProviderConfig`](https://docs.monei.com/apis/graphql/types/objects/provider-config/.md) object ● [`UpdateProviderInput`](https://docs.monei.com/apis/graphql/types/inputs/update-provider-input/.md) input --- # AuthPaymentMethodKlarna Underlying funding source Klarna used to authorize the payment. * `invoice` - Traditional invoice payment. * `fixed_amount` - Payment with a predetermined fixed amount. * `pix` - Brazilian instant payment system. * `base_account` - Payment from a basic account. * `deferred_interest` - Payment with delayed interest charges. * `direct_debit` - Direct bank account debit. * `direct_bank_transfer` - Immediate bank transfer. * `b2b_invoice` - Business-to-business invoice payment. * `card` - Credit or debit card payment. * `slice_it_by_card` - Installment payment using a card. ``` enum AuthPaymentMethodKlarna { invoice fixed_amount pix base_account deferred_interest direct_debit direct_bank_transfer b2b_invoice card slice_it_by_card } ``` ### Values[​](#values "Direct link to Values") #### [`AuthPaymentMethodKlarna.invoice`](#invoice)[​](#invoice "Direct link to invoice") #### [`AuthPaymentMethodKlarna.fixed_amount`](#fixed-amount)[​](#fixed-amount "Direct link to fixed-amount") #### [`AuthPaymentMethodKlarna.pix`](#pix)[​](#pix "Direct link to pix") #### [`AuthPaymentMethodKlarna.base_account`](#base-account)[​](#base-account "Direct link to base-account") #### [`AuthPaymentMethodKlarna.deferred_interest`](#deferred-interest)[​](#deferred-interest "Direct link to deferred-interest") #### [`AuthPaymentMethodKlarna.direct_debit`](#direct-debit)[​](#direct-debit "Direct link to direct-debit") #### [`AuthPaymentMethodKlarna.direct_bank_transfer`](#direct-bank-transfer)[​](#direct-bank-transfer "Direct link to direct-bank-transfer") #### [`AuthPaymentMethodKlarna.b2b_invoice`](#b-2-b-invoice)[​](#b-2-b-invoice "Direct link to b-2-b-invoice") #### [`AuthPaymentMethodKlarna.card`](#card)[​](#card "Direct link to card") #### [`AuthPaymentMethodKlarna.slice_it_by_card`](#slice-it-by-card)[​](#slice-it-by-card "Direct link to slice-it-by-card") ### Member Of[​](#member-of "Direct link to Member Of") [`PaymentMethodKlarna`](https://docs.monei.com/apis/graphql/types/objects/payment-method-klarna/.md) object --- # AuthorizedUserAccessLevel Permission level granted to a dashboard user on the merchant account. * `READ_ACCESS` - Read-only. Cannot create payments, refund, or change settings. * `WRITE_ACCESS` - Can create payments and refunds. No access to admin settings. * `ADMIN_ACCESS` - Full access including admin settings and user management. Not allowed when `storeId` or `pointOfSaleId` scopes the user. ``` enum AuthorizedUserAccessLevel { READ_ACCESS WRITE_ACCESS ADMIN_ACCESS } ``` ### Values[​](#values "Direct link to Values") #### [`AuthorizedUserAccessLevel.READ_ACCESS`](#read-access)[​](#read-access "Direct link to read-access") #### [`AuthorizedUserAccessLevel.WRITE_ACCESS`](#write-access)[​](#write-access "Direct link to write-access") #### [`AuthorizedUserAccessLevel.ADMIN_ACCESS`](#admin-access)[​](#admin-access "Direct link to admin-access") ### Member Of[​](#member-of "Direct link to Member Of") [`AuthorizedUser`](https://docs.monei.com/apis/graphql/types/objects/authorized-user/.md) object ● [`CreateAuthorizedUserInput`](https://docs.monei.com/apis/graphql/types/inputs/create-authorized-user-input/.md) input ● [`UpdateAuthorizedUserInput`](https://docs.monei.com/apis/graphql/types/inputs/update-authorized-user-input/.md) input --- # AuthorizedUserStatus Lifecycle status of the dashboard user account. * `UNCONFIRMED` - Account created, email not yet verified. * `CONFIRMED` - Email verified, account active. * `ARCHIVED` - Account archived (deactivated). * `COMPROMISED` - Account flagged as compromised by automated risk detection. * `UNKNOWN` - Status could not be determined. * `RESET_REQUIRED` - User must reset their password before next sign-in. * `FORCE_CHANGE_PASSWORD` - User was created with a temporary password and must change it on first sign-in. ``` enum AuthorizedUserStatus { UNCONFIRMED CONFIRMED ARCHIVED COMPROMISED UNKNOWN RESET_REQUIRED FORCE_CHANGE_PASSWORD } ``` ### Values[​](#values "Direct link to Values") #### [`AuthorizedUserStatus.UNCONFIRMED`](#unconfirmed)[​](#unconfirmed "Direct link to unconfirmed") #### [`AuthorizedUserStatus.CONFIRMED`](#confirmed)[​](#confirmed "Direct link to confirmed") #### [`AuthorizedUserStatus.ARCHIVED`](#archived)[​](#archived "Direct link to archived") #### [`AuthorizedUserStatus.COMPROMISED`](#compromised)[​](#compromised "Direct link to compromised") #### [`AuthorizedUserStatus.UNKNOWN`](#unknown)[​](#unknown "Direct link to unknown") #### [`AuthorizedUserStatus.RESET_REQUIRED`](#reset-required)[​](#reset-required "Direct link to reset-required") #### [`AuthorizedUserStatus.FORCE_CHANGE_PASSWORD`](#force-change-password)[​](#force-change-password "Direct link to force-change-password") ### Member Of[​](#member-of "Direct link to Member Of") [`AuthorizedUser`](https://docs.monei.com/apis/graphql/types/objects/authorized-user/.md) object --- # BankAccountStatus Status of the merchant's payout bank account. * `enabled` - Verified and active. * `pending` - Verification in progress. * `blocked` - Temporarily blocked; payouts will not be sent. * `deleted` - Removed from the account. ``` enum BankAccountStatus { enabled deleted blocked pending } ``` ### Values[​](#values "Direct link to Values") #### [`BankAccountStatus.enabled`](#enabled)[​](#enabled "Direct link to enabled") #### [`BankAccountStatus.deleted`](#deleted)[​](#deleted "Direct link to deleted") #### [`BankAccountStatus.blocked`](#blocked)[​](#blocked "Direct link to blocked") #### [`BankAccountStatus.pending`](#pending)[​](#pending "Direct link to pending") ### Member Of[​](#member-of "Direct link to Member Of") [`BankAccount`](https://docs.monei.com/apis/graphql/types/objects/bank-account/.md) object --- # BillingCategoryKlarna Klarna billing category for the payment. * `PAY_IN_PARTS` - Pay in equal instalments (interest-free). * `PAY_LATER` - Pay after delivery within a specified timeframe. * `PAY_NOW` - Immediate payment at time of purchase. * `SLICE_IT` - Split payment into installments. * `SLICE_IT_BY_CARD` - Split payment into installments using a card. ``` enum BillingCategoryKlarna { PAY_IN_PARTS PAY_LATER PAY_NOW SLICE_IT SLICE_IT_BY_CARD } ``` ### Values[​](#values "Direct link to Values") #### [`BillingCategoryKlarna.PAY_IN_PARTS`](#pay-in-parts)[​](#pay-in-parts "Direct link to pay-in-parts") #### [`BillingCategoryKlarna.PAY_LATER`](#pay-later)[​](#pay-later "Direct link to pay-later") #### [`BillingCategoryKlarna.PAY_NOW`](#pay-now)[​](#pay-now "Direct link to pay-now") #### [`BillingCategoryKlarna.SLICE_IT`](#slice-it)[​](#slice-it "Direct link to slice-it") #### [`BillingCategoryKlarna.SLICE_IT_BY_CARD`](#slice-it-by-card)[​](#slice-it-by-card "Direct link to slice-it-by-card") ### Member Of[​](#member-of "Direct link to Member Of") [`PaymentMethodKlarna`](https://docs.monei.com/apis/graphql/types/objects/payment-method-klarna/.md) object --- # BillingPlans MONEI commercial billing plan assigned to the merchant account. * `MONEI_PLUS` - Standard online plan. * `MONEI_POS` - Point-of-sale plan (in-person payments). * `MONEI_X` - Extended-features plan. ``` enum BillingPlans { MONEI_PLUS MONEI_POS MONEI_X } ``` ### Values[​](#values "Direct link to Values") #### [`BillingPlans.MONEI_PLUS`](#monei-plus)[​](#monei-plus "Direct link to monei-plus") #### [`BillingPlans.MONEI_POS`](#monei-pos)[​](#monei-pos "Direct link to monei-pos") #### [`BillingPlans.MONEI_X`](#monei-x)[​](#monei-x "Direct link to monei-x") ### Member Of[​](#member-of "Direct link to Member Of") [`Account`](https://docs.monei.com/apis/graphql/types/objects/account/.md) object ● [`Charge`](https://docs.monei.com/apis/graphql/types/objects/charge/.md) object ● [`ChargeEventObject`](https://docs.monei.com/apis/graphql/types/objects/charge-event-object/.md) object ● [`SetupAccountInput`](https://docs.monei.com/apis/graphql/types/inputs/setup-account-input/.md) input --- # BlacklistItemType Blacklist rule kind. Determines which payment attribute the rule's `value` is matched against. * `email` - Match the customer/billing/shipping email (case-insensitive). * `phone` - Match the customer/billing/shipping phone (normalized to E.164 before comparison). * `ip` - Match the payer's session IP address (exact match). * `card` - Match a card identifier. NOTE: not enforced at payment-validation time; use `card_fingerprint` instead. * `card_fingerprint` - Match the stable card fingerprint produced by MONEI for the PAN. Same physical card produces the same fingerprint across charges, so blocking one fingerprint blocks every future attempt with that card. * `session_fingerprint` - Match the device/browser fingerprint captured at checkout (`SessionDetails.fingerprint`). Blocks attempts coming from the same device. * `country` - Match the payer's session country (ISO 3166-1 alpha-2, geolocated from IP). ``` enum BlacklistItemType { email phone ip card card_fingerprint session_fingerprint country } ``` ### Values[​](#values "Direct link to Values") #### [`BlacklistItemType.email`](#email)[​](#email "Direct link to email") #### [`BlacklistItemType.phone`](#phone)[​](#phone "Direct link to phone") #### [`BlacklistItemType.ip`](#ip)[​](#ip "Direct link to ip") #### [`BlacklistItemType.card`](#card)[​](#card "Direct link to card") #### [`BlacklistItemType.card_fingerprint`](#card-fingerprint)[​](#card-fingerprint "Direct link to card-fingerprint") #### [`BlacklistItemType.session_fingerprint`](#session-fingerprint)[​](#session-fingerprint "Direct link to session-fingerprint") #### [`BlacklistItemType.country`](#country)[​](#country "Direct link to country") ### Member Of[​](#member-of "Direct link to Member Of") [`BlacklistItem`](https://docs.monei.com/apis/graphql/types/objects/blacklist-item/.md) object ● [`BlacklistItemInput`](https://docs.monei.com/apis/graphql/types/inputs/blacklist-item-input/.md) input ● [`blacklistItems`](https://docs.monei.com/apis/graphql/operations/queries/blacklist-items/.md) query --- # BusinessStatus Verification status of the merchant business against the public registry. * `processing` - Verification in progress. * `under_review` - Manual review by MONEI compliance. * `active` - Verified active business. * `inactive` - Business is inactive. * `dissolved` - Business has been dissolved. * `renamed` - Business name changed; details require update. * `transformed` - Legal structure changed; details require update. * `not_found` - Business not found in the public registry. * `in_formation` - Company registered but not yet active. * `resubmission_requested` - Updated business details required. ``` enum BusinessStatus { active under_review inactive dissolved renamed transformed processing not_found in_formation resubmission_requested } ``` ### Values[​](#values "Direct link to Values") #### [`BusinessStatus.active`](#active)[​](#active "Direct link to active") #### [`BusinessStatus.under_review`](#under-review)[​](#under-review "Direct link to under-review") #### [`BusinessStatus.inactive`](#inactive)[​](#inactive "Direct link to inactive") #### [`BusinessStatus.dissolved`](#dissolved)[​](#dissolved "Direct link to dissolved") #### [`BusinessStatus.renamed`](#renamed)[​](#renamed "Direct link to renamed") #### [`BusinessStatus.transformed`](#transformed)[​](#transformed "Direct link to transformed") #### [`BusinessStatus.processing`](#processing)[​](#processing "Direct link to processing") #### [`BusinessStatus.not_found`](#not-found)[​](#not-found "Direct link to not-found") #### [`BusinessStatus.in_formation`](#in-formation)[​](#in-formation "Direct link to in-formation") #### [`BusinessStatus.resubmission_requested`](#resubmission-requested)[​](#resubmission-requested "Direct link to resubmission-requested") ### Member Of[​](#member-of "Direct link to Member Of") [`BusinessData`](https://docs.monei.com/apis/graphql/types/objects/business-data/.md) object --- # CallbackStatus Webhook callback delivery state. * `PENDING` - Delivery queued, not yet attempted. * `EXECUTED` - Successfully delivered (HTTP 2xx). * `FAILED` - Delivery failed after retries. ``` enum CallbackStatus { PENDING EXECUTED FAILED } ``` ### Values[​](#values "Direct link to Values") #### [`CallbackStatus.PENDING`](#pending)[​](#pending "Direct link to pending") #### [`CallbackStatus.EXECUTED`](#executed)[​](#executed "Direct link to executed") #### [`CallbackStatus.FAILED`](#failed)[​](#failed "Direct link to failed") ### Member Of[​](#member-of "Direct link to Member Of") [`CallbackData`](https://docs.monei.com/apis/graphql/types/objects/callback-data/.md) object --- # CancellationReason Reason supplied when a payment is canceled. * `duplicated` - Duplicate of an existing payment. * `fraudulent` - Suspected fraud. * `requested_by_customer` - Customer asked to cancel. * `order_canceled` - Underlying order was canceled. ``` enum CancellationReason { duplicated fraudulent requested_by_customer order_canceled } ``` ### Values[​](#values "Direct link to Values") #### [`CancellationReason.duplicated`](#duplicated)[​](#duplicated "Direct link to duplicated") #### [`CancellationReason.fraudulent`](#fraudulent)[​](#fraudulent "Direct link to fraudulent") #### [`CancellationReason.requested_by_customer`](#requested-by-customer)[​](#requested-by-customer "Direct link to requested-by-customer") #### [`CancellationReason.order_canceled`](#order-canceled)[​](#order-canceled "Direct link to order-canceled") ### Member Of[​](#member-of "Direct link to Member Of") [`CancelPaymentInput`](https://docs.monei.com/apis/graphql/types/inputs/cancel-payment-input/.md) input ● [`Charge`](https://docs.monei.com/apis/graphql/types/objects/charge/.md) object ● [`ChargeEventObject`](https://docs.monei.com/apis/graphql/types/objects/charge-event-object/.md) object ● [`Payment`](https://docs.monei.com/apis/graphql/types/objects/payment/.md) object --- # CardBrand Card brand. * `visa` - Visa credit or debit card. * `mastercard` - Mastercard credit or debit card. * `diners` - Diners Club credit card. * `unknown` - Card brand could not be determined. * `amex` - American Express credit card. * `jcb` - Japan Credit Bureau card. * `unionpay` - UnionPay card from China. * `discover` - Discover card. ``` enum CardBrand { visa mastercard diners unknown amex jcb unionpay discover } ``` ### Values[​](#values "Direct link to Values") #### [`CardBrand.visa`](#visa)[​](#visa "Direct link to visa") #### [`CardBrand.mastercard`](#mastercard)[​](#mastercard "Direct link to mastercard") #### [`CardBrand.diners`](#diners)[​](#diners "Direct link to diners") #### [`CardBrand.unknown`](#unknown)[​](#unknown "Direct link to unknown") #### [`CardBrand.amex`](#amex)[​](#amex "Direct link to amex") #### [`CardBrand.jcb`](#jcb)[​](#jcb "Direct link to jcb") #### [`CardBrand.unionpay`](#unionpay)[​](#unionpay "Direct link to unionpay") #### [`CardBrand.discover`](#discover)[​](#discover "Direct link to discover") ### Member Of[​](#member-of "Direct link to Member Of") [`PaymentMethodCard`](https://docs.monei.com/apis/graphql/types/objects/payment-method-card/.md) object ● [`PaymentMethodCardInput`](https://docs.monei.com/apis/graphql/types/inputs/payment-method-card-input/.md) input ● [`PaymentMethodCardPresent`](https://docs.monei.com/apis/graphql/types/objects/payment-method-card-present/.md) object ● [`PaymentMethodCardPresentInput`](https://docs.monei.com/apis/graphql/types/inputs/payment-method-card-present-input/.md) input --- # CardType Card funding type. * `debit` - Debit card. Funds drawn from the cardholder's account. * `credit` - Credit card. Funds drawn from a credit line. ``` enum CardType { debit credit } ``` ### Values[​](#values "Direct link to Values") #### [`CardType.debit`](#debit)[​](#debit "Direct link to debit") #### [`CardType.credit`](#credit)[​](#credit "Direct link to credit") ### Member Of[​](#member-of "Direct link to Member Of") [`PaymentMethodCard`](https://docs.monei.com/apis/graphql/types/objects/payment-method-card/.md) object ● [`PaymentMethodCardInput`](https://docs.monei.com/apis/graphql/types/inputs/payment-method-card-input/.md) input ● [`PaymentMethodCardPresent`](https://docs.monei.com/apis/graphql/types/objects/payment-method-card-present/.md) object ● [`PaymentMethodCardPresentInput`](https://docs.monei.com/apis/graphql/types/inputs/payment-method-card-present-input/.md) input --- # ChargeStatus The status of the payment. * `SUCCEEDED` - The payment has been successfully processed and funds have been captured. * `PENDING` - The payment is being processed and awaiting completion. * `PENDING_PROCESSING` - Submitted to the processor, awaiting acknowledgement. * `FAILED` - The payment attempt was unsuccessful. * `CANCELED` - The payment was canceled before completion. * `REFUNDED` - The full payment amount has been refunded. * `PARTIALLY_REFUNDED` - Only a portion of the payment amount has been refunded. * `AUTHORIZED` - The payment has been authorized but funds have not been captured yet. * `EXPIRED` - The payment has expired without being completed. * `PAID_OUT` - Funds settled to the merchant's bank account. ``` enum ChargeStatus { SUCCEEDED PENDING PENDING_PROCESSING FAILED CANCELED REFUNDED PARTIALLY_REFUNDED AUTHORIZED EXPIRED PAID_OUT } ``` ### Values[​](#values "Direct link to Values") #### [`ChargeStatus.SUCCEEDED`](#succeeded)[​](#succeeded "Direct link to succeeded") #### [`ChargeStatus.PENDING`](#pending)[​](#pending "Direct link to pending") #### [`ChargeStatus.PENDING_PROCESSING`](#pending-processing)[​](#pending-processing "Direct link to pending-processing") #### [`ChargeStatus.FAILED`](#failed)[​](#failed "Direct link to failed") #### [`ChargeStatus.CANCELED`](#canceled)[​](#canceled "Direct link to canceled") #### [`ChargeStatus.REFUNDED`](#refunded)[​](#refunded "Direct link to refunded") #### [`ChargeStatus.PARTIALLY_REFUNDED`](#partially-refunded)[​](#partially-refunded "Direct link to partially-refunded") #### [`ChargeStatus.AUTHORIZED`](#authorized)[​](#authorized "Direct link to authorized") #### [`ChargeStatus.EXPIRED`](#expired)[​](#expired "Direct link to expired") #### [`ChargeStatus.PAID_OUT`](#paid-out)[​](#paid-out "Direct link to paid-out") ### Member Of[​](#member-of "Direct link to Member Of") [`Charge`](https://docs.monei.com/apis/graphql/types/objects/charge/.md) object ● [`ChargeEventObject`](https://docs.monei.com/apis/graphql/types/objects/charge-event-object/.md) object --- # CodeTypes Type of QR code. * `POINT_OF_SALE` - Permanent QR code attached to a Point of Sale. Reusable across transactions. ``` enum CodeTypes { POINT_OF_SALE } ``` ### Values[​](#values "Direct link to Values") #### [`CodeTypes.POINT_OF_SALE`](#point-of-sale)[​](#point-of-sale "Direct link to point-of-sale") ### Member Of[​](#member-of "Direct link to Member Of") [`Code`](https://docs.monei.com/apis/graphql/types/objects/code/.md) object --- # CombinatorType Boolean operator used to combine the conditions in a rule. * `AND` - All conditions must match. * `OR` - Any condition matches. ``` enum CombinatorType { AND OR } ``` ### Values[​](#values "Direct link to Values") #### [`CombinatorType.AND`](#and)[​](#and "Direct link to and") #### [`CombinatorType.OR`](#or)[​](#or "Direct link to or") ### Member Of[​](#member-of "Direct link to Member Of") [`PaymentConditions`](https://docs.monei.com/apis/graphql/types/objects/payment-conditions/.md) object ● [`PaymentConditionsInput`](https://docs.monei.com/apis/graphql/types/inputs/payment-conditions-input/.md) input --- # ContractStatus E-signature status of the merchant's MONEI contract. * `created` - Contract created, not yet sent. * `sent` - Contract sent to the signer. * `delivered` - Signer opened the contract. * `signed` - Contract signed by the signer. * `completed` - All parties signed; contract finalized. * `declined` - Signer declined to sign. * `voided` - Contract voided before completion. ``` enum ContractStatus { completed created declined delivered sent signed voided } ``` ### Values[​](#values "Direct link to Values") #### [`ContractStatus.completed`](#completed)[​](#completed "Direct link to completed") #### [`ContractStatus.created`](#created)[​](#created "Direct link to created") #### [`ContractStatus.declined`](#declined)[​](#declined "Direct link to declined") #### [`ContractStatus.delivered`](#delivered)[​](#delivered "Direct link to delivered") #### [`ContractStatus.sent`](#sent)[​](#sent "Direct link to sent") #### [`ContractStatus.signed`](#signed)[​](#signed "Direct link to signed") #### [`ContractStatus.voided`](#voided)[​](#voided "Direct link to voided") ### Member Of[​](#member-of "Direct link to Member Of") [`AccountContract`](https://docs.monei.com/apis/graphql/types/objects/account-contract/.md) object --- # Currencies Three-letter ISO 4217 currency code (uppercase). Must be a supported currency. ``` enum Currencies { EUR USD GBP JPY CHF SEK DKK JOD PLN } ``` ### Values[​](#values "Direct link to Values") #### [`Currencies.EUR`](#eur)[​](#eur "Direct link to eur") #### [`Currencies.USD`](#usd)[​](#usd "Direct link to usd") #### [`Currencies.GBP`](#gbp)[​](#gbp "Direct link to gbp") #### [`Currencies.JPY`](#jpy)[​](#jpy "Direct link to jpy") #### [`Currencies.CHF`](#chf)[​](#chf "Direct link to chf") #### [`Currencies.SEK`](#sek)[​](#sek "Direct link to sek") #### [`Currencies.DKK`](#dkk)[​](#dkk "Direct link to dkk") #### [`Currencies.JOD`](#jod)[​](#jod "Direct link to jod") #### [`Currencies.PLN`](#pln)[​](#pln "Direct link to pln") ### Member Of[​](#member-of "Direct link to Member Of") [`Account`](https://docs.monei.com/apis/graphql/types/objects/account/.md) object ● [`AccountInvoice`](https://docs.monei.com/apis/graphql/types/objects/account-invoice/.md) object ● [`AccountInvoiceLineItem`](https://docs.monei.com/apis/graphql/types/objects/account-invoice-line-item/.md) object ● [`chargesDateRangeKPI`](https://docs.monei.com/apis/graphql/operations/queries/charges-date-range-kpi/.md) query ● [`ChargesDateRangeKPI`](https://docs.monei.com/apis/graphql/types/objects/charges-date-range-kpi/.md) object ● [`CreatePaymentInput`](https://docs.monei.com/apis/graphql/types/inputs/create-payment-input/.md) input ● [`CreatePointOfSaleInput`](https://docs.monei.com/apis/graphql/types/inputs/create-point-of-sale-input/.md) input ● [`CreateSubscriptionInput`](https://docs.monei.com/apis/graphql/types/inputs/create-subscription-input/.md) input ● [`PointOfSale`](https://docs.monei.com/apis/graphql/types/objects/point-of-sale/.md) object ● [`Provider`](https://docs.monei.com/apis/graphql/types/objects/provider/.md) object ● [`Subscription`](https://docs.monei.com/apis/graphql/types/objects/subscription/.md) object ● [`UpdatePointOfSaleInput`](https://docs.monei.com/apis/graphql/types/inputs/update-point-of-sale-input/.md) input --- # CustomDomainStatus Lifecycle state of the merchant's custom hosted-payment-page domain. * `PENDING_VALIDATION` - Domain provisioning started; waiting for the merchant's DNS records to propagate. * `SUCCESS` - DNS records detected, certificate validated, and the domain is serving traffic. * `FAILED` - DNS records were not detected in time; the merchant must disable and start over. * `PENDING_DELETION` - `disableCustomDomain` was called; teardown can take several minutes. ``` enum CustomDomainStatus { FAILED PENDING_DELETION PENDING_VALIDATION SUCCESS } ``` ### Values[​](#values "Direct link to Values") #### [`CustomDomainStatus.FAILED`](#failed)[​](#failed "Direct link to failed") #### [`CustomDomainStatus.PENDING_DELETION`](#pending-deletion)[​](#pending-deletion "Direct link to pending-deletion") #### [`CustomDomainStatus.PENDING_VALIDATION`](#pending-validation)[​](#pending-validation "Direct link to pending-validation") #### [`CustomDomainStatus.SUCCESS`](#success)[​](#success "Direct link to success") ### Member Of[​](#member-of "Direct link to Member Of") [`CustomDomainConfig`](https://docs.monei.com/apis/graphql/types/objects/custom-domain-config/.md) object --- # DeviceType Customer device class detected at checkout. * `desktop` - Desktop browser. * `mobile` - Mobile phone. * `smartTV` - Smart TV or streaming device. * `tablet` - Tablet. ``` enum DeviceType { desktop mobile smartTV tablet } ``` ### Values[​](#values "Direct link to Values") #### [`DeviceType.desktop`](#desktop)[​](#desktop "Direct link to desktop") #### [`DeviceType.mobile`](#mobile)[​](#mobile "Direct link to mobile") #### [`DeviceType.smartTV`](#smart-tv)[​](#smart-tv "Direct link to smart-tv") #### [`DeviceType.tablet`](#tablet)[​](#tablet "Direct link to tablet") ### Member Of[​](#member-of "Direct link to Member Of") [`SessionDetails`](https://docs.monei.com/apis/graphql/types/objects/session-details/.md) object ● [`SessionDetailsInput`](https://docs.monei.com/apis/graphql/types/inputs/session-details-input/.md) input ● [`TraceDetails`](https://docs.monei.com/apis/graphql/types/objects/trace-details/.md) object --- # DocumentStatus Review state of a KYC/onboarding document. * `PENDING` - Created, awaiting upload. * `PROCESSING` - File received, automated checks running. * `APPROVAL_REQUIRED` - Automated checks passed but human review is required. * `APPROVED` - Accepted by compliance. * `REJECTED` - Rejected. See `statusCode`/`statusMessage`. * `EXPIRED` - Previously approved but now expired (e.g. census cert older than 3 months). ``` enum DocumentStatus { PENDING PROCESSING APPROVAL_REQUIRED APPROVED REJECTED EXPIRED } ``` ### Values[​](#values "Direct link to Values") #### [`DocumentStatus.PENDING`](#pending)[​](#pending "Direct link to pending") #### [`DocumentStatus.PROCESSING`](#processing)[​](#processing "Direct link to processing") #### [`DocumentStatus.APPROVAL_REQUIRED`](#approval-required)[​](#approval-required "Direct link to approval-required") #### [`DocumentStatus.APPROVED`](#approved)[​](#approved "Direct link to approved") #### [`DocumentStatus.REJECTED`](#rejected)[​](#rejected "Direct link to rejected") #### [`DocumentStatus.EXPIRED`](#expired)[​](#expired "Direct link to expired") ### Member Of[​](#member-of "Direct link to Member Of") [`Document`](https://docs.monei.com/apis/graphql/types/objects/document/.md) object --- # DocumentType KYC/onboarding document type. Identifies what a `Document` represents and drives validation rules. * `CENSUS_CERT` - Spanish census certificate (Certificado de situación censal) for self-employed. * `GIPUZKOA_CENSUS_CERT` - Census certificate issued by the Gipuzkoa regional tax authority. * `NAVARRA_CENSUS_CERT` - Census certificate issued by the Navarra regional tax authority. * `BIZKAIA_CENSUS_CERT` - Census certificate issued by the Bizkaia regional tax authority. * `ALAVA_CENSUS_CERT` - Census certificate issued by the Álava regional tax authority. * `BANK_OWNERSHIP_CERT` - Bank ownership certificate for the settlement account. * `CONTRACT` - Signed MONEI service contract. * `PASSPORT` - Passport (representative ID). * `ID_CARD` - National ID card (representative ID). * `COMPANY_TAX_ID` - Company tax ID document (e.g. CIF in Spain). * `RESIDENCE_PERMIT` - Residence permit (representative ID). * `DRIVERS_LICENSE` - Driver's license (representative ID). * `DEED_OF_INCORPORATION` - Deed of incorporation of the company. * `BENEFICIAL_OWNERSHIP_REPORT` - Beneficial ownership report. * `DEED_OF_COMPANY_REPRESENTATIVE` - Deed appointing the company's legal representative. * `POWER_OF_ATTORNEY` - Power of attorney. * `OTHER` - Document not covered by the categories above. ``` enum DocumentType { CENSUS_CERT GIPUZKOA_CENSUS_CERT NAVARRA_CENSUS_CERT BIZKAIA_CENSUS_CERT ALAVA_CENSUS_CERT BANK_OWNERSHIP_CERT CONTRACT PASSPORT ID_CARD COMPANY_TAX_ID RESIDENCE_PERMIT DRIVERS_LICENSE DEED_OF_INCORPORATION BENEFICIAL_OWNERSHIP_REPORT DEED_OF_COMPANY_REPRESENTATIVE POWER_OF_ATTORNEY OTHER } ``` ### Values[​](#values "Direct link to Values") #### [`DocumentType.CENSUS_CERT`](#census-cert)[​](#census-cert "Direct link to census-cert") #### [`DocumentType.GIPUZKOA_CENSUS_CERT`](#gipuzkoa-census-cert)[​](#gipuzkoa-census-cert "Direct link to gipuzkoa-census-cert") #### [`DocumentType.NAVARRA_CENSUS_CERT`](#navarra-census-cert)[​](#navarra-census-cert "Direct link to navarra-census-cert") #### [`DocumentType.BIZKAIA_CENSUS_CERT`](#bizkaia-census-cert)[​](#bizkaia-census-cert "Direct link to bizkaia-census-cert") #### [`DocumentType.ALAVA_CENSUS_CERT`](#alava-census-cert)[​](#alava-census-cert "Direct link to alava-census-cert") #### [`DocumentType.BANK_OWNERSHIP_CERT`](#bank-ownership-cert)[​](#bank-ownership-cert "Direct link to bank-ownership-cert") #### [`DocumentType.CONTRACT`](#contract)[​](#contract "Direct link to contract") #### [`DocumentType.PASSPORT`](#passport)[​](#passport "Direct link to passport") #### [`DocumentType.ID_CARD`](#id-card)[​](#id-card "Direct link to id-card") #### [`DocumentType.COMPANY_TAX_ID`](#company-tax-id)[​](#company-tax-id "Direct link to company-tax-id") #### [`DocumentType.RESIDENCE_PERMIT`](#residence-permit)[​](#residence-permit "Direct link to residence-permit") #### [`DocumentType.DRIVERS_LICENSE`](#drivers-license)[​](#drivers-license "Direct link to drivers-license") #### [`DocumentType.DEED_OF_INCORPORATION`](#deed-of-incorporation)[​](#deed-of-incorporation "Direct link to deed-of-incorporation") #### [`DocumentType.BENEFICIAL_OWNERSHIP_REPORT`](#beneficial-ownership-report)[​](#beneficial-ownership-report "Direct link to beneficial-ownership-report") #### [`DocumentType.DEED_OF_COMPANY_REPRESENTATIVE`](#deed-of-company-representative)[​](#deed-of-company-representative "Direct link to deed-of-company-representative") #### [`DocumentType.POWER_OF_ATTORNEY`](#power-of-attorney)[​](#power-of-attorney "Direct link to power-of-attorney") #### [`DocumentType.OTHER`](#other)[​](#other "Direct link to other") ### Member Of[​](#member-of "Direct link to Member Of") [`CreateDocumentInput`](https://docs.monei.com/apis/graphql/types/inputs/create-document-input/.md) input ● [`Document`](https://docs.monei.com/apis/graphql/types/objects/document/.md) object --- # ExportStatus Lifecycle of an asynchronous export job. * `PENDING` - Job queued or running. * `COMPLETED` - CSV ready; download via `downloadExport`. * `FAILED` - Job failed; see `statusCode`/`statusMessage`. ``` enum ExportStatus { PENDING COMPLETED FAILED } ``` ### Values[​](#values "Direct link to Values") #### [`ExportStatus.PENDING`](#pending)[​](#pending "Direct link to pending") #### [`ExportStatus.COMPLETED`](#completed)[​](#completed "Direct link to completed") #### [`ExportStatus.FAILED`](#failed)[​](#failed "Direct link to failed") ### Member Of[​](#member-of "Direct link to Member Of") [`ChargesExport`](https://docs.monei.com/apis/graphql/types/objects/charges-export/.md) object --- # IdVerificationStatus Identity verification (KYC) status for an account representative. * `submitted` - Documents submitted, awaiting review. * `approved` - Identity verified. * `resubmission_requested` - Additional documents required. * `declined` - Verification failed. * `expired` - Verification result expired. * `abandoned` - Verification flow abandoned by the user. ``` enum IdVerificationStatus { submitted approved resubmission_requested declined expired abandoned } ``` ### Values[​](#values "Direct link to Values") #### [`IdVerificationStatus.submitted`](#submitted)[​](#submitted "Direct link to submitted") #### [`IdVerificationStatus.approved`](#approved)[​](#approved "Direct link to approved") #### [`IdVerificationStatus.resubmission_requested`](#resubmission-requested)[​](#resubmission-requested "Direct link to resubmission-requested") #### [`IdVerificationStatus.declined`](#declined)[​](#declined "Direct link to declined") #### [`IdVerificationStatus.expired`](#expired)[​](#expired "Direct link to expired") #### [`IdVerificationStatus.abandoned`](#abandoned)[​](#abandoned "Direct link to abandoned") ### Member Of[​](#member-of "Direct link to Member Of") [`Identity`](https://docs.monei.com/apis/graphql/types/objects/identity/.md) object ● [`Representative`](https://docs.monei.com/apis/graphql/types/objects/representative/.md) object --- # Industries Industry category of the merchant business. * `ECOMMERCE` - Online retail and services. ``` enum Industries { ECOMMERCE } ``` ### Values[​](#values "Direct link to Values") #### [`Industries.ECOMMERCE`](#ecommerce)[​](#ecommerce "Direct link to ecommerce") ### Member Of[​](#member-of "Direct link to Member Of") [`BusinessData`](https://docs.monei.com/apis/graphql/types/objects/business-data/.md) object ● [`BusinessDataInput`](https://docs.monei.com/apis/graphql/types/inputs/business-data-input/.md) input --- # IntervalInput Subscription interval (input). The `minute` and `hour` intervals are only available in test mode. * `minute` - Minutely. * `hour` - Hourly. * `day` - Daily. * `week` - Weekly. * `month` - Monthly. * `quarter` - Quarterly. * `year` - Yearly. ``` enum IntervalInput { minute hour day week month quarter year } ``` ### Values[​](#values "Direct link to Values") #### [`IntervalInput.minute`](#minute)[​](#minute "Direct link to minute") #### [`IntervalInput.hour`](#hour)[​](#hour "Direct link to hour") #### [`IntervalInput.day`](#day)[​](#day "Direct link to day") #### [`IntervalInput.week`](#week)[​](#week "Direct link to week") #### [`IntervalInput.month`](#month)[​](#month "Direct link to month") #### [`IntervalInput.quarter`](#quarter)[​](#quarter "Direct link to quarter") #### [`IntervalInput.year`](#year)[​](#year "Direct link to year") ### Member Of[​](#member-of "Direct link to Member Of") [`CreateSubscriptionInput`](https://docs.monei.com/apis/graphql/types/inputs/create-subscription-input/.md) input ● [`UpdateSubscriptionInput`](https://docs.monei.com/apis/graphql/types/inputs/update-subscription-input/.md) input --- # Interval Subscription interval. The `minute` and `hour` intervals are only available in test mode. * `minute` - Minutely. * `hour` - Hourly. * `day` - Daily. * `week` - Weekly. * `month` - Monthly. * `quarter` - Quarterly. * `year` - Yearly. ``` enum Interval { minute hour day week month quarter year } ``` ### Values[​](#values "Direct link to Values") #### [`Interval.minute`](#minute)[​](#minute "Direct link to minute") #### [`Interval.hour`](#hour)[​](#hour "Direct link to hour") #### [`Interval.day`](#day)[​](#day "Direct link to day") #### [`Interval.week`](#week)[​](#week "Direct link to week") #### [`Interval.month`](#month)[​](#month "Direct link to month") #### [`Interval.quarter`](#quarter)[​](#quarter "Direct link to quarter") #### [`Interval.year`](#year)[​](#year "Direct link to year") ### Member Of[​](#member-of "Direct link to Member Of") [`chargesDateRangeKPI`](https://docs.monei.com/apis/graphql/operations/queries/charges-date-range-kpi/.md) query ● [`RetrySchedule`](https://docs.monei.com/apis/graphql/types/objects/retry-schedule/.md) object ● [`Subscription`](https://docs.monei.com/apis/graphql/types/objects/subscription/.md) object ● [`SubscriptionEventObject`](https://docs.monei.com/apis/graphql/types/objects/subscription-event-object/.md) object --- # LegalForm Legal form of the merchant business. * `INDIVIDUAL` - Deprecated. Use `FREELANCE`. * `FREELANCE` - Self-employed individual / sole proprietor. * `COMPANY` - Registered legal entity. ``` enum LegalForm { INDIVIDUAL FREELANCE COMPANY } ``` ### Values[​](#values "Direct link to Values") #### [`LegalForm.INDIVIDUAL`](#individual)[​](#individual "Direct link to individual") #### [`LegalForm.FREELANCE`](#freelance)[​](#freelance "Direct link to freelance") #### [`LegalForm.COMPANY`](#company)[​](#company "Direct link to company") ### Member Of[​](#member-of "Direct link to Member Of") [`BusinessData`](https://docs.monei.com/apis/graphql/types/objects/business-data/.md) object ● [`BusinessDataInput`](https://docs.monei.com/apis/graphql/types/inputs/business-data-input/.md) input --- # MessageChannel The channel used to send the payment message. * `EMAIL` - Send message via email. * `SMS` - Send message via SMS text message. * `WHATSAPP` - Send message via WhatsApp. ``` enum MessageChannel { EMAIL SMS WHATSAPP } ``` ### Values[​](#values "Direct link to Values") #### [`MessageChannel.EMAIL`](#email)[​](#email "Direct link to email") #### [`MessageChannel.SMS`](#sms)[​](#sms "Direct link to sms") #### [`MessageChannel.WHATSAPP`](#whatsapp)[​](#whatsapp "Direct link to whatsapp") ### Member Of[​](#member-of "Direct link to Member Of") [`SendPaymentMessageInput`](https://docs.monei.com/apis/graphql/types/inputs/send-payment-message-input/.md) input ● [`SendSubscriptionMessageInput`](https://docs.monei.com/apis/graphql/types/inputs/send-subscription-message-input/.md) input --- # MetadataItemType Storage type for a metadata item value. Values are always serialized as strings on the wire. * `STRING` - Single string. * `NUMBER` - Numeric value serialized as a string. * `BOOLEAN` - `true`/`false` serialized as a string. * `STRING_ARRAY` - JSON-encoded array of strings. * `NUMBER_ARRAY` - JSON-encoded array of numbers. ``` enum MetadataItemType { STRING NUMBER BOOLEAN STRING_ARRAY NUMBER_ARRAY } ``` ### Values[​](#values "Direct link to Values") #### [`MetadataItemType.STRING`](#string)[​](#string "Direct link to string") #### [`MetadataItemType.NUMBER`](#number)[​](#number "Direct link to number") #### [`MetadataItemType.BOOLEAN`](#boolean)[​](#boolean "Direct link to boolean") #### [`MetadataItemType.STRING_ARRAY`](#string-array)[​](#string-array "Direct link to string-array") #### [`MetadataItemType.NUMBER_ARRAY`](#number-array)[​](#number-array "Direct link to number-array") ### Member Of[​](#member-of "Direct link to Member Of") [`MetadataConfigItem`](https://docs.monei.com/apis/graphql/types/objects/metadata-config-item/.md) object ● [`MetadataItem`](https://docs.monei.com/apis/graphql/types/objects/metadata-item/.md) object --- # NextActionTypes Next action the integrator must take to progress the payment. * `CONFIRM` - Your customer needs to be redirected to a hosted payment page or confirm payment using a payment token. The `redirectUrl` will point to the hosted payment page. * `FRICTIONLESS_CHALLENGE` - Your customer needs to be redirected to the frictionless 3D Secure challenge page provided by the bank. The `redirectUrl` will point to that page. * `CHALLENGE` - Your customer needs to be redirected to the 3D Secure challenge page provided by the bank. The `redirectUrl` will point to that page. * `COMPLETE` - The payment is completed. The `redirectUrl` will be the `completeUrl` if it was provided when the payment was created. * `BIZUM_CHALLENGE` - Your customer will be redirected to the Bizum hosted payment page. ``` enum NextActionTypes { CONFIRM CHALLENGE COMPLETE FRICTIONLESS_CHALLENGE BIZUM_CHALLENGE } ``` ### Values[​](#values "Direct link to Values") #### [`NextActionTypes.CONFIRM`](#confirm)[​](#confirm "Direct link to confirm") #### [`NextActionTypes.CHALLENGE`](#challenge)[​](#challenge "Direct link to challenge") #### [`NextActionTypes.COMPLETE`](#complete)[​](#complete "Direct link to complete") #### [`NextActionTypes.FRICTIONLESS_CHALLENGE`](#frictionless-challenge)[​](#frictionless-challenge "Direct link to frictionless-challenge") #### [`NextActionTypes.BIZUM_CHALLENGE`](#bizum-challenge)[​](#bizum-challenge "Direct link to bizum-challenge") ### Member Of[​](#member-of "Direct link to Member Of") [`NextAction`](https://docs.monei.com/apis/graphql/types/objects/next-action/.md) object --- # NotConfiguredReason Reason an account is in `NOT_CONFIGURED` state. Deprecated in favor of `StatusReason`. * `REAL_HOLDERS_DOCS` - Beneficial-owner documents are missing. * `NON_COMMERCIAL_COMPANY_DOCS` - Non-commercial company documents are missing. * `NON_COMPLIANT_WEBSITE` - Website does not meet MONEI's requirements. * `OTHER_COMPANY_WEBSITE` - Website belongs to a different company. * `HIGH_RISK_GOODS` - Products fall in a high-risk category. * `JOINT_OWNERSHIP` - Joint ownership; additional documents are required. * `REPEAT_ONBOARDING` - A previous onboarding attempt exists for this business. * `CBD_PRODUCTS` - Sells CBD products. * `OTHER` - Other reason; see `notConfiguredNote`. ``` enum NotConfiguredReason { REAL_HOLDERS_DOCS NON_COMMERCIAL_COMPANY_DOCS NON_COMPLIANT_WEBSITE OTHER_COMPANY_WEBSITE HIGH_RISK_GOODS JOINT_OWNERSHIP REPEAT_ONBOARDING CBD_PRODUCTS OTHER } ``` ### Values[​](#values "Direct link to Values") #### [`NotConfiguredReason.REAL_HOLDERS_DOCS`](#real-holders-docs)[​](#real-holders-docs "Direct link to real-holders-docs") #### [`NotConfiguredReason.NON_COMMERCIAL_COMPANY_DOCS`](#non-commercial-company-docs)[​](#non-commercial-company-docs "Direct link to non-commercial-company-docs") #### [`NotConfiguredReason.NON_COMPLIANT_WEBSITE`](#non-compliant-website)[​](#non-compliant-website "Direct link to non-compliant-website") #### [`NotConfiguredReason.OTHER_COMPANY_WEBSITE`](#other-company-website)[​](#other-company-website "Direct link to other-company-website") #### [`NotConfiguredReason.HIGH_RISK_GOODS`](#high-risk-goods)[​](#high-risk-goods "Direct link to high-risk-goods") #### [`NotConfiguredReason.JOINT_OWNERSHIP`](#joint-ownership)[​](#joint-ownership "Direct link to joint-ownership") #### [`NotConfiguredReason.REPEAT_ONBOARDING`](#repeat-onboarding)[​](#repeat-onboarding "Direct link to repeat-onboarding") #### [`NotConfiguredReason.CBD_PRODUCTS`](#cbd-products)[​](#cbd-products "Direct link to cbd-products") #### [`NotConfiguredReason.OTHER`](#other)[​](#other "Direct link to other") ### Member Of[​](#member-of "Direct link to Member Of") [`Account`](https://docs.monei.com/apis/graphql/types/objects/account/.md) object --- # PaymentEmailType Email template variant for `previewPaymentEmail`. * `PAYMENT_LINK` - Pay-by-link email with a hosted checkout URL. * `RECEIPT` - Post-payment receipt. ``` enum PaymentEmailType { PAYMENT_LINK RECEIPT } ``` ### Values[​](#values "Direct link to Values") #### [`PaymentEmailType.PAYMENT_LINK`](#payment-link)[​](#payment-link "Direct link to payment-link") #### [`PaymentEmailType.RECEIPT`](#receipt)[​](#receipt "Direct link to receipt") ### Member Of[​](#member-of "Direct link to Member Of") [`paymentEmailPreview`](https://docs.monei.com/apis/graphql/operations/queries/payment-email-preview/.md) query ● [`previewPaymentEmail`](https://docs.monei.com/apis/graphql/operations/queries/preview-payment-email/.md) query --- # PaymentMethods Payment methods supported by MONEI. * `alipay` - Alipay digital wallet. * `card` - Credit/debit card. * `cardPresent` - Card-present (in-person) payment captured at a physical terminal. * `bizum` - Bizum, Spanish mobile payment scheme. * `paypal` - PayPal wallet. * `googlePay` - Google Pay digital wallet. * `applePay` - Apple Pay digital wallet. * `clickToPay` - Click to Pay (card-network-hosted wallet). * `mbway` - MB WAY, Portuguese mobile payment. * `multibanco` - Multibanco, Portuguese voucher-based bank payment. * `iDeal` - iDEAL, Dutch bank-transfer scheme. * `bancontact` - Bancontact, Belgian debit-card scheme. * `sofort` - SOFORT (Klarna), German online bank transfer. * `trustly` - Trustly, European bank transfer. * `sepa` - SEPA Direct Debit. * `klarna` - Klarna buy-now-pay-later. * `giropay` - giropay, German online bank transfer. * `srtp` - SEPA Request-to-Pay. * `eps` - EPS, Austrian online bank transfer. * `blik` - BLIK, Polish mobile payment. ``` enum PaymentMethods { alipay card cardPresent bizum paypal googlePay applePay clickToPay mbway multibanco iDeal bancontact sofort trustly sepa klarna giropay srtp eps blik } ``` ### Values[​](#values "Direct link to Values") #### [`PaymentMethods.alipay`](#alipay)[​](#alipay "Direct link to alipay") #### [`PaymentMethods.card`](#card)[​](#card "Direct link to card") #### [`PaymentMethods.cardPresent`](#card-present)[​](#card-present "Direct link to card-present") #### [`PaymentMethods.bizum`](#bizum)[​](#bizum "Direct link to bizum") #### [`PaymentMethods.paypal`](#paypal)[​](#paypal "Direct link to paypal") #### [`PaymentMethods.googlePay`](#google-pay)[​](#google-pay "Direct link to google-pay") #### [`PaymentMethods.applePay`](#apple-pay)[​](#apple-pay "Direct link to apple-pay") #### [`PaymentMethods.clickToPay`](#click-to-pay)[​](#click-to-pay "Direct link to click-to-pay") #### [`PaymentMethods.mbway`](#mbway)[​](#mbway "Direct link to mbway") #### [`PaymentMethods.multibanco`](#multibanco)[​](#multibanco "Direct link to multibanco") #### [`PaymentMethods.iDeal`](#i-deal)[​](#i-deal "Direct link to i-deal") #### [`PaymentMethods.bancontact`](#bancontact)[​](#bancontact "Direct link to bancontact") #### [`PaymentMethods.sofort`](#sofort)[​](#sofort "Direct link to sofort") #### [`PaymentMethods.trustly`](#trustly)[​](#trustly "Direct link to trustly") #### [`PaymentMethods.sepa`](#sepa)[​](#sepa "Direct link to sepa") #### [`PaymentMethods.klarna`](#klarna)[​](#klarna "Direct link to klarna") #### [`PaymentMethods.giropay`](#giropay)[​](#giropay "Direct link to giropay") #### [`PaymentMethods.srtp`](#srtp)[​](#srtp "Direct link to srtp") #### [`PaymentMethods.eps`](#eps)[​](#eps "Direct link to eps") #### [`PaymentMethods.blik`](#blik)[​](#blik "Direct link to blik") ### Member Of[​](#member-of "Direct link to Member Of") [`AvailablePaymentMethod`](https://docs.monei.com/apis/graphql/types/objects/available-payment-method/.md) object ● [`AvailableProcessor`](https://docs.monei.com/apis/graphql/types/objects/available-processor/.md) object ● [`availableProcessors`](https://docs.monei.com/apis/graphql/operations/queries/available-processors/.md) query ● [`CreatePaymentInput`](https://docs.monei.com/apis/graphql/types/inputs/create-payment-input/.md) input ● [`CreatePointOfSaleInput`](https://docs.monei.com/apis/graphql/types/inputs/create-point-of-sale-input/.md) input ● [`CreateProviderInput`](https://docs.monei.com/apis/graphql/types/inputs/create-provider-input/.md) input ● [`PaymentMethod`](https://docs.monei.com/apis/graphql/types/objects/payment-method/.md) object ● [`PaymentMethodInput`](https://docs.monei.com/apis/graphql/types/inputs/payment-method-input/.md) input ● [`PointOfSale`](https://docs.monei.com/apis/graphql/types/objects/point-of-sale/.md) object ● [`Provider`](https://docs.monei.com/apis/graphql/types/objects/provider/.md) object ● [`providerConfig`](https://docs.monei.com/apis/graphql/operations/queries/provider-config/.md) query ● [`ProviderConfig`](https://docs.monei.com/apis/graphql/types/objects/provider-config/.md) object ● [`UpdatePointOfSaleInput`](https://docs.monei.com/apis/graphql/types/inputs/update-point-of-sale-input/.md) input --- # PaymentRuleType Type of payment rule. Determines which engine evaluates the rule and which `action` types are valid. * `CARD_ROUTING` - Routing/3DS rule applied to card payments. Valid actions: `route_to`, `force_challenge`, `skip_challenge`, `decline`. * `PAYMENT_METHOD_VISIBILITY` - Checkout-time rule that shows or hides a payment method. Valid actions: `hide`, `show`. ``` enum PaymentRuleType { CARD_ROUTING PAYMENT_METHOD_VISIBILITY } ``` ### Values[​](#values "Direct link to Values") #### [`PaymentRuleType.CARD_ROUTING`](#card-routing)[​](#card-routing "Direct link to card-routing") #### [`PaymentRuleType.PAYMENT_METHOD_VISIBILITY`](#payment-method-visibility)[​](#payment-method-visibility "Direct link to payment-method-visibility") ### Member Of[​](#member-of "Direct link to Member Of") [`CreatePaymentRuleInput`](https://docs.monei.com/apis/graphql/types/inputs/create-payment-rule-input/.md) input ● [`PaymentRule`](https://docs.monei.com/apis/graphql/types/objects/payment-rule/.md) object ● [`UpdatePaymentRuleInput`](https://docs.monei.com/apis/graphql/types/inputs/update-payment-rule-input/.md) input --- # PaymentStatus The status of the payment. Mirrors `ChargeStatus`. * `SUCCEEDED` - The payment has been successfully processed and funds have been captured. * `PENDING` - The payment is being processed and awaiting completion. * `PENDING_PROCESSING` - Submitted to the processor, awaiting acknowledgement. * `FAILED` - The payment attempt was unsuccessful. * `CANCELED` - The payment was canceled before completion. * `REFUNDED` - The full payment amount has been refunded. * `PARTIALLY_REFUNDED` - Only a portion of the payment amount has been refunded. * `AUTHORIZED` - The payment has been authorized but funds have not been captured yet. * `EXPIRED` - The payment has expired without being completed. * `PAID_OUT` - Funds settled to the merchant's bank account. ``` enum PaymentStatus { SUCCEEDED PENDING PENDING_PROCESSING FAILED CANCELED REFUNDED PARTIALLY_REFUNDED AUTHORIZED EXPIRED PAID_OUT } ``` ### Values[​](#values "Direct link to Values") #### [`PaymentStatus.SUCCEEDED`](#succeeded)[​](#succeeded "Direct link to succeeded") #### [`PaymentStatus.PENDING`](#pending)[​](#pending "Direct link to pending") #### [`PaymentStatus.PENDING_PROCESSING`](#pending-processing)[​](#pending-processing "Direct link to pending-processing") #### [`PaymentStatus.FAILED`](#failed)[​](#failed "Direct link to failed") #### [`PaymentStatus.CANCELED`](#canceled)[​](#canceled "Direct link to canceled") #### [`PaymentStatus.REFUNDED`](#refunded)[​](#refunded "Direct link to refunded") #### [`PaymentStatus.PARTIALLY_REFUNDED`](#partially-refunded)[​](#partially-refunded "Direct link to partially-refunded") #### [`PaymentStatus.AUTHORIZED`](#authorized)[​](#authorized "Direct link to authorized") #### [`PaymentStatus.EXPIRED`](#expired)[​](#expired "Direct link to expired") #### [`PaymentStatus.PAID_OUT`](#paid-out)[​](#paid-out "Direct link to paid-out") ### Member Of[​](#member-of "Direct link to Member Of") [`LastPayment`](https://docs.monei.com/apis/graphql/types/objects/last-payment/.md) object ● [`Payment`](https://docs.monei.com/apis/graphql/types/objects/payment/.md) object --- # PointOfSaleType Point of sale type. Determines how the POS captures payments and the hardware/software it requires. * `VIRTUAL` - Software-only POS used to group transactions and scope authorized-user access. No hardware. Charges created by assigned users (via API or the MONEI Pay app) inherit this `pointOfSaleId`. * `QR_CODE` - Static or dynamic QR code displayed at a physical location. Customers scan to pay. * `MONEI_PAY` - Tap-to-phone (NFC) terminal driven by the MONEI Pay app on Android/iOS. * `MONEI_POD` - Legacy Bizum-only terminal. Deprecated; use `QR_CODE`. Creation requires `deviceId` on `CreatePointOfSaleInput`. ``` enum PointOfSaleType { MONEI_POD MONEI_PAY QR_CODE VIRTUAL } ``` ### Values[​](#values "Direct link to Values") #### [`PointOfSaleType.MONEI_POD`](#monei-pod)[​](#monei-pod "Direct link to monei-pod") #### [`PointOfSaleType.MONEI_PAY`](#monei-pay)[​](#monei-pay "Direct link to monei-pay") #### [`PointOfSaleType.QR_CODE`](#qr-code)[​](#qr-code "Direct link to qr-code") #### [`PointOfSaleType.VIRTUAL`](#virtual)[​](#virtual "Direct link to virtual") ### Member Of[​](#member-of "Direct link to Member Of") [`CreatePointOfSaleInput`](https://docs.monei.com/apis/graphql/types/inputs/create-point-of-sale-input/.md) input ● [`PointOfSale`](https://docs.monei.com/apis/graphql/types/objects/point-of-sale/.md) object --- # Processor Payment processor (gateway) that authorizes and captures transactions on behalf of an acquirer. * `ADYEN` - Adyen gateway. * `MONEI_REDSYS` - MONEI-managed Redsys integration. * `MONEIX_F` - MONEI X gateway, terminal/in-person profile. * `MONEIX_G` - MONEI X gateway, primary online card profile. * `MONEIX_GNET` - MONEI X gateway, network-token online profile. * `MONEIX_P` - MONEI X gateway, alternative payment methods (APMs). * `PAYPAL` - PayPal gateway. * `REDSYS` - Redsys gateway with merchant-owned TPV credentials. * `STRIPE` - Stripe gateway. ``` enum Processor { ADYEN MONEI_REDSYS MONEIX_F MONEIX_G MONEIX_GNET MONEIX_P PAYPAL REDSYS STRIPE } ``` ### Values[​](#values "Direct link to Values") #### [`Processor.ADYEN`](#adyen)[​](#adyen "Direct link to adyen") #### [`Processor.MONEI_REDSYS`](#monei-redsys)[​](#monei-redsys "Direct link to monei-redsys") #### [`Processor.MONEIX_F`](#moneix-f)[​](#moneix-f "Direct link to moneix-f") #### [`Processor.MONEIX_G`](#moneix-g)[​](#moneix-g "Direct link to moneix-g") #### [`Processor.MONEIX_GNET`](#moneix-gnet)[​](#moneix-gnet "Direct link to moneix-gnet") #### [`Processor.MONEIX_P`](#moneix-p)[​](#moneix-p "Direct link to moneix-p") #### [`Processor.PAYPAL`](#paypal)[​](#paypal "Direct link to paypal") #### [`Processor.REDSYS`](#redsys)[​](#redsys "Direct link to redsys") #### [`Processor.STRIPE`](#stripe)[​](#stripe "Direct link to stripe") ### Member Of[​](#member-of "Direct link to Member Of") [`AvailableProcessor`](https://docs.monei.com/apis/graphql/types/objects/available-processor/.md) object ● [`CreateProviderInput`](https://docs.monei.com/apis/graphql/types/inputs/create-provider-input/.md) input ● [`Provider`](https://docs.monei.com/apis/graphql/types/objects/provider/.md) object ● [`providerConfig`](https://docs.monei.com/apis/graphql/operations/queries/provider-config/.md) query ● [`ProviderConfig`](https://docs.monei.com/apis/graphql/types/objects/provider-config/.md) object --- # RefundReason Reason supplied when a payment is refunded. * `duplicated` - Duplicate of an existing payment. * `fraudulent` - Suspected fraud. * `requested_by_customer` - Customer asked for a refund. * `order_canceled` - Underlying order was canceled. ``` enum RefundReason { duplicated fraudulent requested_by_customer order_canceled } ``` ### Values[​](#values "Direct link to Values") #### [`RefundReason.duplicated`](#duplicated)[​](#duplicated "Direct link to duplicated") #### [`RefundReason.fraudulent`](#fraudulent)[​](#fraudulent "Direct link to fraudulent") #### [`RefundReason.requested_by_customer`](#requested-by-customer)[​](#requested-by-customer "Direct link to requested-by-customer") #### [`RefundReason.order_canceled`](#order-canceled)[​](#order-canceled "Direct link to order-canceled") ### Member Of[​](#member-of "Direct link to Member Of") [`Charge`](https://docs.monei.com/apis/graphql/types/objects/charge/.md) object ● [`ChargeEventObject`](https://docs.monei.com/apis/graphql/types/objects/charge-event-object/.md) object ● [`Payment`](https://docs.monei.com/apis/graphql/types/objects/payment/.md) object ● [`RefundPaymentInput`](https://docs.monei.com/apis/graphql/types/inputs/refund-payment-input/.md) input --- # RejectedReason Reason an account was rejected. Deprecated in favor of `StatusReason`. * `INCOMPLETE_DOCS` - Required documents were not provided. * `NOT_COMPLIANT` - Business does not comply with MONEI's policies. * `RESTRICTED_CATEGORY` - Business operates in a restricted category. * `OTHER` - Other reason; see `rejectedNote`. ``` enum RejectedReason { INCOMPLETE_DOCS NOT_COMPLIANT RESTRICTED_CATEGORY OTHER } ``` ### Values[​](#values "Direct link to Values") #### [`RejectedReason.INCOMPLETE_DOCS`](#incomplete-docs)[​](#incomplete-docs "Direct link to incomplete-docs") #### [`RejectedReason.NOT_COMPLIANT`](#not-compliant)[​](#not-compliant "Direct link to not-compliant") #### [`RejectedReason.RESTRICTED_CATEGORY`](#restricted-category)[​](#restricted-category "Direct link to restricted-category") #### [`RejectedReason.OTHER`](#other)[​](#other "Direct link to other") ### Member Of[​](#member-of "Direct link to Member Of") [`Account`](https://docs.monei.com/apis/graphql/types/objects/account/.md) object --- # RetryIntervalInput Unit of time to wait before a retry attempt. * `minute` - Minutely. Test mode only. * `hour` - Hourly. Test mode only. * `day` - Daily. * `week` - Weekly. * `month` - Monthly. * `quarter` - Quarterly. * `year` - Yearly. ``` enum RetryIntervalInput { minute hour day week month quarter year } ``` ### Values[​](#values "Direct link to Values") #### [`RetryIntervalInput.minute`](#minute)[​](#minute "Direct link to minute") #### [`RetryIntervalInput.hour`](#hour)[​](#hour "Direct link to hour") #### [`RetryIntervalInput.day`](#day)[​](#day "Direct link to day") #### [`RetryIntervalInput.week`](#week)[​](#week "Direct link to week") #### [`RetryIntervalInput.month`](#month)[​](#month "Direct link to month") #### [`RetryIntervalInput.quarter`](#quarter)[​](#quarter "Direct link to quarter") #### [`RetryIntervalInput.year`](#year)[​](#year "Direct link to year") ### Member Of[​](#member-of "Direct link to Member Of") [`RetryScheduleInput`](https://docs.monei.com/apis/graphql/types/inputs/retry-schedule-input/.md) input --- # SequenceType Type of payment sequence. ``` enum SequenceType { recurring } ``` ### Values[​](#values "Direct link to Values") #### [`SequenceType.recurring`](#recurring)[​](#recurring "Direct link to recurring") ### Member Of[​](#member-of "Direct link to Member Of") [`SequenceInput`](https://docs.monei.com/apis/graphql/types/inputs/sequence-input/.md) input --- # SettlementPayMethods Payment method the settlement batch covers. Each method settles in its own batch. * `card` - Card transactions (default). * `bizum` - Bizum transactions. ``` enum SettlementPayMethods { bizum card } ``` ### Values[​](#values "Direct link to Values") #### [`SettlementPayMethods.bizum`](#bizum)[​](#bizum "Direct link to bizum") #### [`SettlementPayMethods.card`](#card)[​](#card "Direct link to card") ### Member Of[​](#member-of "Direct link to Member Of") [`AccountSettlement`](https://docs.monei.com/apis/graphql/types/objects/account-settlement/.md) object ● [`SettlementEventObject`](https://docs.monei.com/apis/graphql/types/objects/settlement-event-object/.md) object --- # SettlementStatus Lifecycle status of a settlement batch. * `PENDING` - Open batch. Transactions for the period are still being aggregated; the batch is evaluated on `scheduledAt`. * `COMPLETED` - Aggregation closed with a positive balance, reserve calculated, and the net amount queued for bank transfer to `iban`. * `SUSPENDED` - On hold. May follow consecutive negative-balance cycles or a manual hold. Excluded from automatic transfer until cleared. ``` enum SettlementStatus { COMPLETED PENDING SUSPENDED } ``` ### Values[​](#values "Direct link to Values") #### [`SettlementStatus.COMPLETED`](#completed)[​](#completed "Direct link to completed") #### [`SettlementStatus.PENDING`](#pending)[​](#pending "Direct link to pending") #### [`SettlementStatus.SUSPENDED`](#suspended)[​](#suspended "Direct link to suspended") ### Member Of[​](#member-of "Direct link to Member Of") [`AccountSettlement`](https://docs.monei.com/apis/graphql/types/objects/account-settlement/.md) object ● [`SettlementEventObject`](https://docs.monei.com/apis/graphql/types/objects/settlement-event-object/.md) object --- # StatusReason Reason for the current account `status`. See `statusNote` for free-form details. * `BANK_OWNERSHIP_CERT_REQUIRED` - Bank account ownership certificate required. * `REAL_HOLDERS_DOCS` - Beneficial-owner documents required. * `NON_COMMERCIAL_COMPANY_DOCS` - Non-commercial company documents required. * `NON_COMPLIANT_WEBSITE` - Website does not meet requirements. * `OTHER_COMPANY_WEBSITE` - Website belongs to a different company. * `HIGH_RISK_GOODS` - Products fall in a high-risk category. * `JOINT_OWNERSHIP` - Joint ownership; additional documents required. * `REPEAT_ONBOARDING` - A previous onboarding attempt exists for this business. * `CBD_PRODUCTS` - Sells CBD products. * `ID_VERIFICATION_REQUIRED` - Identity verification required. * `CENSUS_CERT_REQUIRED` - Census/registry certificate required. * `INCOMPLETE_DOCS` - Required documents were not provided. * `NOT_COMPLIANT_BUSINESS` - Business does not comply with MONEI's policies. * `RESTRICTED_CATEGORY` - Business operates in a restricted category. * `UPDATE_BILLING_INFO` - Billing information needs to be updated. * `SUSPICIOUS_ACTIVITY` - Suspicious activity detected. * `CUSTOMER_COMPLAINTS` - Customer complaints threshold exceeded. * `CHARGEBACKS` - Chargeback threshold exceeded. * `CUSTOMER_REQUEST` - Closure or change requested by the merchant. * `DOMAIN_MISMATCH` - Website domain does not match the registered business. * `OTHER` - Other reason; see `statusNote`. ``` enum StatusReason { BANK_OWNERSHIP_CERT_REQUIRED REAL_HOLDERS_DOCS NON_COMMERCIAL_COMPANY_DOCS NON_COMPLIANT_WEBSITE OTHER_COMPANY_WEBSITE HIGH_RISK_GOODS JOINT_OWNERSHIP REPEAT_ONBOARDING CBD_PRODUCTS ID_VERIFICATION_REQUIRED CENSUS_CERT_REQUIRED INCOMPLETE_DOCS NOT_COMPLIANT_BUSINESS RESTRICTED_CATEGORY UPDATE_BILLING_INFO SUSPICIOUS_ACTIVITY CUSTOMER_COMPLAINTS CHARGEBACKS CUSTOMER_REQUEST DOMAIN_MISMATCH OTHER } ``` ### Values[​](#values "Direct link to Values") #### [`StatusReason.BANK_OWNERSHIP_CERT_REQUIRED`](#bank-ownership-cert-required)[​](#bank-ownership-cert-required "Direct link to bank-ownership-cert-required") #### [`StatusReason.REAL_HOLDERS_DOCS`](#real-holders-docs)[​](#real-holders-docs "Direct link to real-holders-docs") #### [`StatusReason.NON_COMMERCIAL_COMPANY_DOCS`](#non-commercial-company-docs)[​](#non-commercial-company-docs "Direct link to non-commercial-company-docs") #### [`StatusReason.NON_COMPLIANT_WEBSITE`](#non-compliant-website)[​](#non-compliant-website "Direct link to non-compliant-website") #### [`StatusReason.OTHER_COMPANY_WEBSITE`](#other-company-website)[​](#other-company-website "Direct link to other-company-website") #### [`StatusReason.HIGH_RISK_GOODS`](#high-risk-goods)[​](#high-risk-goods "Direct link to high-risk-goods") #### [`StatusReason.JOINT_OWNERSHIP`](#joint-ownership)[​](#joint-ownership "Direct link to joint-ownership") #### [`StatusReason.REPEAT_ONBOARDING`](#repeat-onboarding)[​](#repeat-onboarding "Direct link to repeat-onboarding") #### [`StatusReason.CBD_PRODUCTS`](#cbd-products)[​](#cbd-products "Direct link to cbd-products") #### [`StatusReason.ID_VERIFICATION_REQUIRED`](#id-verification-required)[​](#id-verification-required "Direct link to id-verification-required") #### [`StatusReason.CENSUS_CERT_REQUIRED`](#census-cert-required)[​](#census-cert-required "Direct link to census-cert-required") #### [`StatusReason.INCOMPLETE_DOCS`](#incomplete-docs)[​](#incomplete-docs "Direct link to incomplete-docs") #### [`StatusReason.NOT_COMPLIANT_BUSINESS`](#not-compliant-business)[​](#not-compliant-business "Direct link to not-compliant-business") #### [`StatusReason.RESTRICTED_CATEGORY`](#restricted-category)[​](#restricted-category "Direct link to restricted-category") #### [`StatusReason.UPDATE_BILLING_INFO`](#update-billing-info)[​](#update-billing-info "Direct link to update-billing-info") #### [`StatusReason.SUSPICIOUS_ACTIVITY`](#suspicious-activity)[​](#suspicious-activity "Direct link to suspicious-activity") #### [`StatusReason.CUSTOMER_COMPLAINTS`](#customer-complaints)[​](#customer-complaints "Direct link to customer-complaints") #### [`StatusReason.CHARGEBACKS`](#chargebacks)[​](#chargebacks "Direct link to chargebacks") #### [`StatusReason.CUSTOMER_REQUEST`](#customer-request)[​](#customer-request "Direct link to customer-request") #### [`StatusReason.DOMAIN_MISMATCH`](#domain-mismatch)[​](#domain-mismatch "Direct link to domain-mismatch") #### [`StatusReason.OTHER`](#other)[​](#other "Direct link to other") ### Member Of[​](#member-of "Direct link to Member Of") [`Account`](https://docs.monei.com/apis/graphql/types/objects/account/.md) object --- # SubscriptionEmailType Type of customer-facing subscription email. * `SUBSCRIPTION_LINK` - Payment link for the customer to activate the subscription. * `SUBSCRIPTION_STATUS` - Current subscription status notification. ``` enum SubscriptionEmailType { SUBSCRIPTION_LINK SUBSCRIPTION_STATUS } ``` ### Values[​](#values "Direct link to Values") #### [`SubscriptionEmailType.SUBSCRIPTION_LINK`](#subscription-link)[​](#subscription-link "Direct link to subscription-link") #### [`SubscriptionEmailType.SUBSCRIPTION_STATUS`](#subscription-status)[​](#subscription-status "Direct link to subscription-status") ### Member Of[​](#member-of "Direct link to Member Of") [`previewSubscriptionEmail`](https://docs.monei.com/apis/graphql/operations/queries/preview-subscription-email/.md) query ● [`subscriptionEmailPreview`](https://docs.monei.com/apis/graphql/operations/queries/subscription-email-preview/.md) query --- # SubscriptionPaymentMethods Payment methods allowed for subscriptions. * `card` - Card. * `bizum` - Bizum. ``` enum SubscriptionPaymentMethods { card bizum } ``` ### Values[​](#values "Direct link to Values") #### [`SubscriptionPaymentMethods.card`](#card)[​](#card "Direct link to card") #### [`SubscriptionPaymentMethods.bizum`](#bizum)[​](#bizum "Direct link to bizum") ### Member Of[​](#member-of "Direct link to Member Of") [`ActivateSubscriptionInput`](https://docs.monei.com/apis/graphql/types/inputs/activate-subscription-input/.md) input ● [`CreateSubscriptionInput`](https://docs.monei.com/apis/graphql/types/inputs/create-subscription-input/.md) input ● [`Subscription`](https://docs.monei.com/apis/graphql/types/objects/subscription/.md) object ● [`SubscriptionEventObject`](https://docs.monei.com/apis/graphql/types/objects/subscription-event-object/.md) object ● [`UpdateSubscriptionInput`](https://docs.monei.com/apis/graphql/types/inputs/update-subscription-input/.md) input --- # SubscriptionStatus The status of the subscription. * `PENDING` - Created but waiting for initial payment or activation. * `EXPIRED` - Reached its end date or maximum number of attempts without successful payment. * `TRIALING` - In trial period before the first payment is required. * `ACTIVE` - Currently active and payments are being processed normally. * `PAST_DUE` - Most recent payment attempt failed; will retry according to schedule. * `PAUSED` - Temporarily suspended; will resume based on pause settings. * `CANCELED` - Permanently terminated; will not process further payments. ``` enum SubscriptionStatus { PENDING EXPIRED TRIALING ACTIVE PAST_DUE PAUSED CANCELED } ``` ### Values[​](#values "Direct link to Values") #### [`SubscriptionStatus.PENDING`](#pending)[​](#pending "Direct link to pending") #### [`SubscriptionStatus.EXPIRED`](#expired)[​](#expired "Direct link to expired") #### [`SubscriptionStatus.TRIALING`](#trialing)[​](#trialing "Direct link to trialing") #### [`SubscriptionStatus.ACTIVE`](#active)[​](#active "Direct link to active") #### [`SubscriptionStatus.PAST_DUE`](#past-due)[​](#past-due "Direct link to past-due") #### [`SubscriptionStatus.PAUSED`](#paused)[​](#paused "Direct link to paused") #### [`SubscriptionStatus.CANCELED`](#canceled)[​](#canceled "Direct link to canceled") ### Member Of[​](#member-of "Direct link to Member Of") [`Subscription`](https://docs.monei.com/apis/graphql/types/objects/subscription/.md) object ● [`SubscriptionEventObject`](https://docs.monei.com/apis/graphql/types/objects/subscription-event-object/.md) object --- # ThreeDSecureFlow The flow used for 3DS authentication. * `CHALLENGE` - Authentication requiring additional shopper interaction through biometrics, 2FA, or other SCA methods. * `FRICTIONLESS` - Background authentication using device fingerprint without additional shopper interaction. * `FRICTIONLESS_CHALLENGE` - Complete 3DS flow with additional authentication if initial data collection is insufficient. * `DIRECT` - Transaction exempt from SCA due to low risk assessment. ``` enum ThreeDSecureFlow { CHALLENGE FRICTIONLESS FRICTIONLESS_CHALLENGE DIRECT } ``` ### Values[​](#values "Direct link to Values") #### [`ThreeDSecureFlow.CHALLENGE`](#challenge)[​](#challenge "Direct link to challenge") #### [`ThreeDSecureFlow.FRICTIONLESS`](#frictionless)[​](#frictionless "Direct link to frictionless") #### [`ThreeDSecureFlow.FRICTIONLESS_CHALLENGE`](#frictionless-challenge)[​](#frictionless-challenge "Direct link to frictionless-challenge") #### [`ThreeDSecureFlow.DIRECT`](#direct)[​](#direct "Direct link to direct") ### Member Of[​](#member-of "Direct link to Member Of") [`PaymentMethodCard`](https://docs.monei.com/apis/graphql/types/objects/payment-method-card/.md) object --- # TokenizationMethods Wallet that produced the network token used to authorize a card payment. * `googlePay` - Google Pay tokenization. * `applePay` - Apple Pay tokenization. * `clickToPay` - Click to Pay tokenization. ``` enum TokenizationMethods { googlePay applePay clickToPay } ``` ### Values[​](#values "Direct link to Values") #### [`TokenizationMethods.googlePay`](#google-pay)[​](#google-pay "Direct link to google-pay") #### [`TokenizationMethods.applePay`](#apple-pay)[​](#apple-pay "Direct link to apple-pay") #### [`TokenizationMethods.clickToPay`](#click-to-pay)[​](#click-to-pay "Direct link to click-to-pay") ### Member Of[​](#member-of "Direct link to Member Of") [`disableTokenizationMethod`](https://docs.monei.com/apis/graphql/operations/mutations/disable-tokenization-method/.md) mutation ● [`enableTokenizationMethod`](https://docs.monei.com/apis/graphql/operations/mutations/enable-tokenization-method/.md) mutation ● [`PaymentMethodCard`](https://docs.monei.com/apis/graphql/types/objects/payment-method-card/.md) object ● [`PaymentMethodCardInput`](https://docs.monei.com/apis/graphql/types/inputs/payment-method-card-input/.md) input --- # TransactionTypes Controls when the funds will be captured. * `SALE` - Automatically captures funds when the customer authorizes the payment. * `AUTH` - Places a hold on funds without immediate capture, allowing for later capture via `capturePayment` (otherwise funds release at `EXPIRED`). * `PAYOUT` - Sends funds to the customer. * `VERIF` - Verifies the payment method without placing a hold or capturing funds. * `REFUND` - Refund operation type (used in events). * `CAPTURE` - Capture of a previously authorized payment (used in events). * `CANCEL` - Cancellation of a previously authorized payment (used in events). ``` enum TransactionTypes { AUTH SALE REFUND CAPTURE CANCEL PAYOUT VERIF } ``` ### Values[​](#values "Direct link to Values") #### [`TransactionTypes.AUTH`](#auth)[​](#auth "Direct link to auth") #### [`TransactionTypes.SALE`](#sale)[​](#sale "Direct link to sale") #### [`TransactionTypes.REFUND`](#refund)[​](#refund "Direct link to refund") #### [`TransactionTypes.CAPTURE`](#capture)[​](#capture "Direct link to capture") #### [`TransactionTypes.CANCEL`](#cancel)[​](#cancel "Direct link to cancel") #### [`TransactionTypes.PAYOUT`](#payout)[​](#payout "Direct link to payout") #### [`TransactionTypes.VERIF`](#verif)[​](#verif "Direct link to verif") ### Member Of[​](#member-of "Direct link to Member Of") [`CreatePaymentInput`](https://docs.monei.com/apis/graphql/types/inputs/create-payment-input/.md) input ● [`CreatePointOfSaleInput`](https://docs.monei.com/apis/graphql/types/inputs/create-point-of-sale-input/.md) input ● [`PointOfSale`](https://docs.monei.com/apis/graphql/types/objects/point-of-sale/.md) object ● [`UpdatePointOfSaleInput`](https://docs.monei.com/apis/graphql/types/inputs/update-point-of-sale-input/.md) input --- # UnitType Unit semantics for an account-invoice line item. * `money` - `unitAmount` is a monetary value in minor units; line total = `quantity * unitAmount`. * `percent` - `unitAmount` is a percentage; line total = `quantity * unitAmount / 100`. ``` enum UnitType { money percent } ``` ### Values[​](#values "Direct link to Values") #### [`UnitType.money`](#money)[​](#money "Direct link to money") #### [`UnitType.percent`](#percent)[​](#percent "Direct link to percent") ### Member Of[​](#member-of "Direct link to Member Of") [`AccountInvoiceLineItem`](https://docs.monei.com/apis/graphql/types/objects/account-invoice-line-item/.md) object --- # VerificationMethod Cardholder verification method used at the terminal (card-present payments). * `onlinePin` - PIN verified online with the issuer. * `offlinePin` - PIN verified offline by the chip. ``` enum VerificationMethod { onlinePin offlinePin } ``` ### Values[​](#values "Direct link to Values") #### [`VerificationMethod.onlinePin`](#online-pin)[​](#online-pin "Direct link to online-pin") #### [`VerificationMethod.offlinePin`](#offline-pin)[​](#offline-pin "Direct link to offline-pin") ### Member Of[​](#member-of "Direct link to Member Of") [`PaymentMethodCardPresent`](https://docs.monei.com/apis/graphql/types/objects/payment-method-card-present/.md) object ● [`PaymentMethodCardPresentInput`](https://docs.monei.com/apis/graphql/types/inputs/payment-method-card-present-input/.md) input --- # WebhookEventType Event types a webhook can subscribe to. The MONEI server sends an event when the matching object reaches the corresponding state. * `CHARGE_PENDING` - Charge created, awaiting customer action. * `CHARGE_PENDING_PROCESSING` - Charge submitted to the processor, awaiting outcome. * `CHARGE_UPDATED` - Charge fields changed (metadata, descriptors, etc.). * `CHARGE_AUTHORIZED` - Funds reserved on the card; awaiting capture. * `CHARGE_REFUNDED` - Charge fully refunded. * `CHARGE_PARTIALLY_REFUNDED` - Charge refunded for less than the full amount. * `CHARGE_CAPTURED` - Authorized charge captured. * `CHARGE_CANCELED` - Authorization voided before capture. * `CHARGE_SUCCEEDED` - Charge completed successfully. * `CHARGE_FAILED` - Charge declined or errored. * `CHARGE_EXPIRED` - Charge expired without completion. * `CHARGE_CHARGEBACK` - Issuer initiated a chargeback. * `CHARGE_PAID_OUT` - Funds for the charge included in a settlement payout. * `SETTLEMENT_COMPLETED` - Settlement transferred to the merchant's bank account. * `SETTLEMENT_PENDING` - Settlement scheduled, not yet released. * `SETTLEMENT_SUSPENDED` - Settlement held (risk/compliance review). * `SUBSCRIPTION_PENDING` - Subscription created, awaiting first payment. * `SUBSCRIPTION_EXPIRED` - Subscription ended (e.g. fixed term reached, max retries exhausted). * `SUBSCRIPTION_TRIALING` - Subscription is in its trial period. * `SUBSCRIPTION_ACTIVATED` - Subscription is active and billing. * `SUBSCRIPTION_CANCELED` - Subscription canceled. * `SUBSCRIPTION_PAUSED` - Subscription paused. * `SUBSCRIPTION_PAST_DUE` - Renewal payment failed; subscription is in dunning. * `SUBSCRIPTION_UPDATED` - Subscription fields changed. * `ACCOUNT_INVOICE_PAID` - MONEI invoice for the merchant account paid. * `ACCOUNT_INVOICE_UNPAID` - MONEI invoice unpaid after the due date. * `ACCOUNT_INVOICE_PENDING` - MONEI invoice issued, payment pending. * `ACCOUNT_INVOICE_PAST_DUE` - MONEI invoice past due. ``` enum WebhookEventType { CHARGE_PENDING CHARGE_PENDING_PROCESSING CHARGE_UPDATED CHARGE_AUTHORIZED CHARGE_REFUNDED CHARGE_PARTIALLY_REFUNDED CHARGE_CAPTURED CHARGE_CANCELED CHARGE_SUCCEEDED CHARGE_FAILED CHARGE_EXPIRED CHARGE_CHARGEBACK CHARGE_PAID_OUT SETTLEMENT_COMPLETED SETTLEMENT_PENDING SETTLEMENT_SUSPENDED SUBSCRIPTION_PENDING SUBSCRIPTION_EXPIRED SUBSCRIPTION_TRIALING SUBSCRIPTION_ACTIVATED SUBSCRIPTION_CANCELED SUBSCRIPTION_PAUSED SUBSCRIPTION_PAST_DUE SUBSCRIPTION_UPDATED ACCOUNT_INVOICE_PAID ACCOUNT_INVOICE_UNPAID ACCOUNT_INVOICE_PENDING ACCOUNT_INVOICE_PAST_DUE } ``` ### Values[​](#values "Direct link to Values") #### [`WebhookEventType.CHARGE_PENDING`](#charge-pending)[​](#charge-pending "Direct link to charge-pending") #### [`WebhookEventType.CHARGE_PENDING_PROCESSING`](#charge-pending-processing)[​](#charge-pending-processing "Direct link to charge-pending-processing") #### [`WebhookEventType.CHARGE_UPDATED`](#charge-updated)[​](#charge-updated "Direct link to charge-updated") #### [`WebhookEventType.CHARGE_AUTHORIZED`](#charge-authorized)[​](#charge-authorized "Direct link to charge-authorized") #### [`WebhookEventType.CHARGE_REFUNDED`](#charge-refunded)[​](#charge-refunded "Direct link to charge-refunded") #### [`WebhookEventType.CHARGE_PARTIALLY_REFUNDED`](#charge-partially-refunded)[​](#charge-partially-refunded "Direct link to charge-partially-refunded") #### [`WebhookEventType.CHARGE_CAPTURED`](#charge-captured)[​](#charge-captured "Direct link to charge-captured") #### [`WebhookEventType.CHARGE_CANCELED`](#charge-canceled)[​](#charge-canceled "Direct link to charge-canceled") #### [`WebhookEventType.CHARGE_SUCCEEDED`](#charge-succeeded)[​](#charge-succeeded "Direct link to charge-succeeded") #### [`WebhookEventType.CHARGE_FAILED`](#charge-failed)[​](#charge-failed "Direct link to charge-failed") #### [`WebhookEventType.CHARGE_EXPIRED`](#charge-expired)[​](#charge-expired "Direct link to charge-expired") #### [`WebhookEventType.CHARGE_CHARGEBACK`](#charge-chargeback)[​](#charge-chargeback "Direct link to charge-chargeback") #### [`WebhookEventType.CHARGE_PAID_OUT`](#charge-paid-out)[​](#charge-paid-out "Direct link to charge-paid-out") #### [`WebhookEventType.SETTLEMENT_COMPLETED`](#settlement-completed)[​](#settlement-completed "Direct link to settlement-completed") #### [`WebhookEventType.SETTLEMENT_PENDING`](#settlement-pending)[​](#settlement-pending "Direct link to settlement-pending") #### [`WebhookEventType.SETTLEMENT_SUSPENDED`](#settlement-suspended)[​](#settlement-suspended "Direct link to settlement-suspended") #### [`WebhookEventType.SUBSCRIPTION_PENDING`](#subscription-pending)[​](#subscription-pending "Direct link to subscription-pending") #### [`WebhookEventType.SUBSCRIPTION_EXPIRED`](#subscription-expired)[​](#subscription-expired "Direct link to subscription-expired") #### [`WebhookEventType.SUBSCRIPTION_TRIALING`](#subscription-trialing)[​](#subscription-trialing "Direct link to subscription-trialing") #### [`WebhookEventType.SUBSCRIPTION_ACTIVATED`](#subscription-activated)[​](#subscription-activated "Direct link to subscription-activated") #### [`WebhookEventType.SUBSCRIPTION_CANCELED`](#subscription-canceled)[​](#subscription-canceled "Direct link to subscription-canceled") #### [`WebhookEventType.SUBSCRIPTION_PAUSED`](#subscription-paused)[​](#subscription-paused "Direct link to subscription-paused") #### [`WebhookEventType.SUBSCRIPTION_PAST_DUE`](#subscription-past-due)[​](#subscription-past-due "Direct link to subscription-past-due") #### [`WebhookEventType.SUBSCRIPTION_UPDATED`](#subscription-updated)[​](#subscription-updated "Direct link to subscription-updated") #### [`WebhookEventType.ACCOUNT_INVOICE_PAID`](#account-invoice-paid)[​](#account-invoice-paid "Direct link to account-invoice-paid") #### [`WebhookEventType.ACCOUNT_INVOICE_UNPAID`](#account-invoice-unpaid)[​](#account-invoice-unpaid "Direct link to account-invoice-unpaid") #### [`WebhookEventType.ACCOUNT_INVOICE_PENDING`](#account-invoice-pending)[​](#account-invoice-pending "Direct link to account-invoice-pending") #### [`WebhookEventType.ACCOUNT_INVOICE_PAST_DUE`](#account-invoice-past-due)[​](#account-invoice-past-due "Direct link to account-invoice-past-due") ### Member Of[​](#member-of "Direct link to Member Of") [`CreateWebhookInput`](https://docs.monei.com/apis/graphql/types/inputs/create-webhook-input/.md) input ● [`UpdateWebhookInput`](https://docs.monei.com/apis/graphql/types/inputs/update-webhook-input/.md) input ● [`Webhook`](https://docs.monei.com/apis/graphql/types/objects/webhook/.md) object --- # AccountBrandingInput Branding update payload. ``` input AccountBrandingInput { accentColor: String bgColor: String logoUrl: String iconUrl: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`AccountBrandingInput.accentColor`](#accent-color) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#accent-color "Direct link to accent-color") Accent color (hex, e.g. `#0066FF`). #### [`AccountBrandingInput.bgColor`](#bg-color) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#bg-color "Direct link to bg-color") Background color (hex) of the hosted payment page. #### [`AccountBrandingInput.logoUrl`](#logo-url) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#logo-url "Direct link to logo-url") Logo URL displayed on the payment page. #### [`AccountBrandingInput.iconUrl`](#icon-url) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#icon-url "Direct link to icon-url") Icon URL used as the favicon for the payment page. ### Member Of[​](#member-of "Direct link to Member Of") [`UpdateAccountInput`](https://docs.monei.com/apis/graphql/types/inputs/update-account-input/.md) input --- # AccountNotificationsInput Email notifications update payload. ``` input AccountNotificationsInput { emailCustomerOnRefund: Boolean emailCustomerOnSuccess: Boolean emailCustomerOnSubscription: Boolean emailAdminOnSuccess: Boolean emailAdminOnSubscription: Boolean adminEmails: [String!] } ``` ### Fields[​](#fields "Direct link to Fields") #### [`AccountNotificationsInput.emailCustomerOnRefund`](#email-customer-on-refund) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#email-customer-on-refund "Direct link to email-customer-on-refund") Email customers when a payment is refunded. #### [`AccountNotificationsInput.emailCustomerOnSuccess`](#email-customer-on-success) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#email-customer-on-success "Direct link to email-customer-on-success") Email customers on successful payment. #### [`AccountNotificationsInput.emailCustomerOnSubscription`](#email-customer-on-subscription) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#email-customer-on-subscription "Direct link to email-customer-on-subscription") Email customers on successful subscription charge. #### [`AccountNotificationsInput.emailAdminOnSuccess`](#email-admin-on-success) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#email-admin-on-success "Direct link to email-admin-on-success") Email account admins on every successful payment. #### [`AccountNotificationsInput.emailAdminOnSubscription`](#email-admin-on-subscription) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#email-admin-on-subscription "Direct link to email-admin-on-subscription") Email account admins on every successful subscription charge. #### [`AccountNotificationsInput.adminEmails`](#admin-emails) ● [`[String!]`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) list scalar[​](#admin-emails "Direct link to admin-emails") Admin email recipients for the toggles above. ### Member Of[​](#member-of "Direct link to Member Of") [`UpdateAccountInput`](https://docs.monei.com/apis/graphql/types/inputs/update-account-input/.md) input --- # AccountPublicBusinessDetailsInput Public business details update payload. ``` input AccountPublicBusinessDetailsInput { companyName: String website: String phone: String address: AddressInput supportWebsite: String supportEmail: String supportPhone: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`AccountPublicBusinessDetailsInput.companyName`](#company-name) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#company-name "Direct link to company-name") Trading name displayed to customers. #### [`AccountPublicBusinessDetailsInput.website`](#website) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#website "Direct link to website") Public website URL. #### [`AccountPublicBusinessDetailsInput.phone`](#phone) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#phone "Direct link to phone") Public contact phone in E.164 format, e.g. `+34666777888`. #### [`AccountPublicBusinessDetailsInput.address`](#address) ● [`AddressInput`](https://docs.monei.com/apis/graphql/types/inputs/address-input/.md) input[​](#address "Direct link to address") Public postal address. #### [`AccountPublicBusinessDetailsInput.supportWebsite`](#support-website) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#support-website "Direct link to support-website") Customer support website URL. #### [`AccountPublicBusinessDetailsInput.supportEmail`](#support-email) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#support-email "Direct link to support-email") Customer support email. #### [`AccountPublicBusinessDetailsInput.supportPhone`](#support-phone) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#support-phone "Direct link to support-phone") Customer support phone in E.164 format, e.g. `+34666777888`. ### Member Of[​](#member-of "Direct link to Member Of") [`UpdateAccountInput`](https://docs.monei.com/apis/graphql/types/inputs/update-account-input/.md) input --- # ActivateApplePayCertInput Input for `activateApplePayCert`. ``` input ActivateApplePayCertInput { id: ID! cert: String! } ``` ### Fields[​](#fields "Direct link to Fields") #### [`ActivateApplePayCertInput.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") Certificate ID. #### [`ActivateApplePayCertInput.cert`](#cert) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#cert "Direct link to cert") The signed certificate from Apple in base64 format. Download this from Apple Developer Portal after creating the certificate with your CSR. ### Member Of[​](#member-of "Direct link to Member Of") [`activateApplePayCert`](https://docs.monei.com/apis/graphql/operations/mutations/activate-apple-pay-cert/.md) mutation --- # ActivateSubscriptionInput Input for `activateSubscription`. Generates the initial payment that establishes the recurring mandate. ``` input ActivateSubscriptionInput { paymentToken: String addAmount: Int allowedPaymentMethods: [SubscriptionPaymentMethods] sequenceId: ID sessionId: ID completeUrl: String cancelUrl: String failUrl: String id: ID! metadata: [KeyValueInput!] expireAt: AWSTimestamp } ``` ### Fields[​](#fields "Direct link to Fields") #### [`ActivateSubscriptionInput.paymentToken`](#payment-token) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#payment-token "Direct link to payment-token") A payment token generated by monei.js Components or a paymentToken saved after a previous successful payment. In case of the first one, you will also need to send the `sessionId` used to generate the token in the first place. #### [`ActivateSubscriptionInput.addAmount`](#add-amount) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#add-amount "Direct link to add-amount") The amount to be added to the subscription's initial payment. A positive integer representing how much to charge in the smallest currency unit (e.g., 100 cents to charge 1.00 USD). #### [`ActivateSubscriptionInput.allowedPaymentMethods`](#allowed-payment-methods) ● [`[SubscriptionPaymentMethods]`](https://docs.monei.com/apis/graphql/types/enums/subscription-payment-methods/.md) list enum[​](#allowed-payment-methods "Direct link to allowed-payment-methods") List of payment methods allowed for this activation payment. #### [`ActivateSubscriptionInput.sequenceId`](#sequence-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#sequence-id "Direct link to sequence-id") A unique identifier representing a series of subsequent recurring payments (e.g. when migrating). #### [`ActivateSubscriptionInput.sessionId`](#session-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#session-id "Direct link to session-id") Existing payment session ID to reuse. #### [`ActivateSubscriptionInput.completeUrl`](#complete-url) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#complete-url "Direct link to complete-url") The URL the customer is redirected to after a successful payment. #### [`ActivateSubscriptionInput.cancelUrl`](#cancel-url) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#cancel-url "Direct link to cancel-url") The URL the customer is redirected to when they cancel the payment. #### [`ActivateSubscriptionInput.failUrl`](#fail-url) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#fail-url "Direct link to fail-url") The URL the customer is redirected to after a failed payment. #### [`ActivateSubscriptionInput.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") Unique identifier for the subscription to activate. #### [`ActivateSubscriptionInput.metadata`](#metadata) ● [`[KeyValueInput!]`](https://docs.monei.com/apis/graphql/types/inputs/key-value-input/.md) list input[​](#metadata "Direct link to metadata") A set of key-value pairs merged into the payment metadata. #### [`ActivateSubscriptionInput.expireAt`](#expire-at) ● [`AWSTimestamp`](https://docs.monei.com/apis/graphql/types/scalars/awstimestamp/.md) scalar[​](#expire-at "Direct link to expire-at") Activation payment expiration. Measured in seconds since the Unix epoch. Cannot exceed `trialPeriodEnd` minus a 15-minute safety buffer. ### Member Of[​](#member-of "Direct link to Member Of") [`activateSubscription`](https://docs.monei.com/apis/graphql/operations/mutations/activate-subscription/.md) mutation --- # AddressInput Postal address input. Mirrors `Address`. ``` input AddressInput { city: String country: String line1: String line2: String zip: String state: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`AddressInput.city`](#city) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#city "Direct link to city") City, district, suburb, town, or village. #### [`AddressInput.country`](#country) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#country "Direct link to country") Two-letter country code (ISO 3166-1 alpha-2). #### [`AddressInput.line1`](#line-1) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#line-1 "Direct link to line-1") Address line 1 (e.g., street, PO Box, or company name). #### [`AddressInput.line2`](#line-2) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#line-2 "Direct link to line-2") Address line 2 (e.g., apartment, suite, unit, or building). #### [`AddressInput.zip`](#zip) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#zip "Direct link to zip") ZIP or postal code. #### [`AddressInput.state`](#state) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#state "Direct link to state") State, county, province, or region. ### Member Of[​](#member-of "Direct link to Member Of") [`AccountPublicBusinessDetailsInput`](https://docs.monei.com/apis/graphql/types/inputs/account-public-business-details-input/.md) input ● [`BusinessDataInput`](https://docs.monei.com/apis/graphql/types/inputs/business-data-input/.md) input ● [`ContactDetailsInput`](https://docs.monei.com/apis/graphql/types/inputs/contact-details-input/.md) input ● [`CreateStoreInput`](https://docs.monei.com/apis/graphql/types/inputs/create-store-input/.md) input ● [`IdentityInput`](https://docs.monei.com/apis/graphql/types/inputs/identity-input/.md) input ● [`PaymentMethodSepaInput`](https://docs.monei.com/apis/graphql/types/inputs/payment-method-sepa-input/.md) input ● [`RepresentativeInput`](https://docs.monei.com/apis/graphql/types/inputs/representative-input/.md) input ● [`UpdateIdentityInput`](https://docs.monei.com/apis/graphql/types/inputs/update-identity-input/.md) input ● [`UpdateStoreInput`](https://docs.monei.com/apis/graphql/types/inputs/update-store-input/.md) input --- # BlacklistItemInput Input for `addBlacklistItem`. ``` input BlacklistItemInput { type: BlacklistItemType! value: String! note: String validUntil: AWSTimestamp } ``` ### Fields[​](#fields "Direct link to Fields") #### [`BlacklistItemInput.type`](#type) ● [`BlacklistItemType!`](https://docs.monei.com/apis/graphql/types/enums/blacklist-item-type/.md) non-null enum[​](#type "Direct link to type") Payment attribute this rule should match against. #### [`BlacklistItemInput.value`](#value) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#value "Direct link to value") Value to match. Format depends on `type` (email, E.164 phone, IPv4, card fingerprint, session fingerprint, ISO 3166-1 alpha-2 country code). #### [`BlacklistItemInput.note`](#note) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#note "Direct link to note") Free-form note explaining why the rule is being added. #### [`BlacklistItemInput.validUntil`](#valid-until) ● [`AWSTimestamp`](https://docs.monei.com/apis/graphql/types/scalars/awstimestamp/.md) scalar[​](#valid-until "Direct link to valid-until") Manual expiration as a unix timestamp (seconds). Omit for a permanent rule. ### Member Of[​](#member-of "Direct link to Member Of") [`addBlacklistItem`](https://docs.monei.com/apis/graphql/operations/mutations/add-blacklist-item/.md) mutation --- # BusinessDataInput Business details payload submitted during KYC / onboarding. ``` input BusinessDataInput { country: String legalForm: LegalForm! legalName: String companyName: String address: AddressInput documentNumber: String creationDate: String email: String phone: String website: String monthlyVolume: Int confirmWebsite: Boolean industry: Industries mcc: String servicesDescription: String confirmServicesDescription: Boolean } ``` ### Fields[​](#fields "Direct link to Fields") #### [`BusinessDataInput.country`](#country) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#country "Direct link to country") Country of incorporation as ISO 3166-1 alpha-2 code. #### [`BusinessDataInput.legalForm`](#legal-form) ● [`LegalForm!`](https://docs.monei.com/apis/graphql/types/enums/legal-form/.md) non-null enum[​](#legal-form "Direct link to legal-form") Legal form of the entity. #### [`BusinessDataInput.legalName`](#legal-name) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#legal-name "Direct link to legal-name") Registered legal name. #### [`BusinessDataInput.companyName`](#company-name) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#company-name "Direct link to company-name") Trading name. May differ from `legalName`. #### [`BusinessDataInput.address`](#address) ● [`AddressInput`](https://docs.monei.com/apis/graphql/types/inputs/address-input/.md) input[​](#address "Direct link to address") Registered postal address. #### [`BusinessDataInput.documentNumber`](#document-number) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#document-number "Direct link to document-number") Company tax ID (regional examples: CIF/NIF for Spain, VAT ID for EU). #### [`BusinessDataInput.creationDate`](#creation-date) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#creation-date "Direct link to creation-date") Date the company started activity (ISO 8601). #### [`BusinessDataInput.email`](#email) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#email "Direct link to email") Business contact email. #### [`BusinessDataInput.phone`](#phone) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#phone "Direct link to phone") Business contact phone in E.164 format, e.g. `+34666777888`. #### [`BusinessDataInput.website`](#website) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#website "Direct link to website") Business website URL. #### [`BusinessDataInput.monthlyVolume`](#monthly-volume) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#monthly-volume "Direct link to monthly-volume") Expected monthly transaction volume in EUR. #### [`BusinessDataInput.confirmWebsite`](#confirm-website) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#confirm-website "Direct link to confirm-website") Self-declaration that the website complies with MONEI's requirements. #### [`BusinessDataInput.industry`](#industry) ● [`Industries`](https://docs.monei.com/apis/graphql/types/enums/industries/.md) enum[​](#industry "Direct link to industry") Industry category. #### [`BusinessDataInput.mcc`](#mcc) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#mcc "Direct link to mcc") Merchant Category Code (ISO 18245:2003). #### [`BusinessDataInput.servicesDescription`](#services-description) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#services-description "Direct link to services-description") Description of the products or services provided. #### [`BusinessDataInput.confirmServicesDescription`](#confirm-services-description) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#confirm-services-description "Direct link to confirm-services-description") Self-declaration that the services description matches the website. ### Member Of[​](#member-of "Direct link to Member Of") [`SetupAccountInput`](https://docs.monei.com/apis/graphql/types/inputs/setup-account-input/.md) input --- # CancelPaymentInput Input for `cancelPayment`. Voids an authorization before capture. ``` input CancelPaymentInput { paymentId: ID! cancellationReason: CancellationReason } ``` ### Fields[​](#fields "Direct link to Fields") #### [`CancelPaymentInput.paymentId`](#payment-id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#payment-id "Direct link to payment-id") Payment id to cancel. #### [`CancelPaymentInput.cancellationReason`](#cancellation-reason) ● [`CancellationReason`](https://docs.monei.com/apis/graphql/types/enums/cancellation-reason/.md) enum[​](#cancellation-reason "Direct link to cancellation-reason") The reason for canceling the Payment. ### Member Of[​](#member-of "Direct link to Member Of") [`cancelPayment`](https://docs.monei.com/apis/graphql/operations/mutations/cancel-payment/.md) mutation --- # CancelSubscriptionInput Input for `cancelSubscription`. ``` input CancelSubscriptionInput { cancelAtPeriodEnd: Boolean id: ID! } ``` ### Fields[​](#fields "Direct link to Fields") #### [`CancelSubscriptionInput.cancelAtPeriodEnd`](#cancel-at-period-end) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#cancel-at-period-end "Direct link to cancel-at-period-end") If true, the subscription will be canceled at the end of the current period. #### [`CancelSubscriptionInput.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") Unique identifier for the subscription to cancel. ### Member Of[​](#member-of "Direct link to Member Of") [`cancelSubscription`](https://docs.monei.com/apis/graphql/operations/mutations/cancel-subscription/.md) mutation --- # CapturePaymentInput Input for `capturePayment`. Requires the payment to be in `AUTHORIZED` state. ``` input CapturePaymentInput { paymentId: ID! amount: Int } ``` ### Fields[​](#fields "Direct link to Fields") #### [`CapturePaymentInput.paymentId`](#payment-id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#payment-id "Direct link to payment-id") Payment id to capture. #### [`CapturePaymentInput.amount`](#amount) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#amount "Direct link to amount") The amount to capture, which must be less than or equal to the original amount. Any additional amount will be automatically refunded. Defaults to the authorized amount when omitted. ### Member Of[​](#member-of "Direct link to Member Of") [`capturePayment`](https://docs.monei.com/apis/graphql/operations/mutations/capture-payment/.md) mutation --- # ConnectShopifyShopInput Input for `connectShopifyShop`. Supplied by the dashboard after the MONEI Shopify app completes Shopify OAuth and redirects back with the signed token. ``` input ConnectShopifyShopInput { shop: String! paymentMethod: String! token: String! accountId: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`ConnectShopifyShopInput.shop`](#shop) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#shop "Direct link to shop") Shopify shop domain (e.g. `my-store.myshopify.com`). #### [`ConnectShopifyShopInput.paymentMethod`](#payment-method) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#payment-method "Direct link to payment-method") MONEI Shopify app payment method. One of `card`, `bizum`, `mbway`, `multibanco`, `qr`, `monei`, `onsite`. #### [`ConnectShopifyShopInput.token`](#token) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#token "Direct link to token") Signed redirect token minted by the MONEI Shopify app, binding this `shop` and `paymentMethod`. Mismatched tokens are rejected. #### [`ConnectShopifyShopInput.accountId`](#account-id) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#account-id "Direct link to account-id") Ignored. The account is determined from the caller's authentication. ### Member Of[​](#member-of "Direct link to Member Of") [`connectShopifyShop`](https://docs.monei.com/apis/graphql/operations/mutations/connect-shopify-shop/.md) mutation --- # ContactDetailsInput Contact details input. Mirrors `ContactDetails`. ``` input ContactDetailsInput { email: String name: String company: String phone: String address: AddressInput taxId: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`ContactDetailsInput.email`](#email) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#email "Direct link to email") The customer's email address. #### [`ContactDetailsInput.name`](#name) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#name "Direct link to name") The customer's full name. #### [`ContactDetailsInput.company`](#company) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#company "Direct link to company") Company name. #### [`ContactDetailsInput.phone`](#phone) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#phone "Direct link to phone") The customer's phone number in E.164 format. #### [`ContactDetailsInput.address`](#address) ● [`AddressInput`](https://docs.monei.com/apis/graphql/types/inputs/address-input/.md) input[​](#address "Direct link to address") Postal address. #### [`ContactDetailsInput.taxId`](#tax-id) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#tax-id "Direct link to tax-id") Company tax ID. ### Member Of[​](#member-of "Direct link to Member Of") [`CreatePaymentInput`](https://docs.monei.com/apis/graphql/types/inputs/create-payment-input/.md) input ● [`CreateSubscriptionInput`](https://docs.monei.com/apis/graphql/types/inputs/create-subscription-input/.md) input ● [`UpdateSubscriptionInput`](https://docs.monei.com/apis/graphql/types/inputs/update-subscription-input/.md) input --- # CountryStoreInput Country-to-store routing rule input. Mirrors `CountryStore`. ``` input CountryStoreInput { countryCode: String! storeId: String! } ``` ### Fields[​](#fields "Direct link to Fields") #### [`CountryStoreInput.countryCode`](#country-code) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#country-code "Direct link to country-code") ISO 3166-1 alpha-2 country code, or `DEFAULT` to catch all unmapped countries. #### [`CountryStoreInput.storeId`](#store-id) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#store-id "Direct link to store-id") MONEI store ID that should handle checkouts for this country. ### Member Of[​](#member-of "Direct link to Member Of") [`UpdateShopifyShopSettingsInput`](https://docs.monei.com/apis/graphql/types/inputs/update-shopify-shop-settings-input/.md) input --- # CreateAuthorizedUserInput Input for `createAuthorizedUser`. ``` input CreateAuthorizedUserInput { userEmail: String! accessLevel: AuthorizedUserAccessLevel storeId: ID pointOfSaleId: ID } ``` ### Fields[​](#fields "Direct link to Fields") #### [`CreateAuthorizedUserInput.userEmail`](#user-email) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#user-email "Direct link to user-email") Email of the user to invite. An invitation email is sent if the user is new. #### [`CreateAuthorizedUserInput.accessLevel`](#access-level) ● [`AuthorizedUserAccessLevel`](https://docs.monei.com/apis/graphql/types/enums/authorized-user-access-level/.md) enum[​](#access-level "Direct link to access-level") Permission level to grant. Defaults to `READ_ACCESS`. `ADMIN_ACCESS` is rejected when `storeId` or `pointOfSaleId` is set. #### [`CreateAuthorizedUserInput.storeId`](#store-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#store-id "Direct link to store-id") Restrict the user to a single store. #### [`CreateAuthorizedUserInput.pointOfSaleId`](#point-of-sale-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#point-of-sale-id "Direct link to point-of-sale-id") Restrict the user to a single point of sale. ### Member Of[​](#member-of "Direct link to Member Of") [`createAuthorizedUser`](https://docs.monei.com/apis/graphql/operations/mutations/create-authorized-user/.md) mutation --- # CreateDocumentInput Input for `createDocument`. ``` input CreateDocumentInput { type: DocumentType! name: String note: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`CreateDocumentInput.type`](#type) ● [`DocumentType!`](https://docs.monei.com/apis/graphql/types/enums/document-type/.md) non-null enum[​](#type "Direct link to type") Document category. #### [`CreateDocumentInput.name`](#name) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#name "Direct link to name") Original file name. #### [`CreateDocumentInput.note`](#note) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#note "Direct link to note") Free-form note. ### Member Of[​](#member-of "Direct link to Member Of") [`createDocument`](https://docs.monei.com/apis/graphql/operations/mutations/create-document/.md) mutation --- # CreateExportSftpConfigInput Input for `createExportSftpConfig`. ``` input CreateExportSftpConfigInput { host: String! port: Int! username: String! password: String! path: String! columns: [String!] timezone: String enabled: Boolean } ``` ### Fields[​](#fields "Direct link to Fields") #### [`CreateExportSftpConfigInput.host`](#host) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#host "Direct link to host") SFTP server hostname. #### [`CreateExportSftpConfigInput.port`](#port) ● [`Int!`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) non-null scalar[​](#port "Direct link to port") SFTP server port. #### [`CreateExportSftpConfigInput.username`](#username) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#username "Direct link to username") SFTP username. #### [`CreateExportSftpConfigInput.password`](#password) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#password "Direct link to password") SFTP password. Stored encrypted; never returned. #### [`CreateExportSftpConfigInput.path`](#path) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#path "Direct link to path") Target directory on the SFTP server. #### [`CreateExportSftpConfigInput.columns`](#columns) ● [`[String!]`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) list scalar[​](#columns "Direct link to columns") Columns to include in the CSV. Omit to use the default column set. #### [`CreateExportSftpConfigInput.timezone`](#timezone) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#timezone "Direct link to timezone") IANA timezone for date columns. Defaults to `UTC`. #### [`CreateExportSftpConfigInput.enabled`](#enabled) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#enabled "Direct link to enabled") Whether the scheduled export is active. Defaults to disabled. ### Member Of[​](#member-of "Direct link to Member Of") [`createExportSftpConfig`](https://docs.monei.com/apis/graphql/operations/mutations/create-export-sftp-config/.md) mutation --- # CreateIdSessionInput Input for `createIdSession`. ``` input CreateIdSessionInput { identityId: ID firstName: String lastName: String hasNoPublicActivity: Boolean } ``` ### Fields[​](#fields "Direct link to Fields") #### [`CreateIdSessionInput.identityId`](#identity-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#identity-id "Direct link to identity-id") Identity to verify. Defaults to the account's primary representative when omitted. #### [`CreateIdSessionInput.firstName`](#first-name) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#first-name "Direct link to first-name") Representative's first name (used to seed the verification flow). #### [`CreateIdSessionInput.lastName`](#last-name) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#last-name "Direct link to last-name") Representative's last name. #### [`CreateIdSessionInput.hasNoPublicActivity`](#has-no-public-activity) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#has-no-public-activity "Direct link to has-no-public-activity") Set to `true` to skip PEP/sanctions screening when the representative has no public activity. ### Member Of[​](#member-of "Direct link to Member Of") [`createIdSession`](https://docs.monei.com/apis/graphql/operations/mutations/create-id-session/.md) mutation --- # CreatePaymentInput Input for `createPayment`. ``` input CreatePaymentInput { id: ID amount: Int! orderId: ID storeId: ID pointOfSaleId: ID description: String descriptor: String customer: CustomerInput billingDetails: ContactDetailsInput shippingDetails: ContactDetailsInput currency: Currencies allowedPaymentMethods: [PaymentMethods] transactionType: TransactionTypes completeUrl: String callbackUrl: String cancelUrl: String failUrl: String expireAt: AWSTimestamp metadata: [KeyValueInput!] paymentMethod: PaymentMethodInput paymentToken: String generatePaymentToken: Boolean sequence: SequenceInput subscriptionId: ID sessionId: String autoRecover: Boolean sessionDetails: SessionDetailsInput } ``` ### Fields[​](#fields "Direct link to Fields") #### [`CreatePaymentInput.id`](#id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#id "Direct link to id") Optional client-supplied id. MONEI generates one when omitted. #### [`CreatePaymentInput.amount`](#amount) ● [`Int!`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) non-null scalar[​](#amount "Direct link to amount") Amount intended to be collected by this payment. A positive integer representing how much to charge in the smallest currency unit (e.g., 100 cents to charge 1.00 USD). #### [`CreatePaymentInput.orderId`](#order-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#order-id "Direct link to order-id") An order ID from your system. A unique identifier that can be used to reconcile the payment with your internal system. #### [`CreatePaymentInput.storeId`](#store-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#store-id "Direct link to store-id") A unique identifier of the Store. If specified the payment is attached to this Store. #### [`CreatePaymentInput.pointOfSaleId`](#point-of-sale-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#point-of-sale-id "Direct link to point-of-sale-id") A unique identifier of the Point of Sale. If specified the payment is attached to this Point of Sale. If there is a QR code attached to the same Point of Sale, this payment will be available by scanning the QR code. #### [`CreatePaymentInput.description`](#description) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#description "Direct link to description") An arbitrary string attached to the payment. Often useful for displaying to users. #### [`CreatePaymentInput.descriptor`](#descriptor) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#descriptor "Direct link to descriptor") Statement descriptor shown on the cardholder's bank statement (max 25 chars). #### [`CreatePaymentInput.customer`](#customer) ● [`CustomerInput`](https://docs.monei.com/apis/graphql/types/inputs/customer-input/.md) input[​](#customer "Direct link to customer") Customer identification (email, name, phone). #### [`CreatePaymentInput.billingDetails`](#billing-details) ● [`ContactDetailsInput`](https://docs.monei.com/apis/graphql/types/inputs/contact-details-input/.md) input[​](#billing-details "Direct link to billing-details") Billing information associated with the payment method at the time of the transaction. #### [`CreatePaymentInput.shippingDetails`](#shipping-details) ● [`ContactDetailsInput`](https://docs.monei.com/apis/graphql/types/inputs/contact-details-input/.md) input[​](#shipping-details "Direct link to shipping-details") Shipping information associated with the payment. #### [`CreatePaymentInput.currency`](#currency) ● [`Currencies`](https://docs.monei.com/apis/graphql/types/enums/currencies/.md) enum[​](#currency "Direct link to currency") Three-letter ISO 4217 currency code, in uppercase. Defaults to `EUR`. #### [`CreatePaymentInput.allowedPaymentMethods`](#allowed-payment-methods) ● [`[PaymentMethods]`](https://docs.monei.com/apis/graphql/types/enums/payment-methods/.md) list enum[​](#allowed-payment-methods "Direct link to allowed-payment-methods") An array of allowed payment methods (used in hosted payment page). Must be enabled payment methods. #### [`CreatePaymentInput.transactionType`](#transaction-type) ● [`TransactionTypes`](https://docs.monei.com/apis/graphql/types/enums/transaction-types/.md) enum[​](#transaction-type "Direct link to transaction-type") Controls when the funds will be captured. `SALE` (auth + capture), `AUTH` (auth only). #### [`CreatePaymentInput.completeUrl`](#complete-url) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#complete-url "Direct link to complete-url") The URL the customer will be directed to after transaction completed (successful or failed - except if `failUrl` is provided). #### [`CreatePaymentInput.callbackUrl`](#callback-url) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#callback-url "Direct link to callback-url") The URL to which a payment result should be sent asynchronously. #### [`CreatePaymentInput.cancelUrl`](#cancel-url) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#cancel-url "Direct link to cancel-url") The URL the customer will be directed to if they decide to cancel payment and return to your website (used in hosted payment page). #### [`CreatePaymentInput.failUrl`](#fail-url) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#fail-url "Direct link to fail-url") The URL the customer will be directed to after transaction has failed, instead of `completeUrl` (used in hosted payment page). This allows to provide two different URLs for successful and failed payments. #### [`CreatePaymentInput.expireAt`](#expire-at) ● [`AWSTimestamp`](https://docs.monei.com/apis/graphql/types/scalars/awstimestamp/.md) scalar[​](#expire-at "Direct link to expire-at") Payment expiration time as a unix timestamp (seconds). The payment cannot be paid after this. #### [`CreatePaymentInput.metadata`](#metadata) ● [`[KeyValueInput!]`](https://docs.monei.com/apis/graphql/types/inputs/key-value-input/.md) list input[​](#metadata "Direct link to metadata") Merchant-defined metadata. #### [`CreatePaymentInput.paymentMethod`](#payment-method) ● [`PaymentMethodInput`](https://docs.monei.com/apis/graphql/types/inputs/payment-method-input/.md) input[​](#payment-method "Direct link to payment-method") Polymorphic payment method input. When provided, attempts direct confirmation instead of returning a hosted-page redirect. Provide only the sub-object matching `method`. #### [`CreatePaymentInput.paymentToken`](#payment-token) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#payment-token "Direct link to payment-token") Payment token from a prior tokenization. Routes to the direct-confirm path. Single-use unless `generatePaymentToken: true` was passed when the token was minted. #### [`CreatePaymentInput.generatePaymentToken`](#generate-payment-token) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#generate-payment-token "Direct link to generate-payment-token") Mints a permanent reusable payment token from this payment's payment method. The resulting token is exposed on the resulting `Charge`/`Payment` and can be passed as `paymentToken` on subsequent payments. #### [`CreatePaymentInput.sequence`](#sequence) ● [`SequenceInput`](https://docs.monei.com/apis/graphql/types/inputs/sequence-input/.md) input[​](#sequence "Direct link to sequence") Marks the start of a payment sequence (recurring/installments). Required for the first payment of a sequence; subsequent payments reuse `paymentToken` without `sequence`. #### [`CreatePaymentInput.subscriptionId`](#subscription-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#subscription-id "Direct link to subscription-id") Subscription this payment belongs to. Set automatically when the payment is created by a subscription billing cycle. #### [`CreatePaymentInput.sessionId`](#session-id) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#session-id "Direct link to session-id") Session/checkout reference. When set, the payment is bound to that session and shares its lifecycle. #### [`CreatePaymentInput.autoRecover`](#auto-recover) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#auto-recover "Direct link to auto-recover") When `true`, MONEI automatically retries this payment on transient failures. #### [`CreatePaymentInput.sessionDetails`](#session-details) ● [`SessionDetailsInput`](https://docs.monei.com/apis/graphql/types/inputs/session-details-input/.md) input[​](#session-details "Direct link to session-details") Customer browser/device fingerprint captured at checkout (used for fraud detection and 3DS). ### Member Of[​](#member-of "Direct link to Member Of") [`createPayment`](https://docs.monei.com/apis/graphql/operations/mutations/create-payment/.md) mutation --- # CreatePaymentRuleInput Input for `createPaymentRule`. ``` input CreatePaymentRuleInput { ruleType: PaymentRuleType! conditions: PaymentConditionsInput! action: PaymentActionInput! } ``` ### Fields[​](#fields "Direct link to Fields") #### [`CreatePaymentRuleInput.ruleType`](#rule-type) ● [`PaymentRuleType!`](https://docs.monei.com/apis/graphql/types/enums/payment-rule-type/.md) non-null enum[​](#rule-type "Direct link to rule-type") What the rule controls. #### [`CreatePaymentRuleInput.conditions`](#conditions) ● [`PaymentConditionsInput!`](https://docs.monei.com/apis/graphql/types/inputs/payment-conditions-input/.md) non-null input[​](#conditions "Direct link to conditions") Conditions that must match. #### [`CreatePaymentRuleInput.action`](#action) ● [`PaymentActionInput!`](https://docs.monei.com/apis/graphql/types/inputs/payment-action-input/.md) non-null input[​](#action "Direct link to action") Action to apply on match. ### Member Of[​](#member-of "Direct link to Member Of") [`createPaymentRule`](https://docs.monei.com/apis/graphql/operations/mutations/create-payment-rule/.md) mutation --- # CreatePointOfSaleInput Input for `createPointOfSale`. ``` input CreatePointOfSaleInput { storeId: ID name: String description: String manualAmount: Boolean requireEmail: Boolean requireTaxId: Boolean fixedAmount: Int fixedCurrency: Currencies enabled: Boolean includeQRCode: Boolean qrCodeText: String paymentCallbackUrl: String type: PointOfSaleType! transactionType: TransactionTypes paymentMethods: [PaymentMethods!] deviceId: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`CreatePointOfSaleInput.storeId`](#store-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#store-id "Direct link to store-id") Parent store ID. Omit to attach directly to the account. #### [`CreatePointOfSaleInput.name`](#name) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#name "Direct link to name") Display name. Defaults to ` POS ` when omitted. #### [`CreatePointOfSaleInput.description`](#description) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#description "Direct link to description") Free-form description. #### [`CreatePointOfSaleInput.manualAmount`](#manual-amount) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#manual-amount "Direct link to manual-amount") Allow the operator to enter an arbitrary amount. Mutually exclusive with `fixedAmount`. #### [`CreatePointOfSaleInput.requireEmail`](#require-email) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#require-email "Direct link to require-email") Require the customer to provide an email address. #### [`CreatePointOfSaleInput.requireTaxId`](#require-tax-id) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#require-tax-id "Direct link to require-tax-id") Require the customer to provide a tax ID. #### [`CreatePointOfSaleInput.fixedAmount`](#fixed-amount) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#fixed-amount "Direct link to fixed-amount") Pre-set amount in the smallest currency unit. Used when `manualAmount` is false. #### [`CreatePointOfSaleInput.fixedCurrency`](#fixed-currency) ● [`Currencies`](https://docs.monei.com/apis/graphql/types/enums/currencies/.md) enum[​](#fixed-currency "Direct link to fixed-currency") Currency for `fixedAmount`. ISO 4217. #### [`CreatePointOfSaleInput.enabled`](#enabled) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#enabled "Direct link to enabled") Enabled state. Defaults to `true`. #### [`CreatePointOfSaleInput.includeQRCode`](#include-qrcode) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#include-qrcode "Direct link to include-qrcode") Embed a QR code with the payment link in the confirmation email. #### [`CreatePointOfSaleInput.qrCodeText`](#qr-code-text) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#qr-code-text "Direct link to qr-code-text") Caption rendered next to the QR code in the confirmation email. #### [`CreatePointOfSaleInput.paymentCallbackUrl`](#payment-callback-url) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#payment-callback-url "Direct link to payment-callback-url") Server-to-server HTTP POST URL invoked when a charge succeeds at this POS. #### [`CreatePointOfSaleInput.type`](#type) ● [`PointOfSaleType!`](https://docs.monei.com/apis/graphql/types/enums/point-of-sale-type/.md) non-null enum[​](#type "Direct link to type") POS type. See `PointOfSaleType`. #### [`CreatePointOfSaleInput.transactionType`](#transaction-type) ● [`TransactionTypes`](https://docs.monei.com/apis/graphql/types/enums/transaction-types/.md) enum[​](#transaction-type "Direct link to transaction-type") Default transaction type for charges created at this POS. #### [`CreatePointOfSaleInput.paymentMethods`](#payment-methods) ● [`[PaymentMethods!]`](https://docs.monei.com/apis/graphql/types/enums/payment-methods/.md) list enum[​](#payment-methods "Direct link to payment-methods") Allow-list of payment methods. Null means all methods enabled on the account. #### [`CreatePointOfSaleInput.deviceId`](#device-id) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#device-id "Direct link to device-id") Hardware device identifier. Required when `type` is `MONEI_POD`. ### Member Of[​](#member-of "Direct link to Member Of") [`createPointOfSale`](https://docs.monei.com/apis/graphql/operations/mutations/create-point-of-sale/.md) mutation --- # CreateProviderInput Input for `createProvider`. ``` input CreateProviderInput { processor: Processor! enabled: Boolean acquirer: Acquirer! paymentMethod: PaymentMethods! metadata: [MetadataItemInput!] rules: ProviderRulesInput } ``` ### Fields[​](#fields "Direct link to Fields") #### [`CreateProviderInput.processor`](#processor) ● [`Processor!`](https://docs.monei.com/apis/graphql/types/enums/processor/.md) non-null enum[​](#processor "Direct link to processor") Processor (gateway) the provider routes to. #### [`CreateProviderInput.enabled`](#enabled) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#enabled "Direct link to enabled") Whether the provider is enabled at creation time. When omitted, the first provider on the account is auto-enabled and subsequent ones default to disabled. #### [`CreateProviderInput.acquirer`](#acquirer) ● [`Acquirer!`](https://docs.monei.com/apis/graphql/types/enums/acquirer/.md) non-null enum[​](#acquirer "Direct link to acquirer") Acquiring entity that settles funds for this provider. #### [`CreateProviderInput.paymentMethod`](#payment-method) ● [`PaymentMethods!`](https://docs.monei.com/apis/graphql/types/enums/payment-methods/.md) non-null enum[​](#payment-method "Direct link to payment-method") Payment method this provider handles. #### [`CreateProviderInput.metadata`](#metadata) ● [`[MetadataItemInput!]`](https://docs.monei.com/apis/graphql/types/inputs/metadata-item-input/.md) list input[​](#metadata "Direct link to metadata") Provider-specific configuration values. See `providerConfig` for the expected schema. #### [`CreateProviderInput.rules`](#rules) ● [`ProviderRulesInput`](https://docs.monei.com/apis/graphql/types/inputs/provider-rules-input/.md) input[​](#rules "Direct link to rules") Routing rules controlling when this provider is selected. ### Member Of[​](#member-of "Direct link to Member Of") [`createProvider`](https://docs.monei.com/apis/graphql/operations/mutations/create-provider/.md) mutation --- # CreateStoreInput Input for `createStore`. ``` input CreateStoreInput { name: String address: AddressInput phone: String email: String website: String metadata: [KeyValueInput!] blocked: Boolean } ``` ### Fields[​](#fields "Direct link to Fields") #### [`CreateStoreInput.name`](#name) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#name "Direct link to name") Display name. #### [`CreateStoreInput.address`](#address) ● [`AddressInput`](https://docs.monei.com/apis/graphql/types/inputs/address-input/.md) input[​](#address "Direct link to address") Postal address of the store. #### [`CreateStoreInput.phone`](#phone) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#phone "Direct link to phone") Contact phone in E.164 format, e.g. `+34666777888`. #### [`CreateStoreInput.email`](#email) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#email "Direct link to email") Contact email. #### [`CreateStoreInput.website`](#website) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#website "Direct link to website") Public website URL. #### [`CreateStoreInput.metadata`](#metadata) ● [`[KeyValueInput!]`](https://docs.monei.com/apis/graphql/types/inputs/key-value-input/.md) list input[​](#metadata "Direct link to metadata") Arbitrary key/value metadata. #### [`CreateStoreInput.blocked`](#blocked) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#blocked "Direct link to blocked") Whether the store is blocked. Blocked stores cannot accept payments. ### Member Of[​](#member-of "Direct link to Member Of") [`createStore`](https://docs.monei.com/apis/graphql/operations/mutations/create-store/.md) mutation --- # CreateSubscriptionInput Input for `createSubscription`. ``` input CreateSubscriptionInput { amount: Int! trialAmount: Int currency: Currencies allowedPaymentMethods: [SubscriptionPaymentMethods] description: String descriptor: String customer: CustomerInput billingDetails: ContactDetailsInput shippingDetails: ContactDetailsInput interval: IntervalInput intervalCount: Int trialPeriodDays: Int trialPeriodEnd: AWSTimestamp callbackUrl: String paymentCallbackUrl: String storeId: ID retrySchedule: [RetryScheduleInput!] metadata: [KeyValueInput!] } ``` ### Fields[​](#fields "Direct link to Fields") #### [`CreateSubscriptionInput.amount`](#amount) ● [`Int!`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) non-null scalar[​](#amount "Direct link to amount") A positive integer representing how much to charge in the smallest currency unit (e.g., 100 cents to charge 1.00 USD). #### [`CreateSubscriptionInput.trialAmount`](#trial-amount) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#trial-amount "Direct link to trial-amount") Amount charged during the trial period in minor units. Use `0` for a free trial. #### [`CreateSubscriptionInput.currency`](#currency) ● [`Currencies`](https://docs.monei.com/apis/graphql/types/enums/currencies/.md) enum[​](#currency "Direct link to currency") Three-letter ISO 4217 currency code. #### [`CreateSubscriptionInput.allowedPaymentMethods`](#allowed-payment-methods) ● [`[SubscriptionPaymentMethods]`](https://docs.monei.com/apis/graphql/types/enums/subscription-payment-methods/.md) list enum[​](#allowed-payment-methods "Direct link to allowed-payment-methods") List of payment methods allowed for subscriptions. #### [`CreateSubscriptionInput.description`](#description) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#description "Direct link to description") An arbitrary string attached to the subscription. Often useful for displaying to users. #### [`CreateSubscriptionInput.descriptor`](#descriptor) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#descriptor "Direct link to descriptor") Statement descriptor shown on the customer's bank statement. #### [`CreateSubscriptionInput.customer`](#customer) ● [`CustomerInput`](https://docs.monei.com/apis/graphql/types/inputs/customer-input/.md) input[​](#customer "Direct link to customer") Customer details. #### [`CreateSubscriptionInput.billingDetails`](#billing-details) ● [`ContactDetailsInput`](https://docs.monei.com/apis/graphql/types/inputs/contact-details-input/.md) input[​](#billing-details "Direct link to billing-details") Billing details. #### [`CreateSubscriptionInput.shippingDetails`](#shipping-details) ● [`ContactDetailsInput`](https://docs.monei.com/apis/graphql/types/inputs/contact-details-input/.md) input[​](#shipping-details "Direct link to shipping-details") Shipping details. #### [`CreateSubscriptionInput.interval`](#interval) ● [`IntervalInput`](https://docs.monei.com/apis/graphql/types/enums/interval-input/.md) enum[​](#interval "Direct link to interval") Subscription interval. The `minute` and `hour` intervals are only available in test mode. #### [`CreateSubscriptionInput.intervalCount`](#interval-count) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#interval-count "Direct link to interval-count") Number of intervals between subscription payments. Total period (`interval` × `intervalCount`) cannot exceed one year. #### [`CreateSubscriptionInput.trialPeriodDays`](#trial-period-days) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#trial-period-days "Direct link to trial-period-days") Number of days the trial period lasts. Mutually exclusive with `trialPeriodEnd`. #### [`CreateSubscriptionInput.trialPeriodEnd`](#trial-period-end) ● [`AWSTimestamp`](https://docs.monei.com/apis/graphql/types/scalars/awstimestamp/.md) scalar[​](#trial-period-end "Direct link to trial-period-end") The end date of the trial period. Measured in seconds since the Unix epoch. Mutually exclusive with `trialPeriodDays`. #### [`CreateSubscriptionInput.callbackUrl`](#callback-url) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#callback-url "Direct link to callback-url") The URL will be called each time subscription status changes. You will receive a subscription object in the body of the request. #### [`CreateSubscriptionInput.paymentCallbackUrl`](#payment-callback-url) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#payment-callback-url "Direct link to payment-callback-url") The URL will be called each time subscription creates a new payment. You will receive the payment object in the body of the request. #### [`CreateSubscriptionInput.storeId`](#store-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#store-id "Direct link to store-id") Related store ID. #### [`CreateSubscriptionInput.retrySchedule`](#retry-schedule) ● [`[RetryScheduleInput!]`](https://docs.monei.com/apis/graphql/types/inputs/retry-schedule-input/.md) list input[​](#retry-schedule "Direct link to retry-schedule") Defines a custom schedule for retrying failed subscription payments. Total retry duration must not exceed one billing period. #### [`CreateSubscriptionInput.metadata`](#metadata) ● [`[KeyValueInput!]`](https://docs.monei.com/apis/graphql/types/inputs/key-value-input/.md) list input[​](#metadata "Direct link to metadata") A set of key-value pairs attached to the subscription. ### Member Of[​](#member-of "Direct link to Member Of") [`createSubscription`](https://docs.monei.com/apis/graphql/operations/mutations/create-subscription/.md) mutation --- # CreateWebhookInput Input for `createWebhook`. ``` input CreateWebhookInput { url: String! eventTypes: [WebhookEventType!]! enabled: Boolean } ``` ### Fields[​](#fields "Direct link to Fields") #### [`CreateWebhookInput.url`](#url) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#url "Direct link to url") HTTPS endpoint that will receive events. #### [`CreateWebhookInput.eventTypes`](#event-types) ● [`[WebhookEventType!]!`](https://docs.monei.com/apis/graphql/types/enums/webhook-event-type/.md) non-null enum[​](#event-types "Direct link to event-types") Event types to subscribe to. #### [`CreateWebhookInput.enabled`](#enabled) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#enabled "Direct link to enabled") Whether the webhook should be active immediately. When `true`, the URL is reachability-tested with a `webhook.test` payload before creation. Defaults to `true`. ### Member Of[​](#member-of "Direct link to Member Of") [`createWebhook`](https://docs.monei.com/apis/graphql/operations/mutations/create-webhook/.md) mutation --- # CustomerInput Customer identification input. ``` input CustomerInput { email: String name: String phone: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`CustomerInput.email`](#email) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#email "Direct link to email") The customer's email address. #### [`CustomerInput.name`](#name) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#name "Direct link to name") The customer's full name or business name. #### [`CustomerInput.phone`](#phone) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#phone "Direct link to phone") The customer's phone number in E.164 format. ### Member Of[​](#member-of "Direct link to Member Of") [`CreatePaymentInput`](https://docs.monei.com/apis/graphql/types/inputs/create-payment-input/.md) input ● [`CreateSubscriptionInput`](https://docs.monei.com/apis/graphql/types/inputs/create-subscription-input/.md) input ● [`UpdateSubscriptionInput`](https://docs.monei.com/apis/graphql/types/inputs/update-subscription-input/.md) input --- # GetShopifyShopSettingsInput Input for `getShopifyShopSettings`. Caller's account must own the installation. ``` input GetShopifyShopSettingsInput { shop: String! paymentMethod: String! } ``` ### Fields[​](#fields "Direct link to Fields") #### [`GetShopifyShopSettingsInput.shop`](#shop) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#shop "Direct link to shop") Shopify shop domain. #### [`GetShopifyShopSettingsInput.paymentMethod`](#payment-method) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#payment-method "Direct link to payment-method") MONEI Shopify app payment method. See `ShopifyStore.paymentMethod`. ### Member Of[​](#member-of "Direct link to Member Of") [`getShopifyShopSettings`](https://docs.monei.com/apis/graphql/operations/queries/get-shopify-shop-settings/.md) query --- # IdentityInput Identity payload for the account holder when no separate representative is provided. ``` input IdentityInput { firstName: String lastName: String address: AddressInput email: String phone: String documentNumber: String hasNoPublicActivity: Boolean nationality: String citizenship: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`IdentityInput.firstName`](#first-name) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#first-name "Direct link to first-name") First name. #### [`IdentityInput.lastName`](#last-name) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#last-name "Direct link to last-name") Last name. #### [`IdentityInput.address`](#address) ● [`AddressInput`](https://docs.monei.com/apis/graphql/types/inputs/address-input/.md) input[​](#address "Direct link to address") Postal address. #### [`IdentityInput.email`](#email) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#email "Direct link to email") Email address. #### [`IdentityInput.phone`](#phone) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#phone "Direct link to phone") Phone in E.164 format, e.g. `+34666777888`. #### [`IdentityInput.documentNumber`](#document-number) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#document-number "Direct link to document-number") Identity document number (regional examples: DNI/NIE for Spain). #### [`IdentityInput.hasNoPublicActivity`](#has-no-public-activity) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#has-no-public-activity "Direct link to has-no-public-activity") Self-declaration that the holder is not a Politically Exposed Person. #### [`IdentityInput.nationality`](#nationality) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#nationality "Direct link to nationality") Country of nationality (ISO 3166-1 alpha-2). Country of origin/birth; may differ from `citizenship` for dual citizens or naturalized citizens. #### [`IdentityInput.citizenship`](#citizenship) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#citizenship "Direct link to citizenship") Country of legal citizenship (ISO 3166-1 alpha-2). May differ from `nationality` for dual citizens or naturalized citizens. ### Member Of[​](#member-of "Direct link to Member Of") [`SetupAccountInput`](https://docs.monei.com/apis/graphql/types/inputs/setup-account-input/.md) input --- # KeyValueInput Generic key/value pair input (e.g. for metadata). ``` input KeyValueInput { key: String! value: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`KeyValueInput.key`](#key) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#key "Direct link to key") Key. #### [`KeyValueInput.value`](#value) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#value "Direct link to value") Value. Set to `null` to remove the key. ### Member Of[​](#member-of "Direct link to Member Of") [`ActivateSubscriptionInput`](https://docs.monei.com/apis/graphql/types/inputs/activate-subscription-input/.md) input ● [`CreatePaymentInput`](https://docs.monei.com/apis/graphql/types/inputs/create-payment-input/.md) input ● [`CreateStoreInput`](https://docs.monei.com/apis/graphql/types/inputs/create-store-input/.md) input ● [`CreateSubscriptionInput`](https://docs.monei.com/apis/graphql/types/inputs/create-subscription-input/.md) input ● [`UpdateStoreInput`](https://docs.monei.com/apis/graphql/types/inputs/update-store-input/.md) input ● [`UpdateSubscriptionInput`](https://docs.monei.com/apis/graphql/types/inputs/update-subscription-input/.md) input --- # MetadataItemInput Provider metadata entry input. The value's type is inferred from the matching `MetadataConfigItem` schema for the provider. ``` input MetadataItemInput { key: String! value: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`MetadataItemInput.key`](#key) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#key "Direct link to key") Metadata key. #### [`MetadataItemInput.value`](#value) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#value "Direct link to value") Metadata value. Set to `null` to remove the key. ### Member Of[​](#member-of "Direct link to Member Of") [`CreateProviderInput`](https://docs.monei.com/apis/graphql/types/inputs/create-provider-input/.md) input ● [`UpdateProviderInput`](https://docs.monei.com/apis/graphql/types/inputs/update-provider-input/.md) input --- # PauseSubscriptionInput Input for `pauseSubscription`. ``` input PauseSubscriptionInput { pauseIntervalCount: Int! pauseAtPeriodEnd: Boolean id: ID! } ``` ### Fields[​](#fields "Direct link to Fields") #### [`PauseSubscriptionInput.pauseIntervalCount`](#pause-interval-count) ● [`Int!`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) non-null scalar[​](#pause-interval-count "Direct link to pause-interval-count") Number of intervals when subscription will be paused before it activates again. #### [`PauseSubscriptionInput.pauseAtPeriodEnd`](#pause-at-period-end) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#pause-at-period-end "Direct link to pause-at-period-end") If true, the subscription will be paused at the end of the current period. #### [`PauseSubscriptionInput.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") Unique identifier for the subscription to pause. ### Member Of[​](#member-of "Direct link to Member Of") [`pauseSubscription`](https://docs.monei.com/apis/graphql/operations/mutations/pause-subscription/.md) mutation --- # PaymentActionInput Action input. Mirrors `PaymentAction`. See that type for which fields apply per `type`. ``` input PaymentActionInput { type: String! providerId: ID percentage: Int paymentMethod: String tokenizationMethod: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`PaymentActionInput.type`](#type) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#type "Direct link to type") Action to apply. One of `route_to`, `force_challenge`, `skip_challenge`, `decline`, `hide`, `show`. #### [`PaymentActionInput.providerId`](#provider-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#provider-id "Direct link to provider-id") Provider to route to (when `type` is `route_to`). #### [`PaymentActionInput.percentage`](#percentage) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#percentage "Direct link to percentage") Percentage of matching transactions to route to `providerId`, 1-100 (when `type` is `route_to`). #### [`PaymentActionInput.paymentMethod`](#payment-method) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#payment-method "Direct link to payment-method") Payment method to hide/show (when `type` is `hide` or `show`). #### [`PaymentActionInput.tokenizationMethod`](#tokenization-method) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#tokenization-method "Direct link to tokenization-method") Tokenization method to hide/show (when `type` is `hide` or `show`). ### Member Of[​](#member-of "Direct link to Member Of") [`CreatePaymentRuleInput`](https://docs.monei.com/apis/graphql/types/inputs/create-payment-rule-input/.md) input ● [`UpdatePaymentRuleInput`](https://docs.monei.com/apis/graphql/types/inputs/update-payment-rule-input/.md) input --- # PaymentConditionInput Single condition input. Mirrors `PaymentCondition`. ``` input PaymentConditionInput { id: ID! field: String! operator: String! value: String valueSource: String! } ``` ### Fields[​](#fields "Direct link to Fields") #### [`PaymentConditionInput.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") Condition ID (UUID). Provide a fresh UUID for new conditions; reuse the existing ID to update one in place. #### [`PaymentConditionInput.field`](#field) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#field "Direct link to field") Dot-path of the transaction field to evaluate. #### [`PaymentConditionInput.operator`](#operator) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#operator "Direct link to operator") Comparison operator. See `PaymentCondition.operator` for the supported set. #### [`PaymentConditionInput.value`](#value) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#value "Direct link to value") Value to compare against. For `in` use a comma-separated list. #### [`PaymentConditionInput.valueSource`](#value-source) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#value-source "Direct link to value-source") How `value` is interpreted: `value` (literal) or `field` (path to another transaction field). ### Member Of[​](#member-of "Direct link to Member Of") [`PaymentConditionsInput`](https://docs.monei.com/apis/graphql/types/inputs/payment-conditions-input/.md) input --- # PaymentConditionsInput Conditions input. Mirrors `PaymentConditions`. ``` input PaymentConditionsInput { combinator: CombinatorType! rules: [PaymentConditionInput!]! } ``` ### Fields[​](#fields "Direct link to Fields") #### [`PaymentConditionsInput.combinator`](#combinator) ● [`CombinatorType!`](https://docs.monei.com/apis/graphql/types/enums/combinator-type/.md) non-null enum[​](#combinator "Direct link to combinator") How conditions are combined. #### [`PaymentConditionsInput.rules`](#rules) ● [`[PaymentConditionInput!]!`](https://docs.monei.com/apis/graphql/types/inputs/payment-condition-input/.md) non-null input[​](#rules "Direct link to rules") Conditions in this group. ### Member Of[​](#member-of "Direct link to Member Of") [`CreatePaymentRuleInput`](https://docs.monei.com/apis/graphql/types/inputs/create-payment-rule-input/.md) input ● [`UpdatePaymentRuleInput`](https://docs.monei.com/apis/graphql/types/inputs/update-payment-rule-input/.md) input --- # PaymentMethodBizumInput Details about the Bizum account used for this payment. If provided phone number is valid and registered in Bizum, MONEI will try to confirm the payment directly. ``` input PaymentMethodBizumInput { phoneNumber: String integrationType: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`PaymentMethodBizumInput.phoneNumber`](#phone-number) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#phone-number "Direct link to phone-number") Phone number in E.164 format used to pay with `bizum`. #### [`PaymentMethodBizumInput.integrationType`](#integration-type) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#integration-type "Direct link to integration-type") Integration mode used to capture the Bizum payment (e.g. redirect, embedded). ### Member Of[​](#member-of "Direct link to Member Of") [`PaymentMethodInput`](https://docs.monei.com/apis/graphql/types/inputs/payment-method-input/.md) input --- # PaymentMethodCardInput Details about the card used as payment method at the time of the transaction. ``` input PaymentMethodCardInput { brand: CardBrand country: String type: CardType threeDSecure: Boolean threeDSecureVersion: String last4: String fingerprint: String cardholderName: String cardholderEmail: String bank: String tokenizationMethod: TokenizationMethods } ``` ### Fields[​](#fields "Direct link to Fields") #### [`PaymentMethodCardInput.brand`](#brand) ● [`CardBrand`](https://docs.monei.com/apis/graphql/types/enums/card-brand/.md) enum[​](#brand "Direct link to brand") Card brand. #### [`PaymentMethodCardInput.country`](#country) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#country "Direct link to country") Card issuing country (ISO 3166-1 alpha-2). #### [`PaymentMethodCardInput.type`](#type) ● [`CardType`](https://docs.monei.com/apis/graphql/types/enums/card-type/.md) enum[​](#type "Direct link to type") Card type `debit` or `credit`. #### [`PaymentMethodCardInput.threeDSecure`](#three-dsecure) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#three-dsecure "Direct link to three-dsecure") Whether this transaction used 3D Secure authentication. #### [`PaymentMethodCardInput.threeDSecureVersion`](#three-dsecure-version) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#three-dsecure-version "Direct link to three-dsecure-version") The protocol version of the 3DS challenge. #### [`PaymentMethodCardInput.last4`](#last-4) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#last-4 "Direct link to last-4") The last four digits of the card. #### [`PaymentMethodCardInput.fingerprint`](#fingerprint) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#fingerprint "Direct link to fingerprint") Unique identifier for the card number. Used to detect duplicate payment methods across customers. Not present for tokenized cards. #### [`PaymentMethodCardInput.cardholderName`](#cardholder-name) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#cardholder-name "Direct link to cardholder-name") The name of the cardholder. #### [`PaymentMethodCardInput.cardholderEmail`](#cardholder-email) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#cardholder-email "Direct link to cardholder-email") The email of the cardholder. #### [`PaymentMethodCardInput.bank`](#bank) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#bank "Direct link to bank") Issuing bank. #### [`PaymentMethodCardInput.tokenizationMethod`](#tokenization-method) ● [`TokenizationMethods`](https://docs.monei.com/apis/graphql/types/enums/tokenization-methods/.md) enum[​](#tokenization-method "Direct link to tokenization-method") The digital wallet used to tokenize the card. ### Member Of[​](#member-of "Direct link to Member Of") [`PaymentMethodInput`](https://docs.monei.com/apis/graphql/types/inputs/payment-method-input/.md) input --- # PaymentMethodCardPresentInput Card-present (in-person/terminal) payment method input. ``` input PaymentMethodCardPresentInput { brand: CardBrand country: String type: CardType bin: String last4: String fingerprint: String cardholderName: String cardholderEmail: String verificationMethod: VerificationMethod expiration: Long } ``` ### Fields[​](#fields "Direct link to Fields") #### [`PaymentMethodCardPresentInput.brand`](#brand) ● [`CardBrand`](https://docs.monei.com/apis/graphql/types/enums/card-brand/.md) enum[​](#brand "Direct link to brand") Card network brand. #### [`PaymentMethodCardPresentInput.country`](#country) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#country "Direct link to country") Card issuing country (ISO 3166-1 alpha-2). #### [`PaymentMethodCardPresentInput.type`](#type) ● [`CardType`](https://docs.monei.com/apis/graphql/types/enums/card-type/.md) enum[​](#type "Direct link to type") Funding type (debit/credit). #### [`PaymentMethodCardPresentInput.bin`](#bin) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#bin "Direct link to bin") Bank Identification Number (first 6-8 digits of the PAN). #### [`PaymentMethodCardPresentInput.last4`](#last-4) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#last-4 "Direct link to last-4") Last 4 digits of the card number. #### [`PaymentMethodCardPresentInput.fingerprint`](#fingerprint) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#fingerprint "Direct link to fingerprint") Stable card fingerprint. #### [`PaymentMethodCardPresentInput.cardholderName`](#cardholder-name) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#cardholder-name "Direct link to cardholder-name") Cardholder name read from the card. #### [`PaymentMethodCardPresentInput.cardholderEmail`](#cardholder-email) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#cardholder-email "Direct link to cardholder-email") Cardholder email. #### [`PaymentMethodCardPresentInput.verificationMethod`](#verification-method) ● [`VerificationMethod`](https://docs.monei.com/apis/graphql/types/enums/verification-method/.md) enum[​](#verification-method "Direct link to verification-method") Cardholder verification method used at the terminal. #### [`PaymentMethodCardPresentInput.expiration`](#expiration) ● [`Long`](https://docs.monei.com/apis/graphql/types/scalars/long/.md) scalar[​](#expiration "Direct link to expiration") Card expiration as a unix timestamp. ### Member Of[​](#member-of "Direct link to Member Of") [`PaymentMethodInput`](https://docs.monei.com/apis/graphql/types/inputs/payment-method-input/.md) input --- # PaymentMethodInput Polymorphic payment method input. Provide only the sub-object matching `method`. ``` input PaymentMethodInput { method: PaymentMethods bizum: PaymentMethodBizumInput card: PaymentMethodCardInput cardPresent: PaymentMethodCardPresentInput paypal: PaymentMethodPaypalInput sepa: PaymentMethodSepaInput trustly: PaymentMethodTrustlyInput klarna: PaymentMethodKlarnaInput mbway: PaymentMethodMBWayInput } ``` ### Fields[​](#fields "Direct link to Fields") #### [`PaymentMethodInput.method`](#method) ● [`PaymentMethods`](https://docs.monei.com/apis/graphql/types/enums/payment-methods/.md) enum[​](#method "Direct link to method") Payment method to use. #### [`PaymentMethodInput.bizum`](#bizum) ● [`PaymentMethodBizumInput`](https://docs.monei.com/apis/graphql/types/inputs/payment-method-bizum-input/.md) input[​](#bizum "Direct link to bizum") Bizum details (when `method` is `bizum`). #### [`PaymentMethodInput.card`](#card) ● [`PaymentMethodCardInput`](https://docs.monei.com/apis/graphql/types/inputs/payment-method-card-input/.md) input[​](#card "Direct link to card") Card details (when `method` is `card`). #### [`PaymentMethodInput.cardPresent`](#card-present) ● [`PaymentMethodCardPresentInput`](https://docs.monei.com/apis/graphql/types/inputs/payment-method-card-present-input/.md) input[​](#card-present "Direct link to card-present") Card-present details (when `method` is `cardPresent`). #### [`PaymentMethodInput.paypal`](#paypal) ● [`PaymentMethodPaypalInput`](https://docs.monei.com/apis/graphql/types/inputs/payment-method-paypal-input/.md) input[​](#paypal "Direct link to paypal") PayPal details (when `method` is `paypal`). #### [`PaymentMethodInput.sepa`](#sepa) ● [`PaymentMethodSepaInput`](https://docs.monei.com/apis/graphql/types/inputs/payment-method-sepa-input/.md) input[​](#sepa "Direct link to sepa") SEPA details (when `method` is `sepa`). #### [`PaymentMethodInput.trustly`](#trustly) ● [`PaymentMethodTrustlyInput`](https://docs.monei.com/apis/graphql/types/inputs/payment-method-trustly-input/.md) input[​](#trustly "Direct link to trustly") Trustly details (when `method` is `trustly`). #### [`PaymentMethodInput.klarna`](#klarna) ● [`PaymentMethodKlarnaInput`](https://docs.monei.com/apis/graphql/types/inputs/payment-method-klarna-input/.md) input[​](#klarna "Direct link to klarna") Klarna details (when `method` is `klarna`). #### [`PaymentMethodInput.mbway`](#mbway) ● [`PaymentMethodMBWayInput`](https://docs.monei.com/apis/graphql/types/inputs/payment-method-mbway-input/.md) input[​](#mbway "Direct link to mbway") MB WAY details (when `method` is `mbway`). ### Member Of[​](#member-of "Direct link to Member Of") [`CreatePaymentInput`](https://docs.monei.com/apis/graphql/types/inputs/create-payment-input/.md) input --- # PaymentMethodKlarnaInput Details from Klarna order used as payment method at the time of the transaction. ``` input PaymentMethodKlarnaInput { billingCategory: String authPaymentMethod: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`PaymentMethodKlarnaInput.billingCategory`](#billing-category) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#billing-category "Direct link to billing-category") Klarna billing category (raw value). #### [`PaymentMethodKlarnaInput.authPaymentMethod`](#auth-payment-method) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#auth-payment-method "Direct link to auth-payment-method") Klarna underlying funding source (raw value). ### Member Of[​](#member-of "Direct link to Member Of") [`PaymentMethodInput`](https://docs.monei.com/apis/graphql/types/inputs/payment-method-input/.md) input --- # PaymentMethodMBWayInput Details from MBWay order used as payment method at the time of the transaction. ``` input PaymentMethodMBWayInput { phoneNumber: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`PaymentMethodMBWayInput.phoneNumber`](#phone-number) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#phone-number "Direct link to phone-number") Phone number in E.164 format used to pay with `mbway`. ### Member Of[​](#member-of "Direct link to Member Of") [`PaymentMethodInput`](https://docs.monei.com/apis/graphql/types/inputs/payment-method-input/.md) input --- # PaymentMethodPaypalInput Details from Paypal order used as payment method at the time of the transaction. ``` input PaymentMethodPaypalInput { orderId: ID payerId: ID email: String name: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`PaymentMethodPaypalInput.orderId`](#order-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#order-id "Direct link to order-id") The Paypal's order ID. #### [`PaymentMethodPaypalInput.payerId`](#payer-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#payer-id "Direct link to payer-id") The Paypal's payer ID. #### [`PaymentMethodPaypalInput.email`](#email) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#email "Direct link to email") The Paypal's payer email. #### [`PaymentMethodPaypalInput.name`](#name) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#name "Direct link to name") The Paypal's payer name. ### Member Of[​](#member-of "Direct link to Member Of") [`PaymentMethodInput`](https://docs.monei.com/apis/graphql/types/inputs/payment-method-input/.md) input --- # PaymentMethodSepaInput Details from SEPA order used as payment method at the time of the transaction. ``` input PaymentMethodSepaInput { accountholderAddress: AddressInput accountholderEmail: String accountholderName: String countryCode: String bankAddress: String bankCode: String bankName: String bic: String last4: String fingerprint: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`PaymentMethodSepaInput.accountholderAddress`](#accountholder-address) ● [`AddressInput`](https://docs.monei.com/apis/graphql/types/inputs/address-input/.md) input[​](#accountholder-address "Direct link to accountholder-address") The address of the account holder. #### [`PaymentMethodSepaInput.accountholderEmail`](#accountholder-email) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#accountholder-email "Direct link to accountholder-email") The email of the account holder. #### [`PaymentMethodSepaInput.accountholderName`](#accountholder-name) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#accountholder-name "Direct link to accountholder-name") The name of the account holder. #### [`PaymentMethodSepaInput.countryCode`](#country-code) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#country-code "Direct link to country-code") The country code of the account holder. #### [`PaymentMethodSepaInput.bankAddress`](#bank-address) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#bank-address "Direct link to bank-address") The address of the bank. #### [`PaymentMethodSepaInput.bankCode`](#bank-code) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#bank-code "Direct link to bank-code") The code of the bank. #### [`PaymentMethodSepaInput.bankName`](#bank-name) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#bank-name "Direct link to bank-name") The name of the bank. #### [`PaymentMethodSepaInput.bic`](#bic) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#bic "Direct link to bic") The BIC of the bank. #### [`PaymentMethodSepaInput.last4`](#last-4) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#last-4 "Direct link to last-4") The last 4 digits of the IBAN. #### [`PaymentMethodSepaInput.fingerprint`](#fingerprint) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#fingerprint "Direct link to fingerprint") Unique identifier for the IBAN. Used to detect duplicate payment methods across customers. ### Member Of[​](#member-of "Direct link to Member Of") [`PaymentMethodInput`](https://docs.monei.com/apis/graphql/types/inputs/payment-method-input/.md) input --- # PaymentMethodTrustlyInput Details from Trustly order used as payment method at the time of the transaction. ``` input PaymentMethodTrustlyInput { customerId: ID } ``` ### Fields[​](#fields "Direct link to Fields") #### [`PaymentMethodTrustlyInput.customerId`](#customer-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#customer-id "Direct link to customer-id") The Trustly's customer ID. ### Member Of[​](#member-of "Direct link to Member Of") [`PaymentMethodInput`](https://docs.monei.com/apis/graphql/types/inputs/payment-method-input/.md) input --- # ProviderRulesInput Routing rules input. Mirrors `ProviderRules`. ``` input ProviderRulesInput { minAmount: Int maxAmount: Int shopNameLike: String descriptionLike: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`ProviderRulesInput.minAmount`](#min-amount) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#min-amount "Direct link to min-amount") Minimum payment amount in the smallest currency unit. #### [`ProviderRulesInput.maxAmount`](#max-amount) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#max-amount "Direct link to max-amount") Maximum payment amount in the smallest currency unit. #### [`ProviderRulesInput.shopNameLike`](#shop-name-like) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#shop-name-like "Direct link to shop-name-like") Regular expression matched against the shop name. #### [`ProviderRulesInput.descriptionLike`](#description-like) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#description-like "Direct link to description-like") Regular expression matched against the payment description. ### Member Of[​](#member-of "Direct link to Member Of") [`CreateProviderInput`](https://docs.monei.com/apis/graphql/types/inputs/create-provider-input/.md) input ● [`UpdateProviderInput`](https://docs.monei.com/apis/graphql/types/inputs/update-provider-input/.md) input --- # RefundPaymentInput Input for `refundPayment`. ``` input RefundPaymentInput { paymentId: ID! amount: Int! refundReason: RefundReason } ``` ### Fields[​](#fields "Direct link to Fields") #### [`RefundPaymentInput.paymentId`](#payment-id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#payment-id "Direct link to payment-id") Payment id to refund. #### [`RefundPaymentInput.amount`](#amount) ● [`Int!`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) non-null scalar[​](#amount "Direct link to amount") The amount to refund, which must be less than or equal to the original amount. #### [`RefundPaymentInput.refundReason`](#refund-reason) ● [`RefundReason`](https://docs.monei.com/apis/graphql/types/enums/refund-reason/.md) enum[​](#refund-reason "Direct link to refund-reason") The reason for refunding the Payment. ### Member Of[​](#member-of "Direct link to Member Of") [`refundPayment`](https://docs.monei.com/apis/graphql/operations/mutations/refund-payment/.md) mutation --- # RegisterApplePayDomainInput Input for `registerApplePayDomain`. ``` input RegisterApplePayDomainInput { domainName: String! } ``` ### Fields[​](#fields "Direct link to Fields") #### [`RegisterApplePayDomainInput.domainName`](#domain-name) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#domain-name "Direct link to domain-name") The domain name to register for Apple Pay (e.g. `example.com`). The domain association file must be hosted at `https:///.well-known/apple-developer-merchantid-domain-association` over HTTPS with a valid SSL certificate before calling this mutation. ### Member Of[​](#member-of "Direct link to Member Of") [`registerApplePayDomain`](https://docs.monei.com/apis/graphql/operations/mutations/register-apple-pay-domain/.md) mutation --- # RegisterCodeInput Input for `registerCode`. ``` input RegisterCodeInput { codeId: ID pointOfSaleId: ID } ``` ### Fields[​](#fields "Direct link to Fields") #### [`RegisterCodeInput.codeId`](#code-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#code-id "Direct link to code-id") Pre-allocated code ID to claim (e.g. printed on physical media). Omit to auto-generate. #### [`RegisterCodeInput.pointOfSaleId`](#point-of-sale-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#point-of-sale-id "Direct link to point-of-sale-id") Point of Sale to attach the code to. If omitted: when the account has exactly 1 POS, that POS is used; when it has 0 POS and ≤1 store, a default store (if missing) and POS are auto-created; when it has >1 POS, or 0 POS and >1 store, `pointOfSaleId` is required and the call is rejected with `BadRequest`. ### Member Of[​](#member-of "Direct link to Member Of") [`registerCode`](https://docs.monei.com/apis/graphql/operations/mutations/register-code/.md) mutation --- # RepresentativeInput Legal representative payload submitted during KYC. ``` input RepresentativeInput { firstName: String lastName: String address: AddressInput email: String phone: String documentNumber: String stocksPercentage: Float hasNoPublicActivity: Boolean nationality: String citizenship: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`RepresentativeInput.firstName`](#first-name) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#first-name "Direct link to first-name") First name. #### [`RepresentativeInput.lastName`](#last-name) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#last-name "Direct link to last-name") Last name. #### [`RepresentativeInput.address`](#address) ● [`AddressInput`](https://docs.monei.com/apis/graphql/types/inputs/address-input/.md) input[​](#address "Direct link to address") Postal address. #### [`RepresentativeInput.email`](#email) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#email "Direct link to email") Email address. #### [`RepresentativeInput.phone`](#phone) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#phone "Direct link to phone") Phone in E.164 format, e.g. `+34666777888`. #### [`RepresentativeInput.documentNumber`](#document-number) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#document-number "Direct link to document-number") Identity document number (regional examples: DNI/NIE for Spain). #### [`RepresentativeInput.stocksPercentage`](#stocks-percentage) ● [`Float`](https://docs.monei.com/apis/graphql/types/scalars/float/.md) scalar[​](#stocks-percentage "Direct link to stocks-percentage") Ownership percentage (`100` for individual or freelancer). #### [`RepresentativeInput.hasNoPublicActivity`](#has-no-public-activity) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#has-no-public-activity "Direct link to has-no-public-activity") Self-declaration that the representative is not a Politically Exposed Person. #### [`RepresentativeInput.nationality`](#nationality) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#nationality "Direct link to nationality") Country of nationality (ISO 3166-1 alpha-2). Country of origin/birth; may differ from `citizenship` for dual citizens or naturalized citizens. #### [`RepresentativeInput.citizenship`](#citizenship) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#citizenship "Direct link to citizenship") Country of legal citizenship (ISO 3166-1 alpha-2). May differ from `nationality` for dual citizens or naturalized citizens. ### Member Of[​](#member-of "Direct link to Member Of") [`SetupAccountInput`](https://docs.monei.com/apis/graphql/types/inputs/setup-account-input/.md) input --- # ResumeSubscriptionInput Input for `resumeSubscription`. ``` input ResumeSubscriptionInput { id: ID! } ``` ### Fields[​](#fields "Direct link to Fields") #### [`ResumeSubscriptionInput.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") Unique identifier for the subscription to resume. ### Member Of[​](#member-of "Direct link to Member Of") [`resumeSubscription`](https://docs.monei.com/apis/graphql/operations/mutations/resume-subscription/.md) mutation --- # RetryScheduleInput Single retry-schedule entry. Specifies how long to wait before attempting the next payment retry. ``` input RetryScheduleInput { interval: RetryIntervalInput! intervalCount: Int! } ``` ### Fields[​](#fields "Direct link to Fields") #### [`RetryScheduleInput.interval`](#interval) ● [`RetryIntervalInput!`](https://docs.monei.com/apis/graphql/types/enums/retry-interval-input/.md) non-null enum[​](#interval "Direct link to interval") The unit of time to wait before the retry attempt. #### [`RetryScheduleInput.intervalCount`](#interval-count) ● [`Int!`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) non-null scalar[​](#interval-count "Direct link to interval-count") The number of intervals to wait before the retry attempt. ### Member Of[​](#member-of "Direct link to Member Of") [`CreateSubscriptionInput`](https://docs.monei.com/apis/graphql/types/inputs/create-subscription-input/.md) input ● [`UpdateSubscriptionInput`](https://docs.monei.com/apis/graphql/types/inputs/update-subscription-input/.md) input --- # SearchableAccountInvoiceFilterInput Filter for `accountInvoices`. Currently only `createdAt` is supported. ``` input SearchableAccountInvoiceFilterInput { createdAt: SearchableIntFilterInput } ``` ### Fields[​](#fields "Direct link to Fields") #### [`SearchableAccountInvoiceFilterInput.createdAt`](#created-at) ● [`SearchableIntFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-int-filter-input/.md) input[​](#created-at "Direct link to created-at") Filter by issue date (unix timestamp, seconds). Use `range: [from, to]` for date filtering. ### Member Of[​](#member-of "Direct link to Member Of") [`accountInvoices`](https://docs.monei.com/apis/graphql/operations/queries/account-invoices/.md) query --- # SearchableAccountSettlementFilterInput Filter for `accountSettlements`. ``` input SearchableAccountSettlementFilterInput { createdAt: SearchableIntFilterInput storeId: SearchableStringFilterInput and: [SearchableAccountSettlementFilterInput] or: [SearchableAccountSettlementFilterInput] not: SearchableAccountSettlementFilterInput } ``` ### Fields[​](#fields "Direct link to Fields") #### [`SearchableAccountSettlementFilterInput.createdAt`](#created-at) ● [`SearchableIntFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-int-filter-input/.md) input[​](#created-at "Direct link to created-at") Filter by `createdAt` (statement date of the first transaction aggregated into the settlement, unix seconds). Use `range: [from, to]` for date filtering. #### [`SearchableAccountSettlementFilterInput.storeId`](#store-id) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#store-id "Direct link to store-id") Filter by store ID. #### [`SearchableAccountSettlementFilterInput.and`](#and) ● [`[SearchableAccountSettlementFilterInput]`](https://docs.monei.com/apis/graphql/types/inputs/searchable-account-settlement-filter-input/.md) list input[​](#and "Direct link to and") All sub-filters must match. #### [`SearchableAccountSettlementFilterInput.or`](#or) ● [`[SearchableAccountSettlementFilterInput]`](https://docs.monei.com/apis/graphql/types/inputs/searchable-account-settlement-filter-input/.md) list input[​](#or "Direct link to or") Any sub-filter must match. #### [`SearchableAccountSettlementFilterInput.not`](#not) ● [`SearchableAccountSettlementFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-account-settlement-filter-input/.md) input[​](#not "Direct link to not") Sub-filter must not match. ### Member Of[​](#member-of "Direct link to Member Of") [`accountSettlements`](https://docs.monei.com/apis/graphql/operations/queries/account-settlements/.md) query ● [`SearchableAccountSettlementFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-account-settlement-filter-input/.md) input --- # SearchableBooleanFilterInput Standard AppSync filter on a `Boolean` field. Use `eq` for true/false; `ne` is rarely needed. ``` input SearchableBooleanFilterInput { eq: Boolean ne: Boolean } ``` ### Fields[​](#fields "Direct link to Fields") #### [`SearchableBooleanFilterInput.eq`](#eq) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#eq "Direct link to eq") Equal to. #### [`SearchableBooleanFilterInput.ne`](#ne) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#ne "Direct link to ne") Not equal to. ### Member Of[​](#member-of "Direct link to Member Of") [`SearchableChargeFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-charge-filter-input/.md) input ● [`SearchableEventFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-event-filter-input/.md) input ● [`SearchableSubscriptionFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-subscription-filter-input/.md) input --- # SearchableChargeFilterInput Filter for `charges`. Each field is an OpenSearch-style filter; combine fields with `and` / `or` / `not`. ``` input SearchableChargeFilterInput { id: SearchableIDFilterInput checkoutId: SearchableIDFilterInput providerInternalId: SearchableStringFilterInput providerReferenceId: SearchableStringFilterInput createdAt: SearchableIntFilterInput updatedAt: SearchableIntFilterInput amount: SearchableIntFilterInput authorizationCode: SearchableStringFilterInput currency: SearchableStringFilterInput description: SearchableStringFilterInput descriptor: SearchableStringFilterInput orderId: SearchableStringFilterInput storeId: SearchableStringFilterInput pointOfSaleId: SearchableStringFilterInput sequenceId: SearchableStringFilterInput subscriptionId: SearchableStringFilterInput refundedAmount: SearchableIntFilterInput status: SearchableStringFilterInput statusCode: SearchableStringFilterInput statusMessage: SearchableStringFilterInput customerEmail: SearchableStringFilterInput customerName: SearchableStringFilterInput customerPhone: SearchableStringFilterInput paymentMethodMethod: SearchableStringFilterInput paymentMethodCardBrand: SearchableStringFilterInput paymentMethodCardLast4: SearchableStringFilterInput paymentMethodCardType: SearchableStringFilterInput paymentMethodCardThreeDSecure: SearchableBooleanFilterInput paymentMethodCardThreeDSecureVersion: SearchableStringFilterInput paymentMethodCardThreeDSecureFlow: SearchableStringFilterInput paymentMethodCardTokenizationMethod: SearchableStringFilterInput paymentMethodCardFingerprint: SearchableStringFilterInput shopCountry: SearchableStringFilterInput shopName: SearchableStringFilterInput sessionIp: SearchableStringFilterInput sessionFingerprint: SearchableStringFilterInput sessionCountry: SearchableStringFilterInput traceDetailsSource: SearchableStringFilterInput fraudDetectorScore: SearchableIntFilterInput and: [SearchableChargeFilterInput] or: [SearchableChargeFilterInput] not: SearchableChargeFilterInput } ``` ### Fields[​](#fields "Direct link to Fields") #### [`SearchableChargeFilterInput.id`](#id) ● [`SearchableIDFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-idfilter-input/.md) input[​](#id "Direct link to id") Filter by charge id. #### [`SearchableChargeFilterInput.checkoutId`](#checkout-id) ● [`SearchableIDFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-idfilter-input/.md) input[​](#checkout-id "Direct link to checkout-id") Filter by checkout/operation id. #### [`SearchableChargeFilterInput.providerInternalId`](#provider-internal-id) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#provider-internal-id "Direct link to provider-internal-id") Filter by provider-side transaction id. #### [`SearchableChargeFilterInput.providerReferenceId`](#provider-reference-id) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#provider-reference-id "Direct link to provider-reference-id") Filter by provider-side reference id. #### [`SearchableChargeFilterInput.createdAt`](#created-at) ● [`SearchableIntFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-int-filter-input/.md) input[​](#created-at "Direct link to created-at") Filter by creation unix timestamp (seconds). `range` = two values. #### [`SearchableChargeFilterInput.updatedAt`](#updated-at) ● [`SearchableIntFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-int-filter-input/.md) input[​](#updated-at "Direct link to updated-at") Filter by last-update unix timestamp (seconds). `range` = two values. #### [`SearchableChargeFilterInput.amount`](#amount) ● [`SearchableIntFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-int-filter-input/.md) input[​](#amount "Direct link to amount") Filter by amount in the smallest currency unit. `range` = two values. #### [`SearchableChargeFilterInput.authorizationCode`](#authorization-code) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#authorization-code "Direct link to authorization-code") Filter by acquirer authorization code. #### [`SearchableChargeFilterInput.currency`](#currency) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#currency "Direct link to currency") Filter by ISO 4217 currency code. #### [`SearchableChargeFilterInput.description`](#description) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#description "Direct link to description") Filter by description. #### [`SearchableChargeFilterInput.descriptor`](#descriptor) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#descriptor "Direct link to descriptor") Filter by statement descriptor. #### [`SearchableChargeFilterInput.orderId`](#order-id) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#order-id "Direct link to order-id") Filter by merchant order id. #### [`SearchableChargeFilterInput.storeId`](#store-id) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#store-id "Direct link to store-id") Filter by store id. #### [`SearchableChargeFilterInput.pointOfSaleId`](#point-of-sale-id) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#point-of-sale-id "Direct link to point-of-sale-id") Filter by Point of Sale id. #### [`SearchableChargeFilterInput.sequenceId`](#sequence-id) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#sequence-id "Direct link to sequence-id") Filter by recurring sequence id. #### [`SearchableChargeFilterInput.subscriptionId`](#subscription-id) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#subscription-id "Direct link to subscription-id") Filter by subscription id. #### [`SearchableChargeFilterInput.refundedAmount`](#refunded-amount) ● [`SearchableIntFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-int-filter-input/.md) input[​](#refunded-amount "Direct link to refunded-amount") Filter by cumulative refunded amount. `range` = two values. #### [`SearchableChargeFilterInput.status`](#status) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#status "Direct link to status") Filter by `ChargeStatus` value. #### [`SearchableChargeFilterInput.statusCode`](#status-code) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#status-code "Direct link to status-code") Filter by status code. #### [`SearchableChargeFilterInput.statusMessage`](#status-message) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#status-message "Direct link to status-message") Filter by status message. #### [`SearchableChargeFilterInput.customerEmail`](#customer-email) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#customer-email "Direct link to customer-email") Filter by customer email. #### [`SearchableChargeFilterInput.customerName`](#customer-name) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#customer-name "Direct link to customer-name") Filter by customer name. #### [`SearchableChargeFilterInput.customerPhone`](#customer-phone) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#customer-phone "Direct link to customer-phone") Filter by customer phone. #### [`SearchableChargeFilterInput.paymentMethodMethod`](#payment-method-method) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#payment-method-method "Direct link to payment-method-method") Filter by `PaymentMethods` value. #### [`SearchableChargeFilterInput.paymentMethodCardBrand`](#payment-method-card-brand) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#payment-method-card-brand "Direct link to payment-method-card-brand") Filter by card brand. #### [`SearchableChargeFilterInput.paymentMethodCardLast4`](#payment-method-card-last-4) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#payment-method-card-last-4 "Direct link to payment-method-card-last-4") Filter by card last 4 digits. #### [`SearchableChargeFilterInput.paymentMethodCardType`](#payment-method-card-type) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#payment-method-card-type "Direct link to payment-method-card-type") Filter by card funding type (`debit`/`credit`). #### [`SearchableChargeFilterInput.paymentMethodCardThreeDSecure`](#payment-method-card-three-dsecure) ● [`SearchableBooleanFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-boolean-filter-input/.md) input[​](#payment-method-card-three-dsecure "Direct link to payment-method-card-three-dsecure") Filter by whether 3DS authentication ran. #### [`SearchableChargeFilterInput.paymentMethodCardThreeDSecureVersion`](#payment-method-card-three-dsecure-version) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#payment-method-card-three-dsecure-version "Direct link to payment-method-card-three-dsecure-version") Filter by 3DS protocol version (e.g. `2.2.0`). #### [`SearchableChargeFilterInput.paymentMethodCardThreeDSecureFlow`](#payment-method-card-three-dsecure-flow) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#payment-method-card-three-dsecure-flow "Direct link to payment-method-card-three-dsecure-flow") Filter by `ThreeDSecureFlow` value. #### [`SearchableChargeFilterInput.paymentMethodCardTokenizationMethod`](#payment-method-card-tokenization-method) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#payment-method-card-tokenization-method "Direct link to payment-method-card-tokenization-method") Filter by network token wallet (`googlePay`/`applePay`/`clickToPay`). #### [`SearchableChargeFilterInput.paymentMethodCardFingerprint`](#payment-method-card-fingerprint) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#payment-method-card-fingerprint "Direct link to payment-method-card-fingerprint") Filter by card fingerprint. Matches online and in-person card payments. #### [`SearchableChargeFilterInput.shopCountry`](#shop-country) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#shop-country "Direct link to shop-country") Filter by shop country (ISO 3166-1 alpha-2). #### [`SearchableChargeFilterInput.shopName`](#shop-name) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#shop-name "Direct link to shop-name") Filter by shop name. #### [`SearchableChargeFilterInput.sessionIp`](#session-ip) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#session-ip "Direct link to session-ip") Filter by checkout session IP. #### [`SearchableChargeFilterInput.sessionFingerprint`](#session-fingerprint) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#session-fingerprint "Direct link to session-fingerprint") Filter by checkout session device fingerprint. #### [`SearchableChargeFilterInput.sessionCountry`](#session-country) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#session-country "Direct link to session-country") Filter by checkout session country (geolocated from IP, ISO 3166-1 alpha-2). #### [`SearchableChargeFilterInput.traceDetailsSource`](#trace-details-source) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#trace-details-source "Direct link to trace-details-source") Filter by integration source recorded on dashboard actions (e.g. `dashboard`, `api`). #### [`SearchableChargeFilterInput.fraudDetectorScore`](#fraud-detector-score) ● [`SearchableIntFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-int-filter-input/.md) input[​](#fraud-detector-score "Direct link to fraud-detector-score") Filter by fraud detector score (`0`-`1000`). `range` = two values. #### [`SearchableChargeFilterInput.and`](#and) ● [`[SearchableChargeFilterInput]`](https://docs.monei.com/apis/graphql/types/inputs/searchable-charge-filter-input/.md) list input[​](#and "Direct link to and") AND combinator. #### [`SearchableChargeFilterInput.or`](#or) ● [`[SearchableChargeFilterInput]`](https://docs.monei.com/apis/graphql/types/inputs/searchable-charge-filter-input/.md) list input[​](#or "Direct link to or") OR combinator. #### [`SearchableChargeFilterInput.not`](#not) ● [`SearchableChargeFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-charge-filter-input/.md) input[​](#not "Direct link to not") NOT combinator. ### Member Of[​](#member-of "Direct link to Member Of") [`charges`](https://docs.monei.com/apis/graphql/operations/queries/charges/.md) query ● [`exportCharges`](https://docs.monei.com/apis/graphql/operations/mutations/export-charges/.md) mutation ● [`SearchableChargeFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-charge-filter-input/.md) input ● [`startExportCharges`](https://docs.monei.com/apis/graphql/operations/mutations/start-export-charges/.md) mutation --- # SearchableEventFilterInput Filter for `events`. Each field is an OpenSearch-style filter; combine fields with `and` / `or` / `not`. ``` input SearchableEventFilterInput { id: SearchableIDFilterInput objectId: SearchableIDFilterInput type: SearchableStringFilterInput createdAt: SearchableIntFilterInput checkoutId: SearchableIDFilterInput providerInternalId: SearchableStringFilterInput providerReferenceId: SearchableStringFilterInput amount: SearchableIntFilterInput authorizationCode: SearchableStringFilterInput currency: SearchableStringFilterInput description: SearchableStringFilterInput descriptor: SearchableStringFilterInput orderId: SearchableStringFilterInput storeId: SearchableStringFilterInput pointOfSaleId: SearchableStringFilterInput sequenceId: SearchableStringFilterInput subscriptionId: SearchableStringFilterInput refundedAmount: SearchableIntFilterInput status: SearchableStringFilterInput statusCode: SearchableStringFilterInput statusMessage: SearchableStringFilterInput customerEmail: SearchableStringFilterInput customerPhone: SearchableStringFilterInput customerName: SearchableStringFilterInput paymentMethodMethod: SearchableStringFilterInput paymentMethodCardBrand: SearchableStringFilterInput paymentMethodCardLast4: SearchableStringFilterInput paymentMethodCardType: SearchableStringFilterInput paymentMethodCardThreeDSecure: SearchableBooleanFilterInput paymentMethodCardThreeDSecureVersion: SearchableStringFilterInput paymentMethodCardTokenizationMethod: SearchableStringFilterInput paymentMethodCardFingerprint: SearchableStringFilterInput shopCountry: SearchableStringFilterInput shopName: SearchableStringFilterInput sessionIp: SearchableStringFilterInput sessionFingerprint: SearchableStringFilterInput sessionCountry: SearchableStringFilterInput fraudDetectorScore: SearchableIntFilterInput and: [SearchableEventFilterInput] or: [SearchableEventFilterInput] not: SearchableEventFilterInput } ``` ### Fields[​](#fields "Direct link to Fields") #### [`SearchableEventFilterInput.id`](#id) ● [`SearchableIDFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-idfilter-input/.md) input[​](#id "Direct link to id") Filter by event id. #### [`SearchableEventFilterInput.objectId`](#object-id) ● [`SearchableIDFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-idfilter-input/.md) input[​](#object-id "Direct link to object-id") Filter by underlying charge id. #### [`SearchableEventFilterInput.type`](#type) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#type "Direct link to type") Filter by event type (e.g. `payment.succeeded`). #### [`SearchableEventFilterInput.createdAt`](#created-at) ● [`SearchableIntFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-int-filter-input/.md) input[​](#created-at "Direct link to created-at") Filter by event creation unix timestamp (seconds). `range` = two values. #### [`SearchableEventFilterInput.checkoutId`](#checkout-id) ● [`SearchableIDFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-idfilter-input/.md) input[​](#checkout-id "Direct link to checkout-id") Filter by checkout/operation id. #### [`SearchableEventFilterInput.providerInternalId`](#provider-internal-id) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#provider-internal-id "Direct link to provider-internal-id") Filter by provider-side transaction id. #### [`SearchableEventFilterInput.providerReferenceId`](#provider-reference-id) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#provider-reference-id "Direct link to provider-reference-id") Filter by provider-side reference id. #### [`SearchableEventFilterInput.amount`](#amount) ● [`SearchableIntFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-int-filter-input/.md) input[​](#amount "Direct link to amount") Filter by amount in the smallest currency unit. `range` = two values. #### [`SearchableEventFilterInput.authorizationCode`](#authorization-code) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#authorization-code "Direct link to authorization-code") Filter by acquirer authorization code. #### [`SearchableEventFilterInput.currency`](#currency) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#currency "Direct link to currency") Filter by ISO 4217 currency code. #### [`SearchableEventFilterInput.description`](#description) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#description "Direct link to description") Filter by description. #### [`SearchableEventFilterInput.descriptor`](#descriptor) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#descriptor "Direct link to descriptor") Filter by statement descriptor. #### [`SearchableEventFilterInput.orderId`](#order-id) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#order-id "Direct link to order-id") Filter by merchant order id. #### [`SearchableEventFilterInput.storeId`](#store-id) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#store-id "Direct link to store-id") Filter by store id. #### [`SearchableEventFilterInput.pointOfSaleId`](#point-of-sale-id) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#point-of-sale-id "Direct link to point-of-sale-id") Filter by Point of Sale id. #### [`SearchableEventFilterInput.sequenceId`](#sequence-id) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#sequence-id "Direct link to sequence-id") Filter by recurring sequence id. #### [`SearchableEventFilterInput.subscriptionId`](#subscription-id) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#subscription-id "Direct link to subscription-id") Filter by subscription id. #### [`SearchableEventFilterInput.refundedAmount`](#refunded-amount) ● [`SearchableIntFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-int-filter-input/.md) input[​](#refunded-amount "Direct link to refunded-amount") Filter by cumulative refunded amount. `range` = two values. #### [`SearchableEventFilterInput.status`](#status) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#status "Direct link to status") Filter by `ChargeStatus` value. #### [`SearchableEventFilterInput.statusCode`](#status-code) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#status-code "Direct link to status-code") Filter by status code. #### [`SearchableEventFilterInput.statusMessage`](#status-message) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#status-message "Direct link to status-message") Filter by status message. #### [`SearchableEventFilterInput.customerEmail`](#customer-email) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#customer-email "Direct link to customer-email") Filter by customer email. #### [`SearchableEventFilterInput.customerPhone`](#customer-phone) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#customer-phone "Direct link to customer-phone") Filter by customer phone. #### [`SearchableEventFilterInput.customerName`](#customer-name) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#customer-name "Direct link to customer-name") Filter by customer name. #### [`SearchableEventFilterInput.paymentMethodMethod`](#payment-method-method) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#payment-method-method "Direct link to payment-method-method") Filter by `PaymentMethods` value. #### [`SearchableEventFilterInput.paymentMethodCardBrand`](#payment-method-card-brand) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#payment-method-card-brand "Direct link to payment-method-card-brand") Filter by card brand. #### [`SearchableEventFilterInput.paymentMethodCardLast4`](#payment-method-card-last-4) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#payment-method-card-last-4 "Direct link to payment-method-card-last-4") Filter by card last 4 digits. #### [`SearchableEventFilterInput.paymentMethodCardType`](#payment-method-card-type) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#payment-method-card-type "Direct link to payment-method-card-type") Filter by card funding type (`debit`/`credit`). #### [`SearchableEventFilterInput.paymentMethodCardThreeDSecure`](#payment-method-card-three-dsecure) ● [`SearchableBooleanFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-boolean-filter-input/.md) input[​](#payment-method-card-three-dsecure "Direct link to payment-method-card-three-dsecure") Filter by whether 3DS authentication ran. #### [`SearchableEventFilterInput.paymentMethodCardThreeDSecureVersion`](#payment-method-card-three-dsecure-version) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#payment-method-card-three-dsecure-version "Direct link to payment-method-card-three-dsecure-version") Filter by 3DS protocol version (e.g. `2.2.0`). #### [`SearchableEventFilterInput.paymentMethodCardTokenizationMethod`](#payment-method-card-tokenization-method) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#payment-method-card-tokenization-method "Direct link to payment-method-card-tokenization-method") Filter by network token wallet. #### [`SearchableEventFilterInput.paymentMethodCardFingerprint`](#payment-method-card-fingerprint) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#payment-method-card-fingerprint "Direct link to payment-method-card-fingerprint") Filter by card fingerprint. On the `events` query this matches online card events only; to include in-person/card-present charges, use the `charges` query. #### [`SearchableEventFilterInput.shopCountry`](#shop-country) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#shop-country "Direct link to shop-country") Filter by shop country (ISO 3166-1 alpha-2). #### [`SearchableEventFilterInput.shopName`](#shop-name) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#shop-name "Direct link to shop-name") Filter by shop name. #### [`SearchableEventFilterInput.sessionIp`](#session-ip) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#session-ip "Direct link to session-ip") Filter by checkout session IP. #### [`SearchableEventFilterInput.sessionFingerprint`](#session-fingerprint) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#session-fingerprint "Direct link to session-fingerprint") Filter by checkout session device fingerprint. #### [`SearchableEventFilterInput.sessionCountry`](#session-country) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#session-country "Direct link to session-country") Filter by checkout session country (geolocated from IP, ISO 3166-1 alpha-2). #### [`SearchableEventFilterInput.fraudDetectorScore`](#fraud-detector-score) ● [`SearchableIntFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-int-filter-input/.md) input[​](#fraud-detector-score "Direct link to fraud-detector-score") Filter by fraud detector score (`0`-`1000`). `range` = two values. #### [`SearchableEventFilterInput.and`](#and) ● [`[SearchableEventFilterInput]`](https://docs.monei.com/apis/graphql/types/inputs/searchable-event-filter-input/.md) list input[​](#and "Direct link to and") AND combinator. #### [`SearchableEventFilterInput.or`](#or) ● [`[SearchableEventFilterInput]`](https://docs.monei.com/apis/graphql/types/inputs/searchable-event-filter-input/.md) list input[​](#or "Direct link to or") OR combinator. #### [`SearchableEventFilterInput.not`](#not) ● [`SearchableEventFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-event-filter-input/.md) input[​](#not "Direct link to not") NOT combinator. ### Member Of[​](#member-of "Direct link to Member Of") [`events`](https://docs.monei.com/apis/graphql/operations/queries/events/.md) query ● [`SearchableEventFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-event-filter-input/.md) input --- # SearchableIDFilterInput Operator guidance: * `eq` / `ne` — preferred for ID lookups (exact-value). * `match` / `matchPhrase` / `matchPhrasePrefix` — only useful if the ID is tokenized (rare). * `wildcard` / `regexp` — pattern match. * `exists` — field present (`true`) or absent (`false`). ``` input SearchableIDFilterInput { ne: ID eq: ID match: ID matchPhrase: ID matchPhrasePrefix: ID exists: Boolean wildcard: ID regexp: ID } ``` ### Fields[​](#fields "Direct link to Fields") #### [`SearchableIDFilterInput.ne`](#ne) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#ne "Direct link to ne") Not equal to. #### [`SearchableIDFilterInput.eq`](#eq) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#eq "Direct link to eq") Equal to. #### [`SearchableIDFilterInput.match`](#match) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#match "Direct link to match") Full-text match on tokenized terms. #### [`SearchableIDFilterInput.matchPhrase`](#match-phrase) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#match-phrase "Direct link to match-phrase") Full-text phrase match. #### [`SearchableIDFilterInput.matchPhrasePrefix`](#match-phrase-prefix) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#match-phrase-prefix "Direct link to match-phrase-prefix") Phrase match where the last term is treated as a prefix. #### [`SearchableIDFilterInput.exists`](#exists) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#exists "Direct link to exists") Field is present (`true`) or absent (`false`). #### [`SearchableIDFilterInput.wildcard`](#wildcard) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#wildcard "Direct link to wildcard") Wildcard pattern. #### [`SearchableIDFilterInput.regexp`](#regexp) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#regexp "Direct link to regexp") Regular expression pattern. ### Member Of[​](#member-of "Direct link to Member Of") [`SearchableChargeFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-charge-filter-input/.md) input ● [`SearchableEventFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-event-filter-input/.md) input ● [`SearchableSubscriptionFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-subscription-filter-input/.md) input --- # SearchableIntFilterInput Operator guidance: * `eq` / `ne` — exact-value match. Use for amounts in minor units, sequence numbers, etc. * `gt` / `gte` / `lt` / `lte` — open-ended bounds. * `range: [from, to]` — inclusive `[from, to]` range. \*\*Required pattern for timestamp fields\*\* (`createdAt`, `updatedAt`, `scheduledAt`, etc., all unix-seconds). The dashboard and SDKs always use `range` for date filtering. ``` input SearchableIntFilterInput { ne: Int gt: Int lt: Int gte: Int lte: Int eq: Int range: [Int] } ``` ### Fields[​](#fields "Direct link to Fields") #### [`SearchableIntFilterInput.ne`](#ne) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#ne "Direct link to ne") Not equal to. #### [`SearchableIntFilterInput.gt`](#gt) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#gt "Direct link to gt") Greater than. #### [`SearchableIntFilterInput.lt`](#lt) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#lt "Direct link to lt") Less than. #### [`SearchableIntFilterInput.gte`](#gte) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#gte "Direct link to gte") Greater than or equal to. #### [`SearchableIntFilterInput.lte`](#lte) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#lte "Direct link to lte") Less than or equal to. #### [`SearchableIntFilterInput.eq`](#eq) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#eq "Direct link to eq") Equal to. #### [`SearchableIntFilterInput.range`](#range) ● [`[Int]`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) list scalar[​](#range "Direct link to range") Inclusive `[from, to]` range. Provide exactly two values. Required pattern for timestamp filters. ### Member Of[​](#member-of "Direct link to Member Of") [`SearchableAccountInvoiceFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-account-invoice-filter-input/.md) input ● [`SearchableAccountSettlementFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-account-settlement-filter-input/.md) input ● [`SearchableChargeFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-charge-filter-input/.md) input ● [`SearchableEventFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-event-filter-input/.md) input ● [`SearchableSubscriptionFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-subscription-filter-input/.md) input --- # SearchableStringFilterInput Multiple operators on the same input AND together. ``` input SearchableStringFilterInput { ne: String eq: String match: String matchPhrase: String matchPhrasePrefix: String exists: Boolean wildcard: String regexp: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`SearchableStringFilterInput.ne`](#ne) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#ne "Direct link to ne") Not equal to. #### [`SearchableStringFilterInput.eq`](#eq) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#eq "Direct link to eq") Equal to (exact match on the keyword field). #### [`SearchableStringFilterInput.match`](#match) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#match "Direct link to match") Full-text match on tokenized terms (any term). #### [`SearchableStringFilterInput.matchPhrase`](#match-phrase) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#match-phrase "Direct link to match-phrase") Full-text match requiring all terms in order. #### [`SearchableStringFilterInput.matchPhrasePrefix`](#match-phrase-prefix) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#match-phrase-prefix "Direct link to match-phrase-prefix") Match where the last term is treated as a prefix. #### [`SearchableStringFilterInput.exists`](#exists) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#exists "Direct link to exists") Field is present (`true`) or absent (`false`). #### [`SearchableStringFilterInput.wildcard`](#wildcard) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#wildcard "Direct link to wildcard") Wildcard pattern (`*` and `?`). #### [`SearchableStringFilterInput.regexp`](#regexp) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#regexp "Direct link to regexp") Regular expression pattern. ### Member Of[​](#member-of "Direct link to Member Of") [`SearchableAccountSettlementFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-account-settlement-filter-input/.md) input ● [`SearchableChargeFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-charge-filter-input/.md) input ● [`SearchableEventFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-event-filter-input/.md) input ● [`SearchableSubscriptionFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-subscription-filter-input/.md) input --- # SearchableSubscriptionFilterInput OpenSearch-style filter for `subscriptions`. Combine fields and use `and`/`or`/`not` for composition. ``` input SearchableSubscriptionFilterInput { id: SearchableIDFilterInput createdAt: SearchableIntFilterInput updatedAt: SearchableIntFilterInput amount: SearchableIntFilterInput currency: SearchableStringFilterInput description: SearchableStringFilterInput descriptor: SearchableStringFilterInput lastOrderId: SearchableStringFilterInput sequenceId: SearchableStringFilterInput status: SearchableStringFilterInput interval: SearchableStringFilterInput intervalCount: SearchableIntFilterInput lastPaymentId: SearchableIDFilterInput lastPaymentStatus: SearchableStringFilterInput lastPaymentStatusCode: SearchableStringFilterInput customerEmail: SearchableStringFilterInput customerName: SearchableStringFilterInput customerPhone: SearchableStringFilterInput paymentMethodMethod: SearchableStringFilterInput paymentMethodCardBrand: SearchableStringFilterInput paymentMethodCardLast4: SearchableStringFilterInput paymentMethodCardType: SearchableStringFilterInput paymentMethodCardThreeDSecure: SearchableBooleanFilterInput paymentMethodCardThreeDSecureVersion: SearchableStringFilterInput paymentMethodCardThreeDSecureFlow: SearchableStringFilterInput paymentMethodCardTokenizationMethod: SearchableStringFilterInput traceDetailsSource: SearchableStringFilterInput storeId: SearchableStringFilterInput and: [SearchableSubscriptionFilterInput] or: [SearchableSubscriptionFilterInput] not: SearchableSubscriptionFilterInput } ``` ### Fields[​](#fields "Direct link to Fields") #### [`SearchableSubscriptionFilterInput.id`](#id) ● [`SearchableIDFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-idfilter-input/.md) input[​](#id "Direct link to id") Filter by subscription ID. #### [`SearchableSubscriptionFilterInput.createdAt`](#created-at) ● [`SearchableIntFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-int-filter-input/.md) input[​](#created-at "Direct link to created-at") Filter by creation time (unix seconds). Use `range: [from, to]` for date filtering. #### [`SearchableSubscriptionFilterInput.updatedAt`](#updated-at) ● [`SearchableIntFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-int-filter-input/.md) input[​](#updated-at "Direct link to updated-at") Filter by last-update time (unix seconds). Use `range: [from, to]` for date filtering. #### [`SearchableSubscriptionFilterInput.amount`](#amount) ● [`SearchableIntFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-int-filter-input/.md) input[​](#amount "Direct link to amount") Filter by recurring amount (minor units). #### [`SearchableSubscriptionFilterInput.currency`](#currency) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#currency "Direct link to currency") Filter by currency (ISO 4217). #### [`SearchableSubscriptionFilterInput.description`](#description) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#description "Direct link to description") Filter by description. #### [`SearchableSubscriptionFilterInput.descriptor`](#descriptor) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#descriptor "Direct link to descriptor") Filter by statement descriptor. #### [`SearchableSubscriptionFilterInput.lastOrderId`](#last-order-id) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#last-order-id "Direct link to last-order-id") Filter by `lastOrderId` (the order ID attached to the last subscription payment). #### [`SearchableSubscriptionFilterInput.sequenceId`](#sequence-id) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#sequence-id "Direct link to sequence-id") Filter by provider sequence ID. #### [`SearchableSubscriptionFilterInput.status`](#status) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#status "Direct link to status") Filter by lifecycle status. #### [`SearchableSubscriptionFilterInput.interval`](#interval) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#interval "Direct link to interval") Filter by billing interval unit. #### [`SearchableSubscriptionFilterInput.intervalCount`](#interval-count) ● [`SearchableIntFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-int-filter-input/.md) input[​](#interval-count "Direct link to interval-count") Filter by interval count. #### [`SearchableSubscriptionFilterInput.lastPaymentId`](#last-payment-id) ● [`SearchableIDFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-idfilter-input/.md) input[​](#last-payment-id "Direct link to last-payment-id") Filter by `lastPayment.id`. #### [`SearchableSubscriptionFilterInput.lastPaymentStatus`](#last-payment-status) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#last-payment-status "Direct link to last-payment-status") Filter by `lastPayment.status`. #### [`SearchableSubscriptionFilterInput.lastPaymentStatusCode`](#last-payment-status-code) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#last-payment-status-code "Direct link to last-payment-status-code") Filter by `lastPayment.statusCode`. #### [`SearchableSubscriptionFilterInput.customerEmail`](#customer-email) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#customer-email "Direct link to customer-email") Filter by customer email. #### [`SearchableSubscriptionFilterInput.customerName`](#customer-name) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#customer-name "Direct link to customer-name") Filter by customer name. #### [`SearchableSubscriptionFilterInput.customerPhone`](#customer-phone) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#customer-phone "Direct link to customer-phone") Filter by customer phone. #### [`SearchableSubscriptionFilterInput.paymentMethodMethod`](#payment-method-method) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#payment-method-method "Direct link to payment-method-method") Filter by `paymentMethod.method`. #### [`SearchableSubscriptionFilterInput.paymentMethodCardBrand`](#payment-method-card-brand) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#payment-method-card-brand "Direct link to payment-method-card-brand") Filter by card brand. #### [`SearchableSubscriptionFilterInput.paymentMethodCardLast4`](#payment-method-card-last-4) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#payment-method-card-last-4 "Direct link to payment-method-card-last-4") Filter by card last 4 digits. #### [`SearchableSubscriptionFilterInput.paymentMethodCardType`](#payment-method-card-type) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#payment-method-card-type "Direct link to payment-method-card-type") Filter by card funding type. #### [`SearchableSubscriptionFilterInput.paymentMethodCardThreeDSecure`](#payment-method-card-three-dsecure) ● [`SearchableBooleanFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-boolean-filter-input/.md) input[​](#payment-method-card-three-dsecure "Direct link to payment-method-card-three-dsecure") Filter by 3DS-performed flag. #### [`SearchableSubscriptionFilterInput.paymentMethodCardThreeDSecureVersion`](#payment-method-card-three-dsecure-version) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#payment-method-card-three-dsecure-version "Direct link to payment-method-card-three-dsecure-version") Filter by 3DS protocol version. #### [`SearchableSubscriptionFilterInput.paymentMethodCardThreeDSecureFlow`](#payment-method-card-three-dsecure-flow) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#payment-method-card-three-dsecure-flow "Direct link to payment-method-card-three-dsecure-flow") Filter by 3DS flow. #### [`SearchableSubscriptionFilterInput.paymentMethodCardTokenizationMethod`](#payment-method-card-tokenization-method) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#payment-method-card-tokenization-method "Direct link to payment-method-card-tokenization-method") Filter by tokenization wallet. #### [`SearchableSubscriptionFilterInput.traceDetailsSource`](#trace-details-source) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#trace-details-source "Direct link to trace-details-source") Filter by integration source (e.g. `dashboard`, `api`). #### [`SearchableSubscriptionFilterInput.storeId`](#store-id) ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input[​](#store-id "Direct link to store-id") Filter by store ID. #### [`SearchableSubscriptionFilterInput.and`](#and) ● [`[SearchableSubscriptionFilterInput]`](https://docs.monei.com/apis/graphql/types/inputs/searchable-subscription-filter-input/.md) list input[​](#and "Direct link to and") All sub-filters must match. #### [`SearchableSubscriptionFilterInput.or`](#or) ● [`[SearchableSubscriptionFilterInput]`](https://docs.monei.com/apis/graphql/types/inputs/searchable-subscription-filter-input/.md) list input[​](#or "Direct link to or") At least one sub-filter must match. #### [`SearchableSubscriptionFilterInput.not`](#not) ● [`SearchableSubscriptionFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-subscription-filter-input/.md) input[​](#not "Direct link to not") Sub-filter must not match. ### Member Of[​](#member-of "Direct link to Member Of") [`SearchableSubscriptionFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-subscription-filter-input/.md) input ● [`subscriptions`](https://docs.monei.com/apis/graphql/operations/queries/subscriptions/.md) query --- # SendPaymentMessageInput Input for `sendPaymentLink` and `sendPaymentReceipt`. ``` input SendPaymentMessageInput { channel: MessageChannel customerEmail: AWSEmail customerPhone: AWSPhone language: String paymentId: ID! } ``` ### Fields[​](#fields "Direct link to Fields") #### [`SendPaymentMessageInput.channel`](#channel) ● [`MessageChannel`](https://docs.monei.com/apis/graphql/types/enums/message-channel/.md) enum[​](#channel "Direct link to channel") The channel used to send the payment message. Defaults to `EMAIL`. #### [`SendPaymentMessageInput.customerEmail`](#customer-email) ● [`AWSEmail`](https://docs.monei.com/apis/graphql/types/scalars/awsemail/.md) scalar[​](#customer-email "Direct link to customer-email") The customer will receive the payment message on this email address. Defaults to the customer email on the payment. #### [`SendPaymentMessageInput.customerPhone`](#customer-phone) ● [`AWSPhone`](https://docs.monei.com/apis/graphql/types/scalars/awsphone/.md) scalar[​](#customer-phone "Direct link to customer-phone") Phone number in E.164 format. The customer will receive the payment message on this phone number. Defaults to the customer phone on the payment. #### [`SendPaymentMessageInput.language`](#language) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#language "Direct link to language") The language of message sent to the customer. If not provided the default customer language is used if available. #### [`SendPaymentMessageInput.paymentId`](#payment-id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#payment-id "Direct link to payment-id") Payment id. ### Member Of[​](#member-of "Direct link to Member Of") [`sendPaymentLink`](https://docs.monei.com/apis/graphql/operations/mutations/send-payment-link/.md) mutation ● [`sendPaymentReceipt`](https://docs.monei.com/apis/graphql/operations/mutations/send-payment-receipt/.md) mutation --- # SendPaymentRequestInput Input for `sendPaymentRequest`. Sends an SMS payment request. ``` input SendPaymentRequestInput { paymentId: ID! phoneNumber: String! language: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`SendPaymentRequestInput.paymentId`](#payment-id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#payment-id "Direct link to payment-id") Payment id. #### [`SendPaymentRequestInput.phoneNumber`](#phone-number) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#phone-number "Direct link to phone-number") Phone number in E.164 format. The customer will receive payment link on this phone number. #### [`SendPaymentRequestInput.language`](#language) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#language "Direct link to language") The language of message sent to the customer. If not provided the default customer language is used if available. ### Member Of[​](#member-of "Direct link to Member Of") [`sendPaymentRequest`](https://docs.monei.com/apis/graphql/operations/mutations/send-payment-request/.md) mutation --- # SendSubscriptionMessageInput Input for `sendSubscriptionLink` and `sendSubscriptionStatus`. ``` input SendSubscriptionMessageInput { channel: MessageChannel customerEmail: AWSEmail customerPhone: AWSPhone language: String subscriptionId: ID! } ``` ### Fields[​](#fields "Direct link to Fields") #### [`SendSubscriptionMessageInput.channel`](#channel) ● [`MessageChannel`](https://docs.monei.com/apis/graphql/types/enums/message-channel/.md) enum[​](#channel "Direct link to channel") Channel to use for sending the message. #### [`SendSubscriptionMessageInput.customerEmail`](#customer-email) ● [`AWSEmail`](https://docs.monei.com/apis/graphql/types/scalars/awsemail/.md) scalar[​](#customer-email "Direct link to customer-email") Customer email to send the message to. #### [`SendSubscriptionMessageInput.customerPhone`](#customer-phone) ● [`AWSPhone`](https://docs.monei.com/apis/graphql/types/scalars/awsphone/.md) scalar[​](#customer-phone "Direct link to customer-phone") Customer phone number to send the message to. #### [`SendSubscriptionMessageInput.language`](#language) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#language "Direct link to language") Language to use for the message. #### [`SendSubscriptionMessageInput.subscriptionId`](#subscription-id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#subscription-id "Direct link to subscription-id") Unique identifier for the subscription. ### Member Of[​](#member-of "Direct link to Member Of") [`sendSubscriptionLink`](https://docs.monei.com/apis/graphql/operations/mutations/send-subscription-link/.md) mutation ● [`sendSubscriptionStatus`](https://docs.monei.com/apis/graphql/operations/mutations/send-subscription-status/.md) mutation --- # SequenceInput Marks the beginning of a payment sequence (recurring/subscriptions/installments). ``` input SequenceInput { type: SequenceType! recurring: SequenceRecurringInput } ``` ### Fields[​](#fields "Direct link to Fields") #### [`SequenceInput.type`](#type) ● [`SequenceType!`](https://docs.monei.com/apis/graphql/types/enums/sequence-type/.md) non-null enum[​](#type "Direct link to type") Sequence type. #### [`SequenceInput.recurring`](#recurring) ● [`SequenceRecurringInput`](https://docs.monei.com/apis/graphql/types/inputs/sequence-recurring-input/.md) input[​](#recurring "Direct link to recurring") Recurring-payment configuration. Required when `type` is `recurring`. ### Member Of[​](#member-of "Direct link to Member Of") [`CreatePaymentInput`](https://docs.monei.com/apis/graphql/types/inputs/create-payment-input/.md) input --- # SequenceRecurringInput Recurring-payment configuration. Used when `SequenceInput.type` is `recurring`. ``` input SequenceRecurringInput { expiry: String frequency: Int } ``` ### Fields[​](#fields "Direct link to Fields") #### [`SequenceRecurringInput.expiry`](#expiry) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#expiry "Direct link to expiry") Date after which no further recurring payments will be performed. Format `YYYYMMDD`. Defaults to the payment method's expiry. #### [`SequenceRecurringInput.frequency`](#frequency) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#frequency "Direct link to frequency") Minimum number of days between recurring payments. Defaults to 25. ### Member Of[​](#member-of "Direct link to Member Of") [`SequenceInput`](https://docs.monei.com/apis/graphql/types/inputs/sequence-input/.md) input --- # SessionDetailsInput Customer browser/device fingerprint input. Mirrors `SessionDetails`. ``` input SessionDetailsInput { ip: AWSIPAddress fingerprint: String userAgent: String countryCode: String lang: String deviceType: DeviceType deviceModel: String browser: String browserVersion: String browserAccept: String browserColorDepth: String browserScreenHeight: String browserScreenWidth: String browserTimezoneOffset: String os: String osVersion: String source: String sourceVersion: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`SessionDetailsInput.ip`](#ip) ● [`AWSIPAddress`](https://docs.monei.com/apis/graphql/types/scalars/awsipaddress/.md) scalar[​](#ip "Direct link to ip") Customer's public IP address. #### [`SessionDetailsInput.fingerprint`](#fingerprint) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#fingerprint "Direct link to fingerprint") Stable device/browser fingerprint hash. #### [`SessionDetailsInput.userAgent`](#user-agent) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#user-agent "Direct link to user-agent") Browser User-Agent string. #### [`SessionDetailsInput.countryCode`](#country-code) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#country-code "Direct link to country-code") Customer's country (ISO 3166-1 alpha-2). #### [`SessionDetailsInput.lang`](#lang) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#lang "Direct link to lang") Browser language (BCP-47, e.g. `en-US`). #### [`SessionDetailsInput.deviceType`](#device-type) ● [`DeviceType`](https://docs.monei.com/apis/graphql/types/enums/device-type/.md) enum[​](#device-type "Direct link to device-type") Detected device type. #### [`SessionDetailsInput.deviceModel`](#device-model) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#device-model "Direct link to device-model") Device model identifier. #### [`SessionDetailsInput.browser`](#browser) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#browser "Direct link to browser") Browser name. #### [`SessionDetailsInput.browserVersion`](#browser-version) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#browser-version "Direct link to browser-version") Browser version. #### [`SessionDetailsInput.browserAccept`](#browser-accept) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#browser-accept "Direct link to browser-accept") Browser `Accept` HTTP header (3DS device data). #### [`SessionDetailsInput.browserColorDepth`](#browser-color-depth) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#browser-color-depth "Direct link to browser-color-depth") Browser color depth in bits (3DS device data). #### [`SessionDetailsInput.browserScreenHeight`](#browser-screen-height) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#browser-screen-height "Direct link to browser-screen-height") Browser screen height in pixels (3DS device data). #### [`SessionDetailsInput.browserScreenWidth`](#browser-screen-width) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#browser-screen-width "Direct link to browser-screen-width") Browser screen width in pixels (3DS device data). #### [`SessionDetailsInput.browserTimezoneOffset`](#browser-timezone-offset) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#browser-timezone-offset "Direct link to browser-timezone-offset") Browser timezone offset in minutes from UTC (3DS device data). #### [`SessionDetailsInput.os`](#os) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#os "Direct link to os") Operating system name. #### [`SessionDetailsInput.osVersion`](#os-version) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#os-version "Direct link to os-version") Operating system version. #### [`SessionDetailsInput.source`](#source) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#source "Direct link to source") Integration source (e.g. `shopify`, `prestashop`, `api`). #### [`SessionDetailsInput.sourceVersion`](#source-version) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#source-version "Direct link to source-version") Version of the integration source. ### Member Of[​](#member-of "Direct link to Member Of") [`CreatePaymentInput`](https://docs.monei.com/apis/graphql/types/inputs/create-payment-input/.md) input --- # SetupAccountInput Payload for `setupAccount` and `verifyBusinessDetails`. ``` input SetupAccountInput { language: String business: BusinessDataInput representatives: [RepresentativeInput!] iban: String billingPlan: BillingPlans userNote: String identity: IdentityInput } ``` ### Fields[​](#fields "Direct link to Fields") #### [`SetupAccountInput.language`](#language) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#language "Direct link to language") Preferred dashboard / communications language (BCP-47, e.g. `en`). #### [`SetupAccountInput.business`](#business) ● [`BusinessDataInput`](https://docs.monei.com/apis/graphql/types/inputs/business-data-input/.md) input[​](#business "Direct link to business") Business details. #### [`SetupAccountInput.representatives`](#representatives) ● [`[RepresentativeInput!]`](https://docs.monei.com/apis/graphql/types/inputs/representative-input/.md) list input[​](#representatives "Direct link to representatives") Legal representatives. #### [`SetupAccountInput.iban`](#iban) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#iban "Direct link to iban") IBAN where settlements will be deposited. #### [`SetupAccountInput.billingPlan`](#billing-plan) ● [`BillingPlans`](https://docs.monei.com/apis/graphql/types/enums/billing-plans/.md) enum[​](#billing-plan "Direct link to billing-plan") Commercial billing plan. #### [`SetupAccountInput.userNote`](#user-note) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#user-note "Direct link to user-note") Free-form note from the merchant. #### [`SetupAccountInput.identity`](#identity) ● [`IdentityInput`](https://docs.monei.com/apis/graphql/types/inputs/identity-input/.md) input[​](#identity "Direct link to identity") Account holder identity (used when `representatives` is omitted). ### Member Of[​](#member-of "Direct link to Member Of") [`setupAccount`](https://docs.monei.com/apis/graphql/operations/mutations/setup-account/.md) mutation ● [`verifyBusinessDetails`](https://docs.monei.com/apis/graphql/operations/mutations/verify-business-details/.md) mutation --- # UpdateAccountInput Account update payload. ``` input UpdateAccountInput { branding: AccountBrandingInput publicBusinessDetails: AccountPublicBusinessDetailsInput timezone: String language: String notifications: AccountNotificationsInput name: String fraudDetectorThreshold: Int fraudDetectorEnabled: Boolean } ``` ### Fields[​](#fields "Direct link to Fields") #### [`UpdateAccountInput.branding`](#branding) ● [`AccountBrandingInput`](https://docs.monei.com/apis/graphql/types/inputs/account-branding-input/.md) input[​](#branding "Direct link to branding") Visual branding. #### [`UpdateAccountInput.publicBusinessDetails`](#public-business-details) ● [`AccountPublicBusinessDetailsInput`](https://docs.monei.com/apis/graphql/types/inputs/account-public-business-details-input/.md) input[​](#public-business-details "Direct link to public-business-details") Public business information shown to customers. #### [`UpdateAccountInput.timezone`](#timezone) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#timezone "Direct link to timezone") Default IANA timezone (e.g. `Europe/Madrid`). #### [`UpdateAccountInput.language`](#language) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#language "Direct link to language") Preferred dashboard / communications language (BCP-47, e.g. `en`). #### [`UpdateAccountInput.notifications`](#notifications) ● [`AccountNotificationsInput`](https://docs.monei.com/apis/graphql/types/inputs/account-notifications-input/.md) input[​](#notifications "Direct link to notifications") Email notification preferences. #### [`UpdateAccountInput.name`](#name) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#name "Direct link to name") Internal account name (not shown to customers). #### [`UpdateAccountInput.fraudDetectorThreshold`](#fraud-detector-threshold) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#fraud-detector-threshold "Direct link to fraud-detector-threshold") Fraud-detector score threshold (0-1000). Card payments scoring above this value are declined. #### [`UpdateAccountInput.fraudDetectorEnabled`](#fraud-detector-enabled) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#fraud-detector-enabled "Direct link to fraud-detector-enabled") Whether the fraud detector is enabled for the account. ### Member Of[​](#member-of "Direct link to Member Of") [`updateAccount`](https://docs.monei.com/apis/graphql/operations/mutations/update-account/.md) mutation --- # UpdateApplePayCertInput Input for `updateApplePayCert`. ``` input UpdateApplePayCertInput { id: ID! active: Boolean! } ``` ### Fields[​](#fields "Direct link to Fields") #### [`UpdateApplePayCertInput.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") Certificate ID. #### [`UpdateApplePayCertInput.active`](#active) ● [`Boolean!`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) non-null scalar[​](#active "Direct link to active") Set to `true` to enable or `false` to disable the certificate. ### Member Of[​](#member-of "Direct link to Member Of") [`updateApplePayCert`](https://docs.monei.com/apis/graphql/operations/mutations/update-apple-pay-cert/.md) mutation --- # UpdateAuthorizedUserInput Input for `updateAuthorizedUser`. ``` input UpdateAuthorizedUserInput { userEmail: String! accessLevel: AuthorizedUserAccessLevel storeId: ID pointOfSaleId: ID } ``` ### Fields[​](#fields "Direct link to Fields") #### [`UpdateAuthorizedUserInput.userEmail`](#user-email) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#user-email "Direct link to user-email") Email of the user to update. Identifies the existing record. #### [`UpdateAuthorizedUserInput.accessLevel`](#access-level) ● [`AuthorizedUserAccessLevel`](https://docs.monei.com/apis/graphql/types/enums/authorized-user-access-level/.md) enum[​](#access-level "Direct link to access-level") New permission level. `ADMIN_ACCESS` is rejected when `storeId` or `pointOfSaleId` is set. #### [`UpdateAuthorizedUserInput.storeId`](#store-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#store-id "Direct link to store-id") Restrict the user to a single store. Pass `null` to clear. #### [`UpdateAuthorizedUserInput.pointOfSaleId`](#point-of-sale-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#point-of-sale-id "Direct link to point-of-sale-id") Restrict the user to a single point of sale. Pass `null` to clear. ### Member Of[​](#member-of "Direct link to Member Of") [`updateAuthorizedUser`](https://docs.monei.com/apis/graphql/operations/mutations/update-authorized-user/.md) mutation --- # UpdateCodeInput Input for `updateCode`. ``` input UpdateCodeInput { id: ID! enabled: Boolean pointOfSaleId: ID } ``` ### Fields[​](#fields "Direct link to Fields") #### [`UpdateCodeInput.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") Code ID. #### [`UpdateCodeInput.enabled`](#enabled) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#enabled "Direct link to enabled") Whether the code is active. #### [`UpdateCodeInput.pointOfSaleId`](#point-of-sale-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#point-of-sale-id "Direct link to point-of-sale-id") Point of Sale to re-attach the code to. ### Member Of[​](#member-of "Direct link to Member Of") [`updateCode`](https://docs.monei.com/apis/graphql/operations/mutations/update-code/.md) mutation --- # UpdateExportSftpConfigInput Input for `updateExportSftpConfig`. Only provided fields are updated. ``` input UpdateExportSftpConfigInput { id: ID! host: String port: Int username: String password: String path: String columns: [String!] timezone: String enabled: Boolean } ``` ### Fields[​](#fields "Direct link to Fields") #### [`UpdateExportSftpConfigInput.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") Config ID to update. #### [`UpdateExportSftpConfigInput.host`](#host) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#host "Direct link to host") SFTP server hostname. #### [`UpdateExportSftpConfigInput.port`](#port) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#port "Direct link to port") SFTP server port. #### [`UpdateExportSftpConfigInput.username`](#username) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#username "Direct link to username") SFTP username. #### [`UpdateExportSftpConfigInput.password`](#password) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#password "Direct link to password") SFTP password. Stored encrypted; never returned. #### [`UpdateExportSftpConfigInput.path`](#path) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#path "Direct link to path") Target directory on the SFTP server. #### [`UpdateExportSftpConfigInput.columns`](#columns) ● [`[String!]`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) list scalar[​](#columns "Direct link to columns") Columns to include in the CSV. #### [`UpdateExportSftpConfigInput.timezone`](#timezone) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#timezone "Direct link to timezone") IANA timezone for date columns. #### [`UpdateExportSftpConfigInput.enabled`](#enabled) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#enabled "Direct link to enabled") Whether the scheduled export is active. ### Member Of[​](#member-of "Direct link to Member Of") [`updateExportSftpConfig`](https://docs.monei.com/apis/graphql/operations/mutations/update-export-sftp-config/.md) mutation --- # UpdateIdentityInput Input for `updateIdentity`. Only provided fields are written; omitted fields are left unchanged. ``` input UpdateIdentityInput { id: ID address: AddressInput citizenship: String documentNumber: String email: String firstName: String hasNoPublicActivity: Boolean lastName: String nationality: String phone: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`UpdateIdentityInput.id`](#id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#id "Direct link to id") Identity ID. Defaults to the account's primary representative when omitted. #### [`UpdateIdentityInput.address`](#address) ● [`AddressInput`](https://docs.monei.com/apis/graphql/types/inputs/address-input/.md) input[​](#address "Direct link to address") Representative's residential address. #### [`UpdateIdentityInput.citizenship`](#citizenship) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#citizenship "Direct link to citizenship") Country of legal citizenship (ISO 3166-1 alpha-2). May differ from `nationality` for dual citizens or naturalized citizens. #### [`UpdateIdentityInput.documentNumber`](#document-number) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#document-number "Direct link to document-number") Tax/identity document number (e.g. NIF/CIF/NIE for Spain, passport number for non-EU residents). #### [`UpdateIdentityInput.email`](#email) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#email "Direct link to email") Representative's email. #### [`UpdateIdentityInput.firstName`](#first-name) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#first-name "Direct link to first-name") Representative's first name. #### [`UpdateIdentityInput.hasNoPublicActivity`](#has-no-public-activity) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#has-no-public-activity "Direct link to has-no-public-activity") Representative self-declares no PEP/public-activity exposure. #### [`UpdateIdentityInput.lastName`](#last-name) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#last-name "Direct link to last-name") Representative's last name. #### [`UpdateIdentityInput.nationality`](#nationality) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#nationality "Direct link to nationality") Country of nationality (ISO 3166-1 alpha-2). Country of origin/birth; may differ from `citizenship` for dual citizens or naturalized citizens. #### [`UpdateIdentityInput.phone`](#phone) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#phone "Direct link to phone") Representative's phone in E.164 format, e.g. `+34666777888`. ### Member Of[​](#member-of "Direct link to Member Of") [`updateIdentity`](https://docs.monei.com/apis/graphql/operations/mutations/update-identity/.md) mutation --- # UpdatePaymentRuleInput Input for `updatePaymentRule`. Omitted fields are left unchanged. ``` input UpdatePaymentRuleInput { id: ID! ruleType: PaymentRuleType conditions: PaymentConditionsInput action: PaymentActionInput } ``` ### Fields[​](#fields "Direct link to Fields") #### [`UpdatePaymentRuleInput.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") ID of the rule to update. #### [`UpdatePaymentRuleInput.ruleType`](#rule-type) ● [`PaymentRuleType`](https://docs.monei.com/apis/graphql/types/enums/payment-rule-type/.md) enum[​](#rule-type "Direct link to rule-type") Replace the rule type. #### [`UpdatePaymentRuleInput.conditions`](#conditions) ● [`PaymentConditionsInput`](https://docs.monei.com/apis/graphql/types/inputs/payment-conditions-input/.md) input[​](#conditions "Direct link to conditions") Replace the conditions. #### [`UpdatePaymentRuleInput.action`](#action) ● [`PaymentActionInput`](https://docs.monei.com/apis/graphql/types/inputs/payment-action-input/.md) input[​](#action "Direct link to action") Replace the action. ### Member Of[​](#member-of "Direct link to Member Of") [`updatePaymentRule`](https://docs.monei.com/apis/graphql/operations/mutations/update-payment-rule/.md) mutation --- # UpdatePointOfSaleInput Input for `updatePointOfSale`. All fields except `id` are optional; omitted fields are left unchanged. ``` input UpdatePointOfSaleInput { id: ID! storeId: ID name: String description: String manualAmount: Boolean requireEmail: Boolean requireTaxId: Boolean fixedAmount: Int fixedCurrency: Currencies enabled: Boolean includeQRCode: Boolean qrCodeText: String paymentCallbackUrl: String transactionType: TransactionTypes paymentMethods: [PaymentMethods!] deviceId: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`UpdatePointOfSaleInput.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") POS ID to update. #### [`UpdatePointOfSaleInput.storeId`](#store-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#store-id "Direct link to store-id") Parent store ID. #### [`UpdatePointOfSaleInput.name`](#name) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#name "Direct link to name") Display name. #### [`UpdatePointOfSaleInput.description`](#description) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#description "Direct link to description") Free-form description. #### [`UpdatePointOfSaleInput.manualAmount`](#manual-amount) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#manual-amount "Direct link to manual-amount") Allow the operator to enter an arbitrary amount. #### [`UpdatePointOfSaleInput.requireEmail`](#require-email) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#require-email "Direct link to require-email") Require the customer to provide an email address. #### [`UpdatePointOfSaleInput.requireTaxId`](#require-tax-id) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#require-tax-id "Direct link to require-tax-id") Require the customer to provide a tax ID. #### [`UpdatePointOfSaleInput.fixedAmount`](#fixed-amount) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#fixed-amount "Direct link to fixed-amount") Pre-set amount in the smallest currency unit. #### [`UpdatePointOfSaleInput.fixedCurrency`](#fixed-currency) ● [`Currencies`](https://docs.monei.com/apis/graphql/types/enums/currencies/.md) enum[​](#fixed-currency "Direct link to fixed-currency") Currency for `fixedAmount`. #### [`UpdatePointOfSaleInput.enabled`](#enabled) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#enabled "Direct link to enabled") Enabled state. #### [`UpdatePointOfSaleInput.includeQRCode`](#include-qrcode) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#include-qrcode "Direct link to include-qrcode") Embed a QR code with the payment link in the confirmation email. #### [`UpdatePointOfSaleInput.qrCodeText`](#qr-code-text) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#qr-code-text "Direct link to qr-code-text") Caption rendered next to the QR code in the confirmation email. #### [`UpdatePointOfSaleInput.paymentCallbackUrl`](#payment-callback-url) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#payment-callback-url "Direct link to payment-callback-url") Server-to-server HTTP POST URL invoked when a charge succeeds at this POS. #### [`UpdatePointOfSaleInput.transactionType`](#transaction-type) ● [`TransactionTypes`](https://docs.monei.com/apis/graphql/types/enums/transaction-types/.md) enum[​](#transaction-type "Direct link to transaction-type") Default transaction type for charges created at this POS. #### [`UpdatePointOfSaleInput.paymentMethods`](#payment-methods) ● [`[PaymentMethods!]`](https://docs.monei.com/apis/graphql/types/enums/payment-methods/.md) list enum[​](#payment-methods "Direct link to payment-methods") Allow-list of payment methods. #### [`UpdatePointOfSaleInput.deviceId`](#device-id) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#device-id "Direct link to device-id") Hardware device identifier. ### Member Of[​](#member-of "Direct link to Member Of") [`updatePointOfSale`](https://docs.monei.com/apis/graphql/operations/mutations/update-point-of-sale/.md) mutation --- # UpdateProviderInput Input for `updateProvider`. Only included fields are updated. ``` input UpdateProviderInput { id: ID! enabled: Boolean acquirer: Acquirer metadata: [MetadataItemInput!] rules: ProviderRulesInput } ``` ### Fields[​](#fields "Direct link to Fields") #### [`UpdateProviderInput.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") Provider ID. #### [`UpdateProviderInput.enabled`](#enabled) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#enabled "Direct link to enabled") Whether the provider is enabled. #### [`UpdateProviderInput.acquirer`](#acquirer) ● [`Acquirer`](https://docs.monei.com/apis/graphql/types/enums/acquirer/.md) enum[​](#acquirer "Direct link to acquirer") Acquiring entity that settles funds for this provider. #### [`UpdateProviderInput.metadata`](#metadata) ● [`[MetadataItemInput!]`](https://docs.monei.com/apis/graphql/types/inputs/metadata-item-input/.md) list input[​](#metadata "Direct link to metadata") Provider-specific configuration values to merge into the existing metadata. See `providerConfig` for the expected schema. #### [`UpdateProviderInput.rules`](#rules) ● [`ProviderRulesInput`](https://docs.monei.com/apis/graphql/types/inputs/provider-rules-input/.md) input[​](#rules "Direct link to rules") Routing rules controlling when this provider is selected. ### Member Of[​](#member-of "Direct link to Member Of") [`updateProvider`](https://docs.monei.com/apis/graphql/operations/mutations/update-provider/.md) mutation --- # UpdateShopifyShopSettingsInput Input for `updateShopifyShopSettings`. Caller's account must own the installation. Fields left `null`/omitted preserve the existing value (no overwrite). ``` input UpdateShopifyShopSettingsInput { shop: String! paymentMethod: String! countryStores: [CountryStoreInput!] testMode: Boolean } ``` ### Fields[​](#fields "Direct link to Fields") #### [`UpdateShopifyShopSettingsInput.shop`](#shop) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#shop "Direct link to shop") Shopify shop domain. #### [`UpdateShopifyShopSettingsInput.paymentMethod`](#payment-method) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#payment-method "Direct link to payment-method") MONEI Shopify app payment method. See `ShopifyStore.paymentMethod`. #### [`UpdateShopifyShopSettingsInput.countryStores`](#country-stores) ● [`[CountryStoreInput!]`](https://docs.monei.com/apis/graphql/types/inputs/country-store-input/.md) list input[​](#country-stores "Direct link to country-stores") New country-to-store routing rules. When provided, fully replaces the existing list. #### [`UpdateShopifyShopSettingsInput.testMode`](#test-mode) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#test-mode "Direct link to test-mode") Toggle between test and live mode. Switching modes re-binds the installation to the account's paired live/test account; fails if the paired account is missing or cannot process payments. ### Member Of[​](#member-of "Direct link to Member Of") [`updateShopifyShopSettings`](https://docs.monei.com/apis/graphql/operations/mutations/update-shopify-shop-settings/.md) mutation --- # UpdateStoreInput Input for `updateStore`. Only provided fields are updated. ``` input UpdateStoreInput { id: ID! name: String address: AddressInput phone: String email: String website: String metadata: [KeyValueInput!] blocked: Boolean } ``` ### Fields[​](#fields "Direct link to Fields") #### [`UpdateStoreInput.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") Store ID. #### [`UpdateStoreInput.name`](#name) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#name "Direct link to name") Display name. #### [`UpdateStoreInput.address`](#address) ● [`AddressInput`](https://docs.monei.com/apis/graphql/types/inputs/address-input/.md) input[​](#address "Direct link to address") Postal address of the store. #### [`UpdateStoreInput.phone`](#phone) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#phone "Direct link to phone") Contact phone in E.164 format, e.g. `+34666777888`. #### [`UpdateStoreInput.email`](#email) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#email "Direct link to email") Contact email. #### [`UpdateStoreInput.website`](#website) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#website "Direct link to website") Public website URL. #### [`UpdateStoreInput.metadata`](#metadata) ● [`[KeyValueInput!]`](https://docs.monei.com/apis/graphql/types/inputs/key-value-input/.md) list input[​](#metadata "Direct link to metadata") Arbitrary key/value metadata. #### [`UpdateStoreInput.blocked`](#blocked) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#blocked "Direct link to blocked") Whether the store is blocked. Blocked stores cannot accept payments. ### Member Of[​](#member-of "Direct link to Member Of") [`updateStore`](https://docs.monei.com/apis/graphql/operations/mutations/update-store/.md) mutation --- # UpdateSubscriptionInput Input for `updateSubscription`. ``` input UpdateSubscriptionInput { amount: Int intervalCount: Int interval: IntervalInput allowedPaymentMethods: [SubscriptionPaymentMethods] description: String descriptor: String callbackUrl: String paymentCallbackUrl: String customer: CustomerInput billingDetails: ContactDetailsInput shippingDetails: ContactDetailsInput nextPaymentAt: AWSTimestamp trialPeriodEnd: AWSTimestamp cancelAtPeriodEnd: Boolean pauseIntervalCount: Int pauseAtPeriodEnd: Boolean skipIntervalCount: Int id: ID! retrySchedule: [RetryScheduleInput!] metadata: [KeyValueInput!] } ``` ### Fields[​](#fields "Direct link to Fields") #### [`UpdateSubscriptionInput.amount`](#amount) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#amount "Direct link to amount") A positive integer representing how much to charge in the smallest currency unit (e.g., 100 cents to charge 1.00 USD). #### [`UpdateSubscriptionInput.intervalCount`](#interval-count) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#interval-count "Direct link to interval-count") Number of intervals between subscription payments. Total period must not exceed one year. #### [`UpdateSubscriptionInput.interval`](#interval) ● [`IntervalInput`](https://docs.monei.com/apis/graphql/types/enums/interval-input/.md) enum[​](#interval "Direct link to interval") Subscription interval. The `minute` and `hour` intervals are only available in test mode. #### [`UpdateSubscriptionInput.allowedPaymentMethods`](#allowed-payment-methods) ● [`[SubscriptionPaymentMethods]`](https://docs.monei.com/apis/graphql/types/enums/subscription-payment-methods/.md) list enum[​](#allowed-payment-methods "Direct link to allowed-payment-methods") List of payment methods allowed for subscriptions. #### [`UpdateSubscriptionInput.description`](#description) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#description "Direct link to description") An arbitrary string attached to the subscription. Often useful for displaying to users. #### [`UpdateSubscriptionInput.descriptor`](#descriptor) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#descriptor "Direct link to descriptor") Statement descriptor shown on the customer's bank statement. #### [`UpdateSubscriptionInput.callbackUrl`](#callback-url) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#callback-url "Direct link to callback-url") The URL will be called each time subscription status changes. You will receive a subscription object in the body of the request. #### [`UpdateSubscriptionInput.paymentCallbackUrl`](#payment-callback-url) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#payment-callback-url "Direct link to payment-callback-url") The URL will be called each time subscription creates a new payment. You will receive the payment object in the body of the request. #### [`UpdateSubscriptionInput.customer`](#customer) ● [`CustomerInput`](https://docs.monei.com/apis/graphql/types/inputs/customer-input/.md) input[​](#customer "Direct link to customer") Customer details. #### [`UpdateSubscriptionInput.billingDetails`](#billing-details) ● [`ContactDetailsInput`](https://docs.monei.com/apis/graphql/types/inputs/contact-details-input/.md) input[​](#billing-details "Direct link to billing-details") Billing details. #### [`UpdateSubscriptionInput.shippingDetails`](#shipping-details) ● [`ContactDetailsInput`](https://docs.monei.com/apis/graphql/types/inputs/contact-details-input/.md) input[​](#shipping-details "Direct link to shipping-details") Shipping details. #### [`UpdateSubscriptionInput.nextPaymentAt`](#next-payment-at) ● [`AWSTimestamp`](https://docs.monei.com/apis/graphql/types/scalars/awstimestamp/.md) scalar[​](#next-payment-at "Direct link to next-payment-at") Reschedule the next charge to this time. Measured in seconds since the Unix epoch. #### [`UpdateSubscriptionInput.trialPeriodEnd`](#trial-period-end) ● [`AWSTimestamp`](https://docs.monei.com/apis/graphql/types/scalars/awstimestamp/.md) scalar[​](#trial-period-end "Direct link to trial-period-end") The end date of the trial period. Measured in seconds since the Unix epoch. #### [`UpdateSubscriptionInput.cancelAtPeriodEnd`](#cancel-at-period-end) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#cancel-at-period-end "Direct link to cancel-at-period-end") If true, the subscription will be canceled at the end of the current period. #### [`UpdateSubscriptionInput.pauseIntervalCount`](#pause-interval-count) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#pause-interval-count "Direct link to pause-interval-count") Number of intervals when subscription will be paused before it activates again. #### [`UpdateSubscriptionInput.pauseAtPeriodEnd`](#pause-at-period-end) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#pause-at-period-end "Direct link to pause-at-period-end") If true, the subscription will be paused at the end of the current period. #### [`UpdateSubscriptionInput.skipIntervalCount`](#skip-interval-count) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#skip-interval-count "Direct link to skip-interval-count") The number of intervals during which the subscription billing cycle will be skipped without altering the subscription status. #### [`UpdateSubscriptionInput.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") Unique identifier for the subscription to update. #### [`UpdateSubscriptionInput.retrySchedule`](#retry-schedule) ● [`[RetryScheduleInput!]`](https://docs.monei.com/apis/graphql/types/inputs/retry-schedule-input/.md) list input[​](#retry-schedule "Direct link to retry-schedule") Defines a custom schedule for retrying failed subscription payments. Total retry duration must not exceed one billing period. #### [`UpdateSubscriptionInput.metadata`](#metadata) ● [`[KeyValueInput!]`](https://docs.monei.com/apis/graphql/types/inputs/key-value-input/.md) list input[​](#metadata "Direct link to metadata") A set of key-value pairs attached to the subscription. Set a value to `null` to remove the key. ### Member Of[​](#member-of "Direct link to Member Of") [`updateSubscription`](https://docs.monei.com/apis/graphql/operations/mutations/update-subscription/.md) mutation --- # UpdateWebhookInput Input for `updateWebhook`. All fields are required; partial updates are rejected. ``` input UpdateWebhookInput { id: ID! url: String! eventTypes: [WebhookEventType!]! enabled: Boolean! } ``` ### Fields[​](#fields "Direct link to Fields") #### [`UpdateWebhookInput.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") Webhook ID. #### [`UpdateWebhookInput.url`](#url) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#url "Direct link to url") New endpoint URL. #### [`UpdateWebhookInput.eventTypes`](#event-types) ● [`[WebhookEventType!]!`](https://docs.monei.com/apis/graphql/types/enums/webhook-event-type/.md) non-null enum[​](#event-types "Direct link to event-types") Replacement list of subscribed event types. #### [`UpdateWebhookInput.enabled`](#enabled) ● [`Boolean!`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) non-null scalar[​](#enabled "Direct link to enabled") Enable or disable delivery. ### Member Of[​](#member-of "Direct link to Member Of") [`updateWebhook`](https://docs.monei.com/apis/graphql/operations/mutations/update-webhook/.md) mutation --- # AccountBalancesConnection Per-currency account balances for the authenticated account. ``` type AccountBalancesConnection { items: [AccountBalances!]! } ``` ### Fields[​](#fields "Direct link to Fields") #### [`AccountBalancesConnection.items`](#items) ● [`[AccountBalances!]!`](https://docs.monei.com/apis/graphql/types/objects/account-balances/.md) non-null object[​](#items "Direct link to items") One entry per currency the account holds funds in. ### Returned By[​](#returned-by "Direct link to Returned By") [`accountBalances`](https://docs.monei.com/apis/graphql/operations/queries/account-balances/.md) query --- # AccountBalances Account balance for a single currency. One record per `(accountId, currency)` pair. All amounts are in the currency's minor units (e.g. cents for EUR). ``` type AccountBalances { accountId: ID! currency: String! clearedAmount: Int! outstandingAmount: Int! totalAmount: Int! createdAt: String! updatedAt: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`AccountBalances.accountId`](#account-id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#account-id "Direct link to account-id") Owning account this balance belongs to. #### [`AccountBalances.currency`](#currency) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#currency "Direct link to currency") ISO 4217 currency code of this balance (e.g. `EUR`). #### [`AccountBalances.clearedAmount`](#cleared-amount) ● [`Int!`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) non-null scalar[​](#cleared-amount "Direct link to cleared-amount") Settled funds available for refunds or outbound payments. Minor units. #### [`AccountBalances.outstandingAmount`](#outstanding-amount) ● [`Int!`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) non-null scalar[​](#outstanding-amount "Direct link to outstanding-amount") Pending funds from transactions not yet settled. Minor units. #### [`AccountBalances.totalAmount`](#total-amount) ● [`Int!`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) non-null scalar[​](#total-amount "Direct link to total-amount") Sum of cleared and outstanding amounts. Minor units. #### [`AccountBalances.createdAt`](#created-at) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#created-at "Direct link to created-at") Creation timestamp (ISO 8601). #### [`AccountBalances.updatedAt`](#updated-at) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#updated-at "Direct link to updated-at") Last update timestamp (ISO 8601). ### Member Of[​](#member-of "Direct link to Member Of") [`AccountBalancesConnection`](https://docs.monei.com/apis/graphql/types/objects/account-balances-connection/.md) object --- # AccountBranding Visual branding applied to the hosted payment page and customer-facing surfaces. ``` type AccountBranding { accentColor: String bgColor: String logoUrl: String iconUrl: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`AccountBranding.accentColor`](#accent-color) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#accent-color "Direct link to accent-color") Accent color (hex, e.g. `#0066FF`) used for buttons and highlights. #### [`AccountBranding.bgColor`](#bg-color) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#bg-color "Direct link to bg-color") Background color (hex) of the hosted payment page. #### [`AccountBranding.logoUrl`](#logo-url) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#logo-url "Direct link to logo-url") Logo URL displayed on the payment page. #### [`AccountBranding.iconUrl`](#icon-url) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#icon-url "Direct link to icon-url") Icon URL used as the favicon for the payment page. ### Member Of[​](#member-of "Direct link to Member Of") [`Account`](https://docs.monei.com/apis/graphql/types/objects/account/.md) object --- # AccountContract E-signature contract tracking the MONEI services contract for the account. ``` type AccountContract { envelopeId: ID! status: ContractStatus! path: String @deprecated signedDate: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`AccountContract.envelopeId`](#envelope-id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#envelope-id "Direct link to envelope-id") E-signature envelope ID. #### [`AccountContract.status`](#status) ● [`ContractStatus!`](https://docs.monei.com/apis/graphql/types/enums/contract-status/.md) non-null enum[​](#status "Direct link to status") Current contract status. #### [`AccountContract.path`](#path) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) deprecated scalar[​](#path "Direct link to path") DEPRECATED Contract is stored as a document. Use `downloadContract`. #### [`AccountContract.signedDate`](#signed-date) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#signed-date "Direct link to signed-date") Date the contract was signed (ISO 8601). ### Member Of[​](#member-of "Direct link to Member Of") [`Account`](https://docs.monei.com/apis/graphql/types/objects/account/.md) object --- # AccountInvoiceBusiness Merchant business snapshot embedded in the issued account invoice. ``` type AccountInvoiceBusiness { legalName: String iban: String documentNumber: String mandateSignatureTimestamp: Int } ``` ### Fields[​](#fields "Direct link to Fields") #### [`AccountInvoiceBusiness.legalName`](#legal-name) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#legal-name "Direct link to legal-name") Registered legal name of the business. #### [`AccountInvoiceBusiness.iban`](#iban) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#iban "Direct link to iban") Merchant IBAN charged for direct debit invoices. #### [`AccountInvoiceBusiness.documentNumber`](#document-number) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#document-number "Direct link to document-number") Tax identification number (e.g. NIF/CIF for Spain, VAT ID for EU). #### [`AccountInvoiceBusiness.mandateSignatureTimestamp`](#mandate-signature-timestamp) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#mandate-signature-timestamp "Direct link to mandate-signature-timestamp") SEPA mandate signature date as a unix timestamp (seconds). Set when `paymentMethod` is `direct_debit`. ### Member Of[​](#member-of "Direct link to Member Of") [`AccountInvoice`](https://docs.monei.com/apis/graphql/types/objects/account-invoice/.md) object --- # AccountInvoiceLineItem Single line item on an account invoice (e.g. a per-transaction fee, fixed plan fee, or VAT row). * When `unitType` is `money`, `unitAmount` is in the invoice currency's minor units and `amount = quantity * unitAmount`. * When `unitType` is `percent`, `unitAmount` is a percentage applied to `quantity` (a base amount in minor units) and `amount = quantity * unitAmount / 100`. ``` type AccountInvoiceLineItem { name: String! quantity: Int! unitAmount: Float! unitType: UnitType! currency: Currencies! amount: Int! } ``` ### Fields[​](#fields "Direct link to Fields") #### [`AccountInvoiceLineItem.name`](#name) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#name "Direct link to name") Line item description. #### [`AccountInvoiceLineItem.quantity`](#quantity) ● [`Int!`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) non-null scalar[​](#quantity "Direct link to quantity") Number of units, or the base amount in minor units when `unitType` is `percent`. #### [`AccountInvoiceLineItem.unitAmount`](#unit-amount) ● [`Float!`](https://docs.monei.com/apis/graphql/types/scalars/float/.md) non-null scalar[​](#unit-amount "Direct link to unit-amount") Per-unit price in minor units (`money`) or percentage value (`percent`). #### [`AccountInvoiceLineItem.unitType`](#unit-type) ● [`UnitType!`](https://docs.monei.com/apis/graphql/types/enums/unit-type/.md) non-null enum[​](#unit-type "Direct link to unit-type") Whether `unitAmount` is a monetary value or a percentage. #### [`AccountInvoiceLineItem.currency`](#currency) ● [`Currencies!`](https://docs.monei.com/apis/graphql/types/enums/currencies/.md) non-null enum[​](#currency "Direct link to currency") ISO 4217 currency code for this line. #### [`AccountInvoiceLineItem.amount`](#amount) ● [`Int!`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) non-null scalar[​](#amount "Direct link to amount") Computed line total in minor units. ### Member Of[​](#member-of "Direct link to Member Of") [`AccountInvoice`](https://docs.monei.com/apis/graphql/types/objects/account-invoice/.md) object --- # AccountInvoice Invoice MONEI issues to a merchant account for fees accrued in a billing period. Generated automatically from the account's transactions and plan. ``` type AccountInvoice { id: ID! number: String accountId: ID! period: Period! currency: Currencies! amount: Int! tax: Int! totalAmount: Int! lineItems: [AccountInvoiceLineItem!]! business: AccountInvoiceBusiness referralCode: String createdAt: Int! status: AccountInvoiceStatus paymentMethod: AccountInvoicePaymentMethod } ``` ### Fields[​](#fields "Direct link to Fields") #### [`AccountInvoice.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") Invoice ID. #### [`AccountInvoice.number`](#number) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#number "Direct link to number") Human-readable invoice number printed on the PDF. #### [`AccountInvoice.accountId`](#account-id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#account-id "Direct link to account-id") Merchant account the invoice belongs to. #### [`AccountInvoice.period`](#period) ● [`Period!`](https://docs.monei.com/apis/graphql/types/objects/period/.md) non-null object[​](#period "Direct link to period") Billing period covered by the invoice. #### [`AccountInvoice.currency`](#currency) ● [`Currencies!`](https://docs.monei.com/apis/graphql/types/enums/currencies/.md) non-null enum[​](#currency "Direct link to currency") ISO 4217 currency code of the invoice. #### [`AccountInvoice.amount`](#amount) ● [`Int!`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) non-null scalar[​](#amount "Direct link to amount") Subtotal in minor units (sum of line items, before tax). #### [`AccountInvoice.tax`](#tax) ● [`Int!`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) non-null scalar[​](#tax "Direct link to tax") Tax amount in minor units (e.g. VAT). #### [`AccountInvoice.totalAmount`](#total-amount) ● [`Int!`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) non-null scalar[​](#total-amount "Direct link to total-amount") Total amount due in minor units (`amount` + `tax`). #### [`AccountInvoice.lineItems`](#line-items) ● [`[AccountInvoiceLineItem!]!`](https://docs.monei.com/apis/graphql/types/objects/account-invoice-line-item/.md) non-null object[​](#line-items "Direct link to line-items") Itemised fees and charges that make up the invoice. #### [`AccountInvoice.business`](#business) ● [`AccountInvoiceBusiness`](https://docs.monei.com/apis/graphql/types/objects/account-invoice-business/.md) object[​](#business "Direct link to business") Merchant business snapshot at the time the invoice was issued. #### [`AccountInvoice.referralCode`](#referral-code) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#referral-code "Direct link to referral-code") Referral code applied to the merchant when the invoice was generated. #### [`AccountInvoice.createdAt`](#created-at) ● [`Int!`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) non-null scalar[​](#created-at "Direct link to created-at") Issue date as a unix timestamp (seconds). #### [`AccountInvoice.status`](#status) ● [`AccountInvoiceStatus`](https://docs.monei.com/apis/graphql/types/enums/account-invoice-status/.md) enum[​](#status "Direct link to status") Current payment status. #### [`AccountInvoice.paymentMethod`](#payment-method) ● [`AccountInvoicePaymentMethod`](https://docs.monei.com/apis/graphql/types/enums/account-invoice-payment-method/.md) enum[​](#payment-method "Direct link to payment-method") Method MONEI uses to collect payment. ### Returned By[​](#returned-by "Direct link to Returned By") [`accountInvoice`](https://docs.monei.com/apis/graphql/operations/queries/account-invoice/.md) query ### Member Of[​](#member-of "Direct link to Member Of") [`AccountInvoicesConnection`](https://docs.monei.com/apis/graphql/types/objects/account-invoices-connection/.md) object --- # AccountInvoicesConnection Paginated list of account invoices. ``` type AccountInvoicesConnection { items: [AccountInvoice!]! total: Int! } ``` ### Fields[​](#fields "Direct link to Fields") #### [`AccountInvoicesConnection.items`](#items) ● [`[AccountInvoice!]!`](https://docs.monei.com/apis/graphql/types/objects/account-invoice/.md) non-null object[​](#items "Direct link to items") Invoices in the current page. #### [`AccountInvoicesConnection.total`](#total) ● [`Int!`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) non-null scalar[​](#total "Direct link to total") Total invoices matching the filter, across all pages. ### Returned By[​](#returned-by "Direct link to Returned By") [`accountInvoices`](https://docs.monei.com/apis/graphql/operations/queries/account-invoices/.md) query --- # AccountNotifications Email notification preferences for the merchant and their customers. ``` type AccountNotifications { emailCustomerOnRefund: Boolean emailCustomerOnSuccess: Boolean emailCustomerOnSubscription: Boolean emailAdminOnSuccess: Boolean emailAdminOnSubscription: Boolean adminEmails: [String!] } ``` ### Fields[​](#fields "Direct link to Fields") #### [`AccountNotifications.emailCustomerOnRefund`](#email-customer-on-refund) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#email-customer-on-refund "Direct link to email-customer-on-refund") Email customers when a payment is refunded. #### [`AccountNotifications.emailCustomerOnSuccess`](#email-customer-on-success) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#email-customer-on-success "Direct link to email-customer-on-success") Email customers on successful payment. #### [`AccountNotifications.emailCustomerOnSubscription`](#email-customer-on-subscription) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#email-customer-on-subscription "Direct link to email-customer-on-subscription") Email customers on successful subscription charge. #### [`AccountNotifications.emailAdminOnSuccess`](#email-admin-on-success) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#email-admin-on-success "Direct link to email-admin-on-success") Email account admins on every successful payment. #### [`AccountNotifications.emailAdminOnSubscription`](#email-admin-on-subscription) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#email-admin-on-subscription "Direct link to email-admin-on-subscription") Email account admins on every successful subscription charge. #### [`AccountNotifications.adminEmails`](#admin-emails) ● [`[String!]`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) list scalar[​](#admin-emails "Direct link to admin-emails") Admin email recipients for the toggles above. ### Member Of[​](#member-of "Direct link to Member Of") [`Account`](https://docs.monei.com/apis/graphql/types/objects/account/.md) object --- # AccountPaymentMethodsBizum \*\*Deprecated.\*\* Bizum payment method configuration for the account. No longer used. ``` type AccountPaymentMethodsBizum { enabled: Boolean @deprecated } ``` ### Fields[​](#fields "Direct link to Fields") #### [`AccountPaymentMethodsBizum.enabled`](#enabled) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) deprecated scalar[​](#enabled "Direct link to enabled") DEPRECATED Not used. Whether Bizum is enabled. ### Member Of[​](#member-of "Direct link to Member Of") [`AccountPaymentMethods`](https://docs.monei.com/apis/graphql/types/objects/account-payment-methods/.md) object --- # AccountPaymentMethodsCreditCard \*\*Deprecated.\*\* Card payment method configuration for the account. No longer used. ``` type AccountPaymentMethodsCreditCard { enabled: Boolean @deprecated preauthorization: Boolean @deprecated } ``` ### Fields[​](#fields "Direct link to Fields") #### [`AccountPaymentMethodsCreditCard.enabled`](#enabled) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) deprecated scalar[​](#enabled "Direct link to enabled") DEPRECATED Not used. Whether card payments are enabled. #### [`AccountPaymentMethodsCreditCard.preauthorization`](#preauthorization) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) deprecated scalar[​](#preauthorization "Direct link to preauthorization") DEPRECATED Not used. Whether pre-authorization (auth + capture) is enabled. ### Member Of[​](#member-of "Direct link to Member Of") [`AccountPaymentMethods`](https://docs.monei.com/apis/graphql/types/objects/account-payment-methods/.md) object --- # AccountPaymentMethods \*\*Deprecated.\*\* Per-payment-method configuration toggles for the account. No longer used; reachable only via the `@deprecated` `Account.paymentMethods` field. ``` type AccountPaymentMethods { CREDITCARD: AccountPaymentMethodsCreditCard @deprecated BIZUM: AccountPaymentMethodsBizum @deprecated } ``` ### Fields[​](#fields "Direct link to Fields") #### [`AccountPaymentMethods.CREDITCARD`](#creditcard) ● [`AccountPaymentMethodsCreditCard`](https://docs.monei.com/apis/graphql/types/objects/account-payment-methods-credit-card/.md) deprecated object[​](#creditcard "Direct link to creditcard") DEPRECATED Not used. Card configuration. #### [`AccountPaymentMethods.BIZUM`](#bizum) ● [`AccountPaymentMethodsBizum`](https://docs.monei.com/apis/graphql/types/objects/account-payment-methods-bizum/.md) deprecated object[​](#bizum "Direct link to bizum") DEPRECATED Not used. Bizum configuration. ### Member Of[​](#member-of "Direct link to Member Of") [`Account`](https://docs.monei.com/apis/graphql/types/objects/account/.md) object --- # AccountPayoutTerms Settlement (payout) terms applied to the account. ``` type AccountPayoutTerms { iban: String firstPeriod: Int period: Int reservePercent: Float suspended: Boolean } ``` ### Fields[​](#fields "Direct link to Fields") #### [`AccountPayoutTerms.iban`](#iban) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#iban "Direct link to iban") IBAN where settlements are deposited. #### [`AccountPayoutTerms.firstPeriod`](#first-period) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#first-period "Direct link to first-period") Days between account activation and the first settlement. #### [`AccountPayoutTerms.period`](#period) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#period "Direct link to period") Days between subsequent settlements. #### [`AccountPayoutTerms.reservePercent`](#reserve-percent) ● [`Float`](https://docs.monei.com/apis/graphql/types/scalars/float/.md) scalar[​](#reserve-percent "Direct link to reserve-percent") Percent of each settlement (0-100) withheld as reserve and released with the next settlement. #### [`AccountPayoutTerms.suspended`](#suspended) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#suspended "Direct link to suspended") Whether settlements are currently suspended. ### Member Of[​](#member-of "Direct link to Member Of") [`Account`](https://docs.monei.com/apis/graphql/types/objects/account/.md) object --- # AccountPublicBusinessDetails Public business information shown to customers (payment page, receipts, support contact). ``` type AccountPublicBusinessDetails { companyName: String website: String phone: String address: Address supportWebsite: String supportEmail: String supportPhone: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`AccountPublicBusinessDetails.companyName`](#company-name) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#company-name "Direct link to company-name") Trading name displayed to customers. #### [`AccountPublicBusinessDetails.website`](#website) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#website "Direct link to website") Public website URL. #### [`AccountPublicBusinessDetails.phone`](#phone) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#phone "Direct link to phone") Public contact phone in E.164 format, e.g. `+34666777888`. #### [`AccountPublicBusinessDetails.address`](#address) ● [`Address`](https://docs.monei.com/apis/graphql/types/objects/address/.md) object[​](#address "Direct link to address") Public postal address. #### [`AccountPublicBusinessDetails.supportWebsite`](#support-website) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#support-website "Direct link to support-website") Customer support website URL. #### [`AccountPublicBusinessDetails.supportEmail`](#support-email) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#support-email "Direct link to support-email") Customer support email. #### [`AccountPublicBusinessDetails.supportPhone`](#support-phone) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#support-phone "Direct link to support-phone") Customer support phone in E.164 format, e.g. `+34666777888`. ### Member Of[​](#member-of "Direct link to Member Of") [`Account`](https://docs.monei.com/apis/graphql/types/objects/account/.md) object --- # AccountSettlement Settlement batch grouping a merchant's transactions for one payout period, currency, and payment method. A `COMPLETED` settlement produces a single bank transfer to `iban`. ``` type AccountSettlement { accountId: ID! acquirerFees: Int! grossVolume: Int! iban: String id: ID! legalName: String netVolume: Int! payMethod: SettlementPayMethods periodEndAt: AWSTimestamp! periodStartAt: AWSTimestamp! releasedAmount: Int reservedAmount: Int scheduledAt: AWSTimestamp! status: SettlementStatus! settleGross: Boolean storeId: ID currency: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`AccountSettlement.accountId`](#account-id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#account-id "Direct link to account-id") Account ID the settlement belongs to. #### [`AccountSettlement.acquirerFees`](#acquirer-fees) ● [`Int!`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) non-null scalar[​](#acquirer-fees "Direct link to acquirer-fees") Acquirer/processing fees accrued for the period, in minor units. #### [`AccountSettlement.grossVolume`](#gross-volume) ● [`Int!`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) non-null scalar[​](#gross-volume "Direct link to gross-volume") Gross transaction volume for the period (before fees), in minor units. #### [`AccountSettlement.iban`](#iban) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#iban "Direct link to iban") Destination IBAN for the bank transfer. #### [`AccountSettlement.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") Settlement ID. #### [`AccountSettlement.legalName`](#legal-name) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#legal-name "Direct link to legal-name") Legal name of the account holder receiving the transfer. #### [`AccountSettlement.netVolume`](#net-volume) ● [`Int!`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) non-null scalar[​](#net-volume "Direct link to net-volume") Amount transferred to the merchant for the period, in minor units. While `PENDING`, this is the running balance (gross minus acquirer fees, plus carried-in reserve). On `COMPLETED`, this is the net amount sent to `iban` after the new reserve is withheld. #### [`AccountSettlement.payMethod`](#pay-method) ● [`SettlementPayMethods`](https://docs.monei.com/apis/graphql/types/enums/settlement-pay-methods/.md) enum[​](#pay-method "Direct link to pay-method") Payment method the batch covers. Each method settles in its own batch. #### [`AccountSettlement.periodEndAt`](#period-end-at) ● [`AWSTimestamp!`](https://docs.monei.com/apis/graphql/types/scalars/awstimestamp/.md) non-null scalar[​](#period-end-at "Direct link to period-end-at") End of the settlement period (timestamp of the last transaction included), as a unix timestamp (seconds). #### [`AccountSettlement.periodStartAt`](#period-start-at) ● [`AWSTimestamp!`](https://docs.monei.com/apis/graphql/types/scalars/awstimestamp/.md) non-null scalar[​](#period-start-at "Direct link to period-start-at") Start of the settlement period (timestamp of the first transaction included), as a unix timestamp (seconds). #### [`AccountSettlement.releasedAmount`](#released-amount) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#released-amount "Direct link to released-amount") Reserve released into this settlement from the previous period, in minor units. Populated on `COMPLETED`. #### [`AccountSettlement.reservedAmount`](#reserved-amount) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#reserved-amount "Direct link to reserved-amount") Reserve withheld from this settlement, in minor units. Stored as a negative value on `COMPLETED` settlements (amount removed from the transfer); appears as a positive carry-in balance on the next `PENDING` settlement. #### [`AccountSettlement.scheduledAt`](#scheduled-at) ● [`AWSTimestamp!`](https://docs.monei.com/apis/graphql/types/scalars/awstimestamp/.md) non-null scalar[​](#scheduled-at "Direct link to scheduled-at") Settlement evaluation date as a unix timestamp (seconds). For `PENDING` settlements: projected closing date (period start + period length, advanced past weekends). For `COMPLETED`/`SUSPENDED`: the day the batch was closed. #### [`AccountSettlement.status`](#status) ● [`SettlementStatus!`](https://docs.monei.com/apis/graphql/types/enums/settlement-status/.md) non-null enum[​](#status "Direct link to status") Settlement lifecycle status. #### [`AccountSettlement.settleGross`](#settle-gross) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#settle-gross "Direct link to settle-gross") When `true`, the merchant is paid the full `grossVolume` (acquirer fees not deducted from the transfer) and `reservePercent` is forced to 0. When `false`/null, the transfer is `netVolume` (gross minus acquirer fees, minus reserve). #### [`AccountSettlement.storeId`](#store-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#store-id "Direct link to store-id") Store ID when the settlement is scoped to a specific store under a multi-store account. #### [`AccountSettlement.currency`](#currency) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#currency "Direct link to currency") ISO 4217 currency code of the settlement. ### Returned By[​](#returned-by "Direct link to Returned By") [`accountSettlement`](https://docs.monei.com/apis/graphql/operations/queries/account-settlement/.md) query ### Member Of[​](#member-of "Direct link to Member Of") [`AccountSettlementsConnection`](https://docs.monei.com/apis/graphql/types/objects/account-settlements-connection/.md) object --- # AccountSettlementsConnection Paginated list of settlements. ``` type AccountSettlementsConnection { items: [AccountSettlement!]! total: Int! } ``` ### Fields[​](#fields "Direct link to Fields") #### [`AccountSettlementsConnection.items`](#items) ● [`[AccountSettlement!]!`](https://docs.monei.com/apis/graphql/types/objects/account-settlement/.md) non-null object[​](#items "Direct link to items") Settlements on the current page, ordered by `scheduledAt` descending. #### [`AccountSettlementsConnection.total`](#total) ● [`Int!`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) non-null scalar[​](#total "Direct link to total") Total settlements matching the filter (across all pages). ### Returned By[​](#returned-by "Direct link to Returned By") [`accountSettlements`](https://docs.monei.com/apis/graphql/operations/queries/account-settlements/.md) query --- # AccountTokenizationMethodsClickToPayItem Click to Pay configuration for the account. ``` type AccountTokenizationMethodsClickToPayItem { enabled: Boolean dpaId: ID } ``` ### Fields[​](#fields "Direct link to Fields") #### [`AccountTokenizationMethodsClickToPayItem.enabled`](#enabled) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#enabled "Direct link to enabled") Whether Click to Pay is enabled. #### [`AccountTokenizationMethodsClickToPayItem.dpaId`](#dpa-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#dpa-id "Direct link to dpa-id") Digital Payment Application (DPA) ID issued by the card networks. ### Member Of[​](#member-of "Direct link to Member Of") [`AccountTokenizationMethods`](https://docs.monei.com/apis/graphql/types/objects/account-tokenization-methods/.md) object --- # AccountTokenizationMethodsItem Configuration for a single tokenization wallet (Google Pay, Apple Pay). ``` type AccountTokenizationMethodsItem { enabled: Boolean } ``` ### Fields[​](#fields "Direct link to Fields") #### [`AccountTokenizationMethodsItem.enabled`](#enabled) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#enabled "Direct link to enabled") Whether this tokenization method is enabled. ### Member Of[​](#member-of "Direct link to Member Of") [`AccountTokenizationMethods`](https://docs.monei.com/apis/graphql/types/objects/account-tokenization-methods/.md) object --- # AccountTokenizationMethods Tokenization wallets configured for the account. ``` type AccountTokenizationMethods { googlePay: AccountTokenizationMethodsItem applePay: AccountTokenizationMethodsItem clickToPay: AccountTokenizationMethodsClickToPayItem } ``` ### Fields[​](#fields "Direct link to Fields") #### [`AccountTokenizationMethods.googlePay`](#google-pay) ● [`AccountTokenizationMethodsItem`](https://docs.monei.com/apis/graphql/types/objects/account-tokenization-methods-item/.md) object[​](#google-pay "Direct link to google-pay") Google Pay configuration. #### [`AccountTokenizationMethods.applePay`](#apple-pay) ● [`AccountTokenizationMethodsItem`](https://docs.monei.com/apis/graphql/types/objects/account-tokenization-methods-item/.md) object[​](#apple-pay "Direct link to apple-pay") Apple Pay configuration. #### [`AccountTokenizationMethods.clickToPay`](#click-to-pay) ● [`AccountTokenizationMethodsClickToPayItem`](https://docs.monei.com/apis/graphql/types/objects/account-tokenization-methods-click-to-pay-item/.md) object[​](#click-to-pay "Direct link to click-to-pay") Click to Pay configuration. ### Member Of[​](#member-of "Direct link to Member Of") [`Account`](https://docs.monei.com/apis/graphql/types/objects/account/.md) object --- # Account Merchant account. ``` type Account { id: ID! externalId: String masterAccountId: ID name: String paymentMethods: AccountPaymentMethods @deprecated publicBusinessDetails: AccountPublicBusinessDetails branding: AccountBranding defaultCurrency: Currencies @deprecated test: Boolean blocked: Boolean status: AccountStatus! reason: String @deprecated timezone: String adminEmail: String apiKey: String customDomain: String customDomainConfig: CustomDomainConfig payoutTerms: AccountPayoutTerms business: BusinessData representatives: [Representative!] iban: String bankAccount: BankAccount language: String tokenizationMethods: AccountTokenizationMethods notifications: AccountNotifications billingPlan: BillingPlans contract: AccountContract referralCode: String promoCode: String allowCreateApiKey: Boolean previewFeatures: [String!] notConfiguredReason: NotConfiguredReason @deprecated notConfiguredNote: String @deprecated userNote: String createdAt: String! approvedAt: String updatedAt: String rejectedReason: RejectedReason @deprecated rejectedNote: String @deprecated statusReason: StatusReason statusNote: String fraudDetectorThreshold: Int fraudDetectorEnabled: Boolean } ``` ### Fields[​](#fields "Direct link to Fields") #### [`Account.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") Account ID. #### [`Account.externalId`](#external-id) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#external-id "Direct link to external-id") Partner-assigned external ID for sub-accounts of a master account. #### [`Account.masterAccountId`](#master-account-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#master-account-id "Direct link to master-account-id") Master account ID when this account is a sub-account. #### [`Account.name`](#name) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#name "Direct link to name") Internal account name (not shown to customers). #### [`Account.paymentMethods`](#payment-methods) ● [`AccountPaymentMethods`](https://docs.monei.com/apis/graphql/types/objects/account-payment-methods/.md) deprecated object[​](#payment-methods "Direct link to payment-methods") DEPRECATED Not used. #### [`Account.publicBusinessDetails`](#public-business-details) ● [`AccountPublicBusinessDetails`](https://docs.monei.com/apis/graphql/types/objects/account-public-business-details/.md) object[​](#public-business-details "Direct link to public-business-details") Public business information shown to customers. #### [`Account.branding`](#branding) ● [`AccountBranding`](https://docs.monei.com/apis/graphql/types/objects/account-branding/.md) object[​](#branding "Direct link to branding") Visual branding applied to customer-facing surfaces. #### [`Account.defaultCurrency`](#default-currency) ● [`Currencies`](https://docs.monei.com/apis/graphql/types/enums/currencies/.md) deprecated enum[​](#default-currency "Direct link to default-currency") DEPRECATED Not used. #### [`Account.test`](#test) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#test "Direct link to test") Whether this is a test account. #### [`Account.blocked`](#blocked) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#blocked "Direct link to blocked") Whether the account is blocked from processing payments. #### [`Account.status`](#status) ● [`AccountStatus!`](https://docs.monei.com/apis/graphql/types/enums/account-status/.md) non-null enum[​](#status "Direct link to status") Lifecycle status. #### [`Account.reason`](#reason) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) deprecated scalar[​](#reason "Direct link to reason") DEPRECATED Use `statusReason`. #### [`Account.timezone`](#timezone) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#timezone "Direct link to timezone") Default IANA timezone (e.g. `Europe/Madrid`). #### [`Account.adminEmail`](#admin-email) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#admin-email "Direct link to admin-email") Primary admin email. #### [`Account.apiKey`](#api-key) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#api-key "Direct link to api-key") API key used to authenticate REST and GraphQL requests for this account. #### [`Account.customDomain`](#custom-domain) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#custom-domain "Direct link to custom-domain") Custom domain serving the hosted payment page. #### [`Account.customDomainConfig`](#custom-domain-config) ● [`CustomDomainConfig`](https://docs.monei.com/apis/graphql/types/objects/custom-domain-config/.md) object[​](#custom-domain-config "Direct link to custom-domain-config") Custom domain DNS and certificate state. #### [`Account.payoutTerms`](#payout-terms) ● [`AccountPayoutTerms`](https://docs.monei.com/apis/graphql/types/objects/account-payout-terms/.md) object[​](#payout-terms "Direct link to payout-terms") Settlement (payout) terms. #### [`Account.business`](#business) ● [`BusinessData`](https://docs.monei.com/apis/graphql/types/objects/business-data/.md) object[​](#business "Direct link to business") Legal and operational details of the business. #### [`Account.representatives`](#representatives) ● [`[Representative!]`](https://docs.monei.com/apis/graphql/types/objects/representative/.md) list object[​](#representatives "Direct link to representatives") Legal representatives and beneficial owners. #### [`Account.iban`](#iban) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#iban "Direct link to iban") IBAN where settlements are deposited. #### [`Account.bankAccount`](#bank-account) ● [`BankAccount`](https://docs.monei.com/apis/graphql/types/objects/bank-account/.md) object[​](#bank-account "Direct link to bank-account") Settlement bank account verification details. #### [`Account.language`](#language) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#language "Direct link to language") Preferred dashboard / communications language (BCP-47, e.g. `en`). #### [`Account.tokenizationMethods`](#tokenization-methods) ● [`AccountTokenizationMethods`](https://docs.monei.com/apis/graphql/types/objects/account-tokenization-methods/.md) object[​](#tokenization-methods "Direct link to tokenization-methods") Tokenization wallets configured for the account. #### [`Account.notifications`](#notifications) ● [`AccountNotifications`](https://docs.monei.com/apis/graphql/types/objects/account-notifications/.md) object[​](#notifications "Direct link to notifications") Email notification preferences. #### [`Account.billingPlan`](#billing-plan) ● [`BillingPlans`](https://docs.monei.com/apis/graphql/types/enums/billing-plans/.md) enum[​](#billing-plan "Direct link to billing-plan") Commercial billing plan. #### [`Account.contract`](#contract) ● [`AccountContract`](https://docs.monei.com/apis/graphql/types/objects/account-contract/.md) object[​](#contract "Direct link to contract") MONEI services contract envelope. #### [`Account.referralCode`](#referral-code) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#referral-code "Direct link to referral-code") Referral code shared by this merchant to invite others. #### [`Account.promoCode`](#promo-code) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#promo-code "Direct link to promo-code") Promo code applied to this account at signup. #### [`Account.allowCreateApiKey`](#allow-create-api-key) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#allow-create-api-key "Direct link to allow-create-api-key") Whether the merchant is allowed to create new API keys. #### [`Account.previewFeatures`](#preview-features) ● [`[String!]`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) list scalar[​](#preview-features "Direct link to preview-features") Preview feature flags enabled for this account. #### [`Account.notConfiguredReason`](#not-configured-reason) ● [`NotConfiguredReason`](https://docs.monei.com/apis/graphql/types/enums/not-configured-reason/.md) deprecated enum[​](#not-configured-reason "Direct link to not-configured-reason") DEPRECATED Use `statusReason`. #### [`Account.notConfiguredNote`](#not-configured-note) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) deprecated scalar[​](#not-configured-note "Direct link to not-configured-note") DEPRECATED Use `statusNote`. #### [`Account.userNote`](#user-note) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#user-note "Direct link to user-note") Free-form note provided by the merchant during onboarding. #### [`Account.createdAt`](#created-at) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#created-at "Direct link to created-at") Account creation date (ISO 8601). #### [`Account.approvedAt`](#approved-at) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#approved-at "Direct link to approved-at") Date the account was approved by compliance (ISO 8601). #### [`Account.updatedAt`](#updated-at) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#updated-at "Direct link to updated-at") Date the account was last updated (ISO 8601). #### [`Account.rejectedReason`](#rejected-reason) ● [`RejectedReason`](https://docs.monei.com/apis/graphql/types/enums/rejected-reason/.md) deprecated enum[​](#rejected-reason "Direct link to rejected-reason") DEPRECATED Use `statusReason`. #### [`Account.rejectedNote`](#rejected-note) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) deprecated scalar[​](#rejected-note "Direct link to rejected-note") DEPRECATED Use `statusNote`. #### [`Account.statusReason`](#status-reason) ● [`StatusReason`](https://docs.monei.com/apis/graphql/types/enums/status-reason/.md) enum[​](#status-reason "Direct link to status-reason") Reason for the current `status`. #### [`Account.statusNote`](#status-note) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#status-note "Direct link to status-note") Free-form note about the current `status`. #### [`Account.fraudDetectorThreshold`](#fraud-detector-threshold) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#fraud-detector-threshold "Direct link to fraud-detector-threshold") Fraud-detector score threshold (0-1000). Card payments scoring above this value are declined. `0` is lowest risk, `1000` highest. #### [`Account.fraudDetectorEnabled`](#fraud-detector-enabled) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#fraud-detector-enabled "Direct link to fraud-detector-enabled") Whether the fraud detector is enabled for the account. ### Returned By[​](#returned-by "Direct link to Returned By") [`account`](https://docs.monei.com/apis/graphql/operations/queries/account/.md) query ● [`connectMasterAccount`](https://docs.monei.com/apis/graphql/operations/mutations/connect-master-account/.md) mutation ● [`disableCustomDomain`](https://docs.monei.com/apis/graphql/operations/mutations/disable-custom-domain/.md) mutation ● [`disableTokenizationMethod`](https://docs.monei.com/apis/graphql/operations/mutations/disable-tokenization-method/.md) mutation ● [`disconnectMasterAccount`](https://docs.monei.com/apis/graphql/operations/mutations/disconnect-master-account/.md) mutation ● [`enableCustomDomain`](https://docs.monei.com/apis/graphql/operations/mutations/enable-custom-domain/.md) mutation ● [`enableTokenizationMethod`](https://docs.monei.com/apis/graphql/operations/mutations/enable-tokenization-method/.md) mutation ● [`requestAccountReview`](https://docs.monei.com/apis/graphql/operations/mutations/request-account-review/.md) mutation ● [`setupAccount`](https://docs.monei.com/apis/graphql/operations/mutations/setup-account/.md) mutation ● [`startCompanyLookup`](https://docs.monei.com/apis/graphql/operations/mutations/start-company-lookup/.md) mutation ● [`updateAccount`](https://docs.monei.com/apis/graphql/operations/mutations/update-account/.md) mutation ● [`verifyBusinessDetails`](https://docs.monei.com/apis/graphql/operations/mutations/verify-business-details/.md) mutation ● [`verifyCustomDomain`](https://docs.monei.com/apis/graphql/operations/mutations/verify-custom-domain/.md) mutation --- # ActivateAccount Result of `activateAccount`. ``` type ActivateAccount { contractUrl: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`ActivateAccount.contractUrl`](#contract-url) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#contract-url "Direct link to contract-url") URL the merchant opens to sign the MONEI services contract. ### Returned By[​](#returned-by "Direct link to Returned By") [`activateAccount`](https://docs.monei.com/apis/graphql/operations/mutations/activate-account/.md) mutation --- # Address Postal address. ``` type Address { city: String country: String line1: String line2: String zip: String state: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`Address.city`](#city) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#city "Direct link to city") City, district, suburb, town, or village. #### [`Address.country`](#country) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#country "Direct link to country") Two-letter country code (ISO 3166-1 alpha-2). #### [`Address.line1`](#line-1) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#line-1 "Direct link to line-1") Address line 1 (e.g., street, PO Box, or company name). #### [`Address.line2`](#line-2) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#line-2 "Direct link to line-2") Address line 2 (e.g., apartment, suite, unit, or building). #### [`Address.zip`](#zip) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#zip "Direct link to zip") ZIP or postal code. #### [`Address.state`](#state) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#state "Direct link to state") State, county, province, or region. ### Member Of[​](#member-of "Direct link to Member Of") [`AccountPublicBusinessDetails`](https://docs.monei.com/apis/graphql/types/objects/account-public-business-details/.md) object ● [`BusinessData`](https://docs.monei.com/apis/graphql/types/objects/business-data/.md) object ● [`ContactDetails`](https://docs.monei.com/apis/graphql/types/objects/contact-details/.md) object ● [`Identity`](https://docs.monei.com/apis/graphql/types/objects/identity/.md) object ● [`PaymentMethodSepa`](https://docs.monei.com/apis/graphql/types/objects/payment-method-sepa/.md) object ● [`Representative`](https://docs.monei.com/apis/graphql/types/objects/representative/.md) object ● [`Store`](https://docs.monei.com/apis/graphql/types/objects/store/.md) object --- # ApplePayCertificate An Apple Pay certificate for iOS app integration. ``` type ApplePayCertificate { id: ID! accountId: ID! expireAt: String active: Boolean! cert: String csr: String createdAt: String! updatedAt: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`ApplePayCertificate.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") Unique identifier of the certificate. #### [`ApplePayCertificate.accountId`](#account-id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#account-id "Direct link to account-id") The account ID this certificate belongs to. #### [`ApplePayCertificate.expireAt`](#expire-at) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#expire-at "Direct link to expire-at") The certificate expiration date in ISO 8601 format. Only present after activation. #### [`ApplePayCertificate.active`](#active) ● [`Boolean!`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) non-null scalar[​](#active "Direct link to active") Whether the certificate is active for payment processing. #### [`ApplePayCertificate.cert`](#cert) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#cert "Direct link to cert") The certificate body in base64 format. Only present after activation. #### [`ApplePayCertificate.csr`](#csr) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#csr "Direct link to csr") The Certificate Signing Request in base64 format. Only present before activation. Use this to create a certificate in Apple Developer Portal. #### [`ApplePayCertificate.createdAt`](#created-at) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#created-at "Direct link to created-at") The certificate creation date in ISO 8601 format. #### [`ApplePayCertificate.updatedAt`](#updated-at) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#updated-at "Direct link to updated-at") Last update timestamp in ISO 8601 format. ### Returned By[​](#returned-by "Direct link to Returned By") [`activateApplePayCert`](https://docs.monei.com/apis/graphql/operations/mutations/activate-apple-pay-cert/.md) mutation ● [`applePayCert`](https://docs.monei.com/apis/graphql/operations/queries/apple-pay-cert/.md) query ● [`applePayCerts`](https://docs.monei.com/apis/graphql/operations/queries/apple-pay-certs/.md) query ● [`createApplePayCert`](https://docs.monei.com/apis/graphql/operations/mutations/create-apple-pay-cert/.md) mutation ● [`updateApplePayCert`](https://docs.monei.com/apis/graphql/operations/mutations/update-apple-pay-cert/.md) mutation --- # AuthorizedUser Dashboard user authorized to access a MONEI merchant account. The same email may appear on multiple accounts with different access levels. ``` type AuthorizedUser { userEmail: String! id: ID! accessLevel: AuthorizedUserAccessLevel! storeId: ID pointOfSaleId: ID status: AuthorizedUserStatus! lastLoginAt: String createdAt: String updatedAt: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`AuthorizedUser.userEmail`](#user-email) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#user-email "Direct link to user-email") User's email address. Identifies the user within an account. #### [`AuthorizedUser.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") User ID. #### [`AuthorizedUser.accessLevel`](#access-level) ● [`AuthorizedUserAccessLevel!`](https://docs.monei.com/apis/graphql/types/enums/authorized-user-access-level/.md) non-null enum[​](#access-level "Direct link to access-level") Permission level on this account. #### [`AuthorizedUser.storeId`](#store-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#store-id "Direct link to store-id") Restrict the user to a single store. When set, the user only sees data for that store. #### [`AuthorizedUser.pointOfSaleId`](#point-of-sale-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#point-of-sale-id "Direct link to point-of-sale-id") Restrict the user to a single point of sale. When set, the user only sees data for that POS. #### [`AuthorizedUser.status`](#status) ● [`AuthorizedUserStatus!`](https://docs.monei.com/apis/graphql/types/enums/authorized-user-status/.md) non-null enum[​](#status "Direct link to status") Lifecycle status of the user's account. #### [`AuthorizedUser.lastLoginAt`](#last-login-at) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#last-login-at "Direct link to last-login-at") Last sign-in timestamp in ISO 8601 format. #### [`AuthorizedUser.createdAt`](#created-at) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#created-at "Direct link to created-at") Creation timestamp in ISO 8601 format. #### [`AuthorizedUser.updatedAt`](#updated-at) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#updated-at "Direct link to updated-at") Update timestamp in ISO 8601 format. ### Returned By[​](#returned-by "Direct link to Returned By") [`createAuthorizedUser`](https://docs.monei.com/apis/graphql/operations/mutations/create-authorized-user/.md) mutation ● [`updateAuthorizedUser`](https://docs.monei.com/apis/graphql/operations/mutations/update-authorized-user/.md) mutation ### Member Of[​](#member-of "Direct link to Member Of") [`AuthorizedUsersConnection`](https://docs.monei.com/apis/graphql/types/objects/authorized-users-connection/.md) object --- # AuthorizedUsersConnection Paginated list of authorized users on the current account. ``` type AuthorizedUsersConnection { items: [AuthorizedUser!]! nextToken: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`AuthorizedUsersConnection.items`](#items) ● [`[AuthorizedUser!]!`](https://docs.monei.com/apis/graphql/types/objects/authorized-user/.md) non-null object[​](#items "Direct link to items") Page of authorized users. #### [`AuthorizedUsersConnection.nextToken`](#next-token) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#next-token "Direct link to next-token") Token to fetch the next page. `null` when there are no more results. ### Returned By[​](#returned-by "Direct link to Returned By") [`authorizedUsers`](https://docs.monei.com/apis/graphql/operations/queries/authorized-users/.md) query --- # AvailablePaymentMethod Aggregate availability of a payment method across the account's providers. ``` type AvailablePaymentMethod { paymentMethod: PaymentMethods configured: Boolean enabled: Boolean } ``` ### Fields[​](#fields "Direct link to Fields") #### [`AvailablePaymentMethod.paymentMethod`](#payment-method) ● [`PaymentMethods`](https://docs.monei.com/apis/graphql/types/enums/payment-methods/.md) enum[​](#payment-method "Direct link to payment-method") Payment method. #### [`AvailablePaymentMethod.configured`](#configured) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#configured "Direct link to configured") Whether at least one provider is configured for this payment method. #### [`AvailablePaymentMethod.enabled`](#enabled) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#enabled "Direct link to enabled") Whether at least one provider is configured and enabled for this payment method. ### Returned By[​](#returned-by "Direct link to Returned By") [`availablePaymentMethods`](https://docs.monei.com/apis/graphql/operations/queries/available-payment-methods/.md) query --- # AvailableProcessor Availability of a specific processor for a payment method on the account. ``` type AvailableProcessor { paymentMethod: PaymentMethods processor: Processor configured: Boolean configurable: Boolean enabled: Boolean } ``` ### Fields[​](#fields "Direct link to Fields") #### [`AvailableProcessor.paymentMethod`](#payment-method) ● [`PaymentMethods`](https://docs.monei.com/apis/graphql/types/enums/payment-methods/.md) enum[​](#payment-method "Direct link to payment-method") Payment method this entry refers to. #### [`AvailableProcessor.processor`](#processor) ● [`Processor`](https://docs.monei.com/apis/graphql/types/enums/processor/.md) enum[​](#processor "Direct link to processor") Processor this entry refers to. #### [`AvailableProcessor.configured`](#configured) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#configured "Direct link to configured") Whether a provider exists for this payment-method/processor pair. #### [`AvailableProcessor.configurable`](#configurable) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#configurable "Direct link to configurable") Whether the merchant can configure this processor themselves. `false` for MONEI-managed processors. #### [`AvailableProcessor.enabled`](#enabled) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#enabled "Direct link to enabled") Whether a provider exists and is enabled for this payment-method/processor pair. ### Returned By[​](#returned-by "Direct link to Returned By") [`availableProcessors`](https://docs.monei.com/apis/graphql/operations/queries/available-processors/.md) query --- # BankAccount Bank account that receives the merchant's settlements. ``` type BankAccount { status: BankAccountStatus! iban: String currency: String ownerName: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`BankAccount.status`](#status) ● [`BankAccountStatus!`](https://docs.monei.com/apis/graphql/types/enums/bank-account-status/.md) non-null enum[​](#status "Direct link to status") Verification status. #### [`BankAccount.iban`](#iban) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#iban "Direct link to iban") IBAN of the bank account. #### [`BankAccount.currency`](#currency) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#currency "Direct link to currency") Bank account currency as ISO 4217 code. #### [`BankAccount.ownerName`](#owner-name) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#owner-name "Direct link to owner-name") Account holder name as registered with the bank. ### Member Of[​](#member-of "Direct link to Member Of") [`Account`](https://docs.monei.com/apis/graphql/types/objects/account/.md) object --- # Bank Bank shown in the bank-account verification picker. ``` type Bank { id: ID! name: String! logo: String! } ``` ### Fields[​](#fields "Direct link to Fields") #### [`Bank.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") Bank identifier used in `createBankSession`. #### [`Bank.name`](#name) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#name "Direct link to name") Bank display name. #### [`Bank.logo`](#logo) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#logo "Direct link to logo") URL of the bank logo. ### Returned By[​](#returned-by "Direct link to Returned By") [`banks`](https://docs.monei.com/apis/graphql/operations/queries/banks/.md) query --- # BlacklistItem A blacklist (block list) rule. Payments whose attributes match `value` for the given `type` are rejected before authorization. Rules are scoped to the account that created them; MONEI also maintains a global list applied on top. ``` type BlacklistItem { value: String! type: BlacklistItemType! note: String accountId: ID matches: Int validUntil: AWSTimestamp createdAt: String! updatedAt: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`BlacklistItem.value`](#value) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#value "Direct link to value") Value matched against incoming payments. Format depends on `type` (email address, E.164 phone, IPv4, card fingerprint, session fingerprint, ISO 3166-1 alpha-2 country code). #### [`BlacklistItem.type`](#type) ● [`BlacklistItemType!`](https://docs.monei.com/apis/graphql/types/enums/blacklist-item-type/.md) non-null enum[​](#type "Direct link to type") Payment attribute this rule matches against. #### [`BlacklistItem.note`](#note) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#note "Direct link to note") Free-form note explaining why the rule was added. #### [`BlacklistItem.accountId`](#account-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#account-id "Direct link to account-id") ID of the account that owns the rule. #### [`BlacklistItem.matches`](#matches) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#matches "Direct link to matches") Number of payment attempts this rule has blocked. #### [`BlacklistItem.validUntil`](#valid-until) ● [`AWSTimestamp`](https://docs.monei.com/apis/graphql/types/scalars/awstimestamp/.md) scalar[​](#valid-until "Direct link to valid-until") Manual expiration as a unix timestamp (seconds). The rule stops applying after this time. `null` means the rule never expires. #### [`BlacklistItem.createdAt`](#created-at) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#created-at "Direct link to created-at") Creation date in ISO 8601 format. #### [`BlacklistItem.updatedAt`](#updated-at) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#updated-at "Direct link to updated-at") Last update date in ISO 8601 format. ### Returned By[​](#returned-by "Direct link to Returned By") [`addBlacklistItem`](https://docs.monei.com/apis/graphql/operations/mutations/add-blacklist-item/.md) mutation ● [`blacklistItem`](https://docs.monei.com/apis/graphql/operations/queries/blacklist-item/.md) query ### Member Of[​](#member-of "Direct link to Member Of") [`BlacklistItemsConnection`](https://docs.monei.com/apis/graphql/types/objects/blacklist-items-connection/.md) object --- # BlacklistItemsConnection Paginated list of blacklist rules. ``` type BlacklistItemsConnection { items: [BlacklistItem!]! nextToken: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`BlacklistItemsConnection.items`](#items) ● [`[BlacklistItem!]!`](https://docs.monei.com/apis/graphql/types/objects/blacklist-item/.md) non-null object[​](#items "Direct link to items") Blacklist rules on the current page. #### [`BlacklistItemsConnection.nextToken`](#next-token) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#next-token "Direct link to next-token") Cursor for the next page. Pass back as `token` to fetch it. `null` when there are no more results. ### Returned By[​](#returned-by "Direct link to Returned By") [`blacklistItems`](https://docs.monei.com/apis/graphql/operations/queries/blacklist-items/.md) query --- # BusinessData Legal and operational details of the merchant business. ``` type BusinessData { country: String legalForm: LegalForm legalName: String companyName: String address: Address documentNumber: String email: String phone: String website: String monthlyVolume: Long confirmWebsite: Boolean industry: Industries mcc: String allowedMcc: [String!] servicesDescription: String confirmServicesDescription: Boolean status: BusinessStatus } ``` ### Fields[​](#fields "Direct link to Fields") #### [`BusinessData.country`](#country) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#country "Direct link to country") Country of incorporation as ISO 3166-1 alpha-2 code. #### [`BusinessData.legalForm`](#legal-form) ● [`LegalForm`](https://docs.monei.com/apis/graphql/types/enums/legal-form/.md) enum[​](#legal-form "Direct link to legal-form") Legal form of the entity. #### [`BusinessData.legalName`](#legal-name) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#legal-name "Direct link to legal-name") Registered legal name. #### [`BusinessData.companyName`](#company-name) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#company-name "Direct link to company-name") Trading name. May differ from `legalName`. #### [`BusinessData.address`](#address) ● [`Address`](https://docs.monei.com/apis/graphql/types/objects/address/.md) object[​](#address "Direct link to address") Registered postal address. #### [`BusinessData.documentNumber`](#document-number) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#document-number "Direct link to document-number") Company tax ID (regional examples: CIF/NIF for Spain, VAT ID for EU). #### [`BusinessData.email`](#email) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#email "Direct link to email") Business contact email. #### [`BusinessData.phone`](#phone) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#phone "Direct link to phone") Business contact phone in E.164 format, e.g. `+34666777888`. #### [`BusinessData.website`](#website) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#website "Direct link to website") Business website URL. #### [`BusinessData.monthlyVolume`](#monthly-volume) ● [`Long`](https://docs.monei.com/apis/graphql/types/scalars/long/.md) scalar[​](#monthly-volume "Direct link to monthly-volume") Expected monthly transaction volume in EUR. #### [`BusinessData.confirmWebsite`](#confirm-website) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#confirm-website "Direct link to confirm-website") Self-declaration that the website complies with MONEI's requirements. #### [`BusinessData.industry`](#industry) ● [`Industries`](https://docs.monei.com/apis/graphql/types/enums/industries/.md) enum[​](#industry "Direct link to industry") Industry category. #### [`BusinessData.mcc`](#mcc) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#mcc "Direct link to mcc") Merchant Category Code (ISO 18245:2003). #### [`BusinessData.allowedMcc`](#allowed-mcc) ● [`[String!]`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) list scalar[​](#allowed-mcc "Direct link to allowed-mcc") MCCs the account is allowed to use. #### [`BusinessData.servicesDescription`](#services-description) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#services-description "Direct link to services-description") Description of the products or services provided. #### [`BusinessData.confirmServicesDescription`](#confirm-services-description) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#confirm-services-description "Direct link to confirm-services-description") Self-declaration that the services description matches the website. #### [`BusinessData.status`](#status) ● [`BusinessStatus`](https://docs.monei.com/apis/graphql/types/enums/business-status/.md) enum[​](#status "Direct link to status") Public-registry verification status. ### Member Of[​](#member-of "Direct link to Member Of") [`Account`](https://docs.monei.com/apis/graphql/types/objects/account/.md) object --- # CallbackData Outcome of the most recent webhook delivery attempt. ``` type CallbackData { status: [CallbackStatus!]! statusCode: String statusMessage: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`CallbackData.status`](#status) ● [`[CallbackStatus!]!`](https://docs.monei.com/apis/graphql/types/enums/callback-status/.md) non-null enum[​](#status "Direct link to status") Delivery attempts in chronological order. #### [`CallbackData.statusCode`](#status-code) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#status-code "Direct link to status-code") HTTP status code from the receiver, as a string. #### [`CallbackData.statusMessage`](#status-message) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#status-message "Direct link to status-message") Response body or error message from the last attempt. ### Member Of[​](#member-of "Direct link to Member Of") [`Webhook`](https://docs.monei.com/apis/graphql/types/objects/webhook/.md) object --- # ChargeEventObject Charge snapshot embedded in a `ChargeEvent`. Captures the charge as it looked at the moment the event was emitted. ``` type ChargeEventObject { id: ID! accountId: ID! providerId: ID checkoutId: ID! providerInternalId: ID providerReferenceId: ID createdAt: AWSTimestamp updatedAt: AWSTimestamp amount: Int amountEUR: Int authorizationCode: String billingDetails: ContactDetails billingPlan: BillingPlans currency: String! customer: Customer description: String descriptor: String livemode: Boolean orderId: ID storeId: ID pointOfSaleId: ID sequenceId: ID subscriptionId: ID paymentMethod: PaymentMethod cancellationReason: CancellationReason lastRefundAmount: Int lastRefundReason: RefundReason refundedAmount: Int shippingDetails: ContactDetails shop: Shop status: ChargeStatus! statusCode: String statusMessage: String sessionDetails: SessionDetails traceDetails: TraceDetails pageOpenedAt: AWSTimestamp fraudDetectorScore: Int metadata: [KeyValueItem!] } ``` ### Fields[​](#fields "Direct link to Fields") #### [`ChargeEventObject.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") Unique identifier for the payment. #### [`ChargeEventObject.accountId`](#account-id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#account-id "Direct link to account-id") Merchant account that owns the charge. #### [`ChargeEventObject.providerId`](#provider-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#provider-id "Direct link to provider-id") Configured payment provider. #### [`ChargeEventObject.checkoutId`](#checkout-id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#checkout-id "Direct link to checkout-id") Underlying checkout/operation. #### [`ChargeEventObject.providerInternalId`](#provider-internal-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#provider-internal-id "Direct link to provider-internal-id") Provider-side transaction identifier. #### [`ChargeEventObject.providerReferenceId`](#provider-reference-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#provider-reference-id "Direct link to provider-reference-id") Provider-side reference. #### [`ChargeEventObject.createdAt`](#created-at) ● [`AWSTimestamp`](https://docs.monei.com/apis/graphql/types/scalars/awstimestamp/.md) scalar[​](#created-at "Direct link to created-at") Creation time as a unix timestamp (seconds). #### [`ChargeEventObject.updatedAt`](#updated-at) ● [`AWSTimestamp`](https://docs.monei.com/apis/graphql/types/scalars/awstimestamp/.md) scalar[​](#updated-at "Direct link to updated-at") Last update time as a unix timestamp (seconds). #### [`ChargeEventObject.amount`](#amount) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#amount "Direct link to amount") Amount intended to be collected by this payment. A positive integer representing how much to charge in the smallest currency unit (e.g., 100 cents to charge 1.00 USD). #### [`ChargeEventObject.amountEUR`](#amount-eur) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#amount-eur "Direct link to amount-eur") Amount converted to EUR, in cents. #### [`ChargeEventObject.authorizationCode`](#authorization-code) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#authorization-code "Direct link to authorization-code") Unique identifier provided by the bank performing transaction. #### [`ChargeEventObject.billingDetails`](#billing-details) ● [`ContactDetails`](https://docs.monei.com/apis/graphql/types/objects/contact-details/.md) object[​](#billing-details "Direct link to billing-details") Billing information associated with the payment method at the time of the transaction. #### [`ChargeEventObject.billingPlan`](#billing-plan) ● [`BillingPlans`](https://docs.monei.com/apis/graphql/types/enums/billing-plans/.md) enum[​](#billing-plan "Direct link to billing-plan") Merchant billing plan. #### [`ChargeEventObject.currency`](#currency) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#currency "Direct link to currency") Three-letter ISO 4217 currency code, in uppercase. Must be a supported currency. #### [`ChargeEventObject.customer`](#customer) ● [`Customer`](https://docs.monei.com/apis/graphql/types/objects/customer/.md) object[​](#customer "Direct link to customer") Customer identification. #### [`ChargeEventObject.description`](#description) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#description "Direct link to description") An arbitrary string attached to the payment. Often useful for displaying to users. #### [`ChargeEventObject.descriptor`](#descriptor) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#descriptor "Direct link to descriptor") Statement descriptor. #### [`ChargeEventObject.livemode`](#livemode) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#livemode "Direct link to livemode") `true` for live transactions, `false` for test mode. #### [`ChargeEventObject.orderId`](#order-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#order-id "Direct link to order-id") An order ID from your system. A unique identifier that can be used to reconcile the payment with your internal system. #### [`ChargeEventObject.storeId`](#store-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#store-id "Direct link to store-id") A unique identifier of the Store. If specified the payment is attached to this Store. #### [`ChargeEventObject.pointOfSaleId`](#point-of-sale-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#point-of-sale-id "Direct link to point-of-sale-id") A unique identifier of the Point of Sale. If specified the payment is attached to this Point of Sale. #### [`ChargeEventObject.sequenceId`](#sequence-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#sequence-id "Direct link to sequence-id") A permanent identifier that refers to the initial payment of a sequence of payments. #### [`ChargeEventObject.subscriptionId`](#subscription-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#subscription-id "Direct link to subscription-id") A unique identifier of the Subscription. If specified the payment is attached to this Subscription. #### [`ChargeEventObject.paymentMethod`](#payment-method) ● [`PaymentMethod`](https://docs.monei.com/apis/graphql/types/objects/payment-method/.md) object[​](#payment-method "Direct link to payment-method") Details about the payment method at the time of the transaction. #### [`ChargeEventObject.cancellationReason`](#cancellation-reason) ● [`CancellationReason`](https://docs.monei.com/apis/graphql/types/enums/cancellation-reason/.md) enum[​](#cancellation-reason "Direct link to cancellation-reason") The reason for canceling the Payment. #### [`ChargeEventObject.lastRefundAmount`](#last-refund-amount) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#last-refund-amount "Direct link to last-refund-amount") Amount in cents refunded in the last transaction. #### [`ChargeEventObject.lastRefundReason`](#last-refund-reason) ● [`RefundReason`](https://docs.monei.com/apis/graphql/types/enums/refund-reason/.md) enum[​](#last-refund-reason "Direct link to last-refund-reason") The reason of the last refund transaction. #### [`ChargeEventObject.refundedAmount`](#refunded-amount) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#refunded-amount "Direct link to refunded-amount") Amount in cents refunded (can be less than the amount attribute on the payment if a partial refund was issued). #### [`ChargeEventObject.shippingDetails`](#shipping-details) ● [`ContactDetails`](https://docs.monei.com/apis/graphql/types/objects/contact-details/.md) object[​](#shipping-details "Direct link to shipping-details") Shipping information associated with the payment. #### [`ChargeEventObject.shop`](#shop) ● [`Shop`](https://docs.monei.com/apis/graphql/types/objects/shop/.md) object[​](#shop "Direct link to shop") The information about the shop (used in hosted payment page). #### [`ChargeEventObject.status`](#status) ● [`ChargeStatus!`](https://docs.monei.com/apis/graphql/types/enums/charge-status/.md) non-null enum[​](#status "Direct link to status") Charge status at the moment the event was emitted. #### [`ChargeEventObject.statusCode`](#status-code) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#status-code "Direct link to status-code") Payment status code at the moment the event was emitted. #### [`ChargeEventObject.statusMessage`](#status-message) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#status-message "Direct link to status-message") Human readable status message, can be displayed to a user. #### [`ChargeEventObject.sessionDetails`](#session-details) ● [`SessionDetails`](https://docs.monei.com/apis/graphql/types/objects/session-details/.md) object[​](#session-details "Direct link to session-details") Information related to the browsing session of the user who initiated the payment. #### [`ChargeEventObject.traceDetails`](#trace-details) ● [`TraceDetails`](https://docs.monei.com/apis/graphql/types/objects/trace-details/.md) object[​](#trace-details "Direct link to trace-details") Origin metadata for the action that produced this event. #### [`ChargeEventObject.pageOpenedAt`](#page-opened-at) ● [`AWSTimestamp`](https://docs.monei.com/apis/graphql/types/scalars/awstimestamp/.md) scalar[​](#page-opened-at "Direct link to page-opened-at") When the customer first opened the hosted payment page, as a unix timestamp (seconds). #### [`ChargeEventObject.fraudDetectorScore`](#fraud-detector-score) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#fraud-detector-score "Direct link to fraud-detector-score") Fraud detector score, `0`-`1000`. #### [`ChargeEventObject.metadata`](#metadata) ● [`[KeyValueItem!]`](https://docs.monei.com/apis/graphql/types/objects/key-value-item/.md) list object[​](#metadata "Direct link to metadata") Merchant-defined metadata. ### Member Of[​](#member-of "Direct link to Member Of") [`ChargeEvent`](https://docs.monei.com/apis/graphql/types/objects/charge-event/.md) object --- # ChargeEvent Audit log entry for a charge state change (creation, status update, refund, etc.). ``` type ChargeEvent { id: ID! type: String! accountId: ID! livemode: Boolean objectId: ID! objectType: String! object: ChargeEventObject! createdAt: AWSTimestamp } ``` ### Fields[​](#fields "Direct link to Fields") #### [`ChargeEvent.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") Event identifier. #### [`ChargeEvent.type`](#type) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#type "Direct link to type") Event type, e.g. `payment.created`, `payment.succeeded`, `payment.refunded`. #### [`ChargeEvent.accountId`](#account-id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#account-id "Direct link to account-id") Merchant account that owns the event. #### [`ChargeEvent.livemode`](#livemode) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#livemode "Direct link to livemode") `true` if the event came from a live charge, `false` for test mode. #### [`ChargeEvent.objectId`](#object-id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#object-id "Direct link to object-id") Identifier of the related object. Currently always a charge id. #### [`ChargeEvent.objectType`](#object-type) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#object-type "Direct link to object-type") Type of the related object. Currently always `charge`. #### [`ChargeEvent.object`](#object) ● [`ChargeEventObject!`](https://docs.monei.com/apis/graphql/types/objects/charge-event-object/.md) non-null object[​](#object "Direct link to object") Snapshot of the charge at the time the event was emitted. #### [`ChargeEvent.createdAt`](#created-at) ● [`AWSTimestamp`](https://docs.monei.com/apis/graphql/types/scalars/awstimestamp/.md) scalar[​](#created-at "Direct link to created-at") Event time as a unix timestamp (seconds). ### Member Of[​](#member-of "Direct link to Member Of") [`ChargeEventsConnection`](https://docs.monei.com/apis/graphql/types/objects/charge-events-connection/.md) object --- # ChargeEventsConnection Paginated charge events result. ``` type ChargeEventsConnection { items: [ChargeEvent!]! total: Int! } ``` ### Fields[​](#fields "Direct link to Fields") #### [`ChargeEventsConnection.items`](#items) ● [`[ChargeEvent!]!`](https://docs.monei.com/apis/graphql/types/objects/charge-event/.md) non-null object[​](#items "Direct link to items") Events in the current page. #### [`ChargeEventsConnection.total`](#total) ● [`Int!`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) non-null scalar[​](#total "Direct link to total") Total number of events matching the filter. ### Returned By[​](#returned-by "Direct link to Returned By") [`chargeEvents`](https://docs.monei.com/apis/graphql/operations/queries/charge-events/.md) query ● [`events`](https://docs.monei.com/apis/graphql/operations/queries/events/.md) query --- # Charge Single payment record. The merchant API's primary resource. ``` type Charge { id: ID! accountId: ID! providerId: ID checkoutId: ID! providerInternalId: ID providerReferenceId: ID createdAt: AWSTimestamp updatedAt: AWSTimestamp amount: Int amountEUR: Int authorizationCode: String billingDetails: ContactDetails billingPlan: BillingPlans currency: String! customer: Customer description: String descriptor: String livemode: Boolean orderId: ID storeId: ID pointOfSaleId: ID terminalId: ID sequenceId: ID subscriptionId: ID paymentMethod: PaymentMethod cancellationReason: CancellationReason lastRefundAmount: Int lastRefundReason: RefundReason refundedAmount: Int shippingDetails: ContactDetails shop: Shop status: ChargeStatus! statusCode: String statusMessage: String sessionDetails: SessionDetails traceDetails: TraceDetails pageOpenedAt: AWSTimestamp metadata: [KeyValueItem!] fraudDetectorScore: Int callbackUrl: String completeUrl: String failUrl: String cancelUrl: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`Charge.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") Unique identifier for the payment. #### [`Charge.accountId`](#account-id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#account-id "Direct link to account-id") Merchant account that owns the charge. #### [`Charge.providerId`](#provider-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#provider-id "Direct link to provider-id") Configured payment provider that processed the charge. #### [`Charge.checkoutId`](#checkout-id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#checkout-id "Direct link to checkout-id") Underlying checkout/operation that produced this charge. #### [`Charge.providerInternalId`](#provider-internal-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#provider-internal-id "Direct link to provider-internal-id") Provider-side identifier of the transaction. #### [`Charge.providerReferenceId`](#provider-reference-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#provider-reference-id "Direct link to provider-reference-id") Provider-side reference (often shown to the cardholder, e.g. acquirer reference number). #### [`Charge.createdAt`](#created-at) ● [`AWSTimestamp`](https://docs.monei.com/apis/graphql/types/scalars/awstimestamp/.md) scalar[​](#created-at "Direct link to created-at") Creation time as a unix timestamp (seconds). #### [`Charge.updatedAt`](#updated-at) ● [`AWSTimestamp`](https://docs.monei.com/apis/graphql/types/scalars/awstimestamp/.md) scalar[​](#updated-at "Direct link to updated-at") Last update time as a unix timestamp (seconds). #### [`Charge.amount`](#amount) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#amount "Direct link to amount") Amount intended to be collected by this payment. A positive integer representing how much to charge in the smallest currency unit (e.g., 100 cents to charge 1.00 USD). #### [`Charge.amountEUR`](#amount-eur) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#amount-eur "Direct link to amount-eur") Amount converted to EUR, in cents. Used for cross-currency reporting. #### [`Charge.authorizationCode`](#authorization-code) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#authorization-code "Direct link to authorization-code") Unique identifier provided by the bank performing transaction. #### [`Charge.billingDetails`](#billing-details) ● [`ContactDetails`](https://docs.monei.com/apis/graphql/types/objects/contact-details/.md) object[​](#billing-details "Direct link to billing-details") Billing information associated with the payment method at the time of the transaction. #### [`Charge.billingPlan`](#billing-plan) ● [`BillingPlans`](https://docs.monei.com/apis/graphql/types/enums/billing-plans/.md) enum[​](#billing-plan "Direct link to billing-plan") Commercial billing plan of the merchant at the time of the charge. #### [`Charge.currency`](#currency) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#currency "Direct link to currency") Three-letter ISO 4217 currency code, in uppercase. Must be a supported currency. #### [`Charge.customer`](#customer) ● [`Customer`](https://docs.monei.com/apis/graphql/types/objects/customer/.md) object[​](#customer "Direct link to customer") Customer identification (email, name, phone). #### [`Charge.description`](#description) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#description "Direct link to description") An arbitrary string attached to the payment. Often useful for displaying to users. #### [`Charge.descriptor`](#descriptor) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#descriptor "Direct link to descriptor") Statement descriptor shown on the cardholder's bank statement (max 25 chars). #### [`Charge.livemode`](#livemode) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#livemode "Direct link to livemode") `true` for live transactions, `false` for test mode. #### [`Charge.orderId`](#order-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#order-id "Direct link to order-id") An order ID from your system. A unique identifier that can be used to reconcile the payment with your internal system. #### [`Charge.storeId`](#store-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#store-id "Direct link to store-id") A unique identifier of the Store. If specified the payment is attached to this Store. #### [`Charge.pointOfSaleId`](#point-of-sale-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#point-of-sale-id "Direct link to point-of-sale-id") A unique identifier of the Point of Sale. If specified the payment is attached to this Point of Sale. If there is a QR code attached to the same Point of Sale, this payment will be available by scanning the QR code. #### [`Charge.terminalId`](#terminal-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#terminal-id "Direct link to terminal-id") Physical terminal that processed the charge (card-present). #### [`Charge.sequenceId`](#sequence-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#sequence-id "Direct link to sequence-id") A permanent identifier that refers to the initial payment of a sequence of payments. This value needs to be sent in the path for `RECURRING` payments. #### [`Charge.subscriptionId`](#subscription-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#subscription-id "Direct link to subscription-id") A unique identifier of the Subscription. If specified the payment is attached to this Subscription. #### [`Charge.paymentMethod`](#payment-method) ● [`PaymentMethod`](https://docs.monei.com/apis/graphql/types/objects/payment-method/.md) object[​](#payment-method "Direct link to payment-method") Details about the payment method at the time of the transaction. #### [`Charge.cancellationReason`](#cancellation-reason) ● [`CancellationReason`](https://docs.monei.com/apis/graphql/types/enums/cancellation-reason/.md) enum[​](#cancellation-reason "Direct link to cancellation-reason") The reason for canceling the Payment. #### [`Charge.lastRefundAmount`](#last-refund-amount) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#last-refund-amount "Direct link to last-refund-amount") Amount in cents refunded in the last transaction. #### [`Charge.lastRefundReason`](#last-refund-reason) ● [`RefundReason`](https://docs.monei.com/apis/graphql/types/enums/refund-reason/.md) enum[​](#last-refund-reason "Direct link to last-refund-reason") The reason of the last refund transaction. #### [`Charge.refundedAmount`](#refunded-amount) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#refunded-amount "Direct link to refunded-amount") Amount in cents refunded (can be less than the amount attribute on the payment if a partial refund was issued). #### [`Charge.shippingDetails`](#shipping-details) ● [`ContactDetails`](https://docs.monei.com/apis/graphql/types/objects/contact-details/.md) object[​](#shipping-details "Direct link to shipping-details") Shipping information associated with the payment. #### [`Charge.shop`](#shop) ● [`Shop`](https://docs.monei.com/apis/graphql/types/objects/shop/.md) object[​](#shop "Direct link to shop") The information about the shop (used in hosted payment page). #### [`Charge.status`](#status) ● [`ChargeStatus!`](https://docs.monei.com/apis/graphql/types/enums/charge-status/.md) non-null enum[​](#status "Direct link to status") Current lifecycle state. #### [`Charge.statusCode`](#status-code) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#status-code "Direct link to status-code") Payment status code. `E000` succeeded; `E1xx` request errors; `E2xx` decline; `E5xx` system. #### [`Charge.statusMessage`](#status-message) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#status-message "Direct link to status-message") Human readable status message, can be displayed to a user. #### [`Charge.sessionDetails`](#session-details) ● [`SessionDetails`](https://docs.monei.com/apis/graphql/types/objects/session-details/.md) object[​](#session-details "Direct link to session-details") Information related to the browsing session of the user who initiated the payment. #### [`Charge.traceDetails`](#trace-details) ● [`TraceDetails`](https://docs.monei.com/apis/graphql/types/objects/trace-details/.md) object[​](#trace-details "Direct link to trace-details") Origin metadata for actions taken from the dashboard or internal tools. #### [`Charge.pageOpenedAt`](#page-opened-at) ● [`AWSTimestamp`](https://docs.monei.com/apis/graphql/types/scalars/awstimestamp/.md) scalar[​](#page-opened-at "Direct link to page-opened-at") When the customer first opened the hosted payment page, as a unix timestamp (seconds). #### [`Charge.metadata`](#metadata) ● [`[KeyValueItem!]`](https://docs.monei.com/apis/graphql/types/objects/key-value-item/.md) list object[​](#metadata "Direct link to metadata") Merchant-defined metadata (`KeyValueItem` list). #### [`Charge.fraudDetectorScore`](#fraud-detector-score) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#fraud-detector-score "Direct link to fraud-detector-score") Fraud detector score, `0` (low risk) to `1000` (high risk). #### [`Charge.callbackUrl`](#callback-url) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#callback-url "Direct link to callback-url") The URL to which a payment result should be sent asynchronously. #### [`Charge.completeUrl`](#complete-url) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#complete-url "Direct link to complete-url") The URL the customer will be directed to after transaction completed (successful or failed - except if `failUrl` is provided). #### [`Charge.failUrl`](#fail-url) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#fail-url "Direct link to fail-url") The URL the customer will be directed to after transaction has failed, instead of `completeUrl` (used in hosted payment page). This allows to provide two different URLs for successful and failed payments. #### [`Charge.cancelUrl`](#cancel-url) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#cancel-url "Direct link to cancel-url") The URL the customer will be directed to if they decide to cancel payment and return to your website (used in hosted payment page). ### Returned By[​](#returned-by "Direct link to Returned By") [`charge`](https://docs.monei.com/apis/graphql/operations/queries/charge/.md) query ### Member Of[​](#member-of "Direct link to Member Of") [`ChargesConnection`](https://docs.monei.com/apis/graphql/types/objects/charges-connection/.md) object --- # ChargesConnection Paginated charges result. ``` type ChargesConnection { items: [Charge!]! total: Int! } ``` ### Fields[​](#fields "Direct link to Fields") #### [`ChargesConnection.items`](#items) ● [`[Charge!]!`](https://docs.monei.com/apis/graphql/types/objects/charge/.md) non-null object[​](#items "Direct link to items") Charges in the current page. #### [`ChargesConnection.total`](#total) ● [`Int!`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) non-null scalar[​](#total "Direct link to total") Total number of charges matching the filter (across all pages). ### Returned By[​](#returned-by "Direct link to Returned By") [`charges`](https://docs.monei.com/apis/graphql/operations/queries/charges/.md) query --- # ChargesDateRangeKPI Time-bucketed KPI series for charges over a date range. ``` type ChargesDateRangeKPI { currency: Currencies! total: ChargesDateRangeKPITotal! data: [ChargesDateRangeKPIRow!]! } ``` ### Fields[​](#fields "Direct link to Fields") #### [`ChargesDateRangeKPI.currency`](#currency) ● [`Currencies!`](https://docs.monei.com/apis/graphql/types/enums/currencies/.md) non-null enum[​](#currency "Direct link to currency") ISO 4217 currency the KPI series is reported in. Echoes the `currency` argument passed to `chargesDateRangeKPI` (default `EUR`). #### [`ChargesDateRangeKPI.total`](#total) ● [`ChargesDateRangeKPITotal!`](https://docs.monei.com/apis/graphql/types/objects/charges-date-range-kpitotal/.md) non-null object[​](#total "Direct link to total") Aggregated totals across the date range. #### [`ChargesDateRangeKPI.data`](#data) ● [`[ChargesDateRangeKPIRow!]!`](https://docs.monei.com/apis/graphql/types/objects/charges-date-range-kpirow/.md) non-null object[​](#data "Direct link to data") One row per bucket as defined by `interval`. ### Returned By[​](#returned-by "Direct link to Returned By") [`chargesDateRangeKPI`](https://docs.monei.com/apis/graphql/operations/queries/charges-date-range-kpi/.md) query --- # ChargesDateRangeKPIRow One bucket of the KPI date histogram (per `interval`). Amounts in the smallest unit of the report currency. ``` type ChargesDateRangeKPIRow { timestamp: AWSTimestamp! succeededAmount: Long! succeededCount: Long! capturedAmount: Long! capturedCount: Long! directAmount: Long! directCount: Long! canceledAmount: Long! canceledCount: Long! refundedAmount: Long! refundedCount: Long! failedAmount: Long! failedCount: Long! cuSucceededAmount: Long! cuSucceededCount: Long! cuCapturedAmount: Long! cuCapturedCount: Long! cuDirectAmount: Long! cuDirectCount: Long! } ``` ### Fields[​](#fields "Direct link to Fields") #### [`ChargesDateRangeKPIRow.timestamp`](#timestamp) ● [`AWSTimestamp!`](https://docs.monei.com/apis/graphql/types/scalars/awstimestamp/.md) non-null scalar[​](#timestamp "Direct link to timestamp") Bucket start as a unix timestamp (seconds). #### [`ChargesDateRangeKPIRow.succeededAmount`](#succeeded-amount) ● [`Long!`](https://docs.monei.com/apis/graphql/types/scalars/long/.md) non-null scalar[​](#succeeded-amount "Direct link to succeeded-amount") Succeeded amount in this bucket. #### [`ChargesDateRangeKPIRow.succeededCount`](#succeeded-count) ● [`Long!`](https://docs.monei.com/apis/graphql/types/scalars/long/.md) non-null scalar[​](#succeeded-count "Direct link to succeeded-count") Succeeded count in this bucket. #### [`ChargesDateRangeKPIRow.capturedAmount`](#captured-amount) ● [`Long!`](https://docs.monei.com/apis/graphql/types/scalars/long/.md) non-null scalar[​](#captured-amount "Direct link to captured-amount") Captured amount in this bucket. #### [`ChargesDateRangeKPIRow.capturedCount`](#captured-count) ● [`Long!`](https://docs.monei.com/apis/graphql/types/scalars/long/.md) non-null scalar[​](#captured-count "Direct link to captured-count") Captured count in this bucket. #### [`ChargesDateRangeKPIRow.directAmount`](#direct-amount) ● [`Long!`](https://docs.monei.com/apis/graphql/types/scalars/long/.md) non-null scalar[​](#direct-amount "Direct link to direct-amount") Direct (`SALE`) amount in this bucket. #### [`ChargesDateRangeKPIRow.directCount`](#direct-count) ● [`Long!`](https://docs.monei.com/apis/graphql/types/scalars/long/.md) non-null scalar[​](#direct-count "Direct link to direct-count") Direct count in this bucket. #### [`ChargesDateRangeKPIRow.canceledAmount`](#canceled-amount) ● [`Long!`](https://docs.monei.com/apis/graphql/types/scalars/long/.md) non-null scalar[​](#canceled-amount "Direct link to canceled-amount") Canceled amount in this bucket. #### [`ChargesDateRangeKPIRow.canceledCount`](#canceled-count) ● [`Long!`](https://docs.monei.com/apis/graphql/types/scalars/long/.md) non-null scalar[​](#canceled-count "Direct link to canceled-count") Canceled count in this bucket. #### [`ChargesDateRangeKPIRow.refundedAmount`](#refunded-amount) ● [`Long!`](https://docs.monei.com/apis/graphql/types/scalars/long/.md) non-null scalar[​](#refunded-amount "Direct link to refunded-amount") Refunded amount in this bucket. #### [`ChargesDateRangeKPIRow.refundedCount`](#refunded-count) ● [`Long!`](https://docs.monei.com/apis/graphql/types/scalars/long/.md) non-null scalar[​](#refunded-count "Direct link to refunded-count") Refunded count in this bucket. #### [`ChargesDateRangeKPIRow.failedAmount`](#failed-amount) ● [`Long!`](https://docs.monei.com/apis/graphql/types/scalars/long/.md) non-null scalar[​](#failed-amount "Direct link to failed-amount") Failed amount in this bucket. #### [`ChargesDateRangeKPIRow.failedCount`](#failed-count) ● [`Long!`](https://docs.monei.com/apis/graphql/types/scalars/long/.md) non-null scalar[​](#failed-count "Direct link to failed-count") Failed count in this bucket. #### [`ChargesDateRangeKPIRow.cuSucceededAmount`](#cu-succeeded-amount) ● [`Long!`](https://docs.monei.com/apis/graphql/types/scalars/long/.md) non-null scalar[​](#cu-succeeded-amount "Direct link to cu-succeeded-amount") Cumulative succeeded amount up to and including this bucket. #### [`ChargesDateRangeKPIRow.cuSucceededCount`](#cu-succeeded-count) ● [`Long!`](https://docs.monei.com/apis/graphql/types/scalars/long/.md) non-null scalar[​](#cu-succeeded-count "Direct link to cu-succeeded-count") Cumulative succeeded count up to and including this bucket. #### [`ChargesDateRangeKPIRow.cuCapturedAmount`](#cu-captured-amount) ● [`Long!`](https://docs.monei.com/apis/graphql/types/scalars/long/.md) non-null scalar[​](#cu-captured-amount "Direct link to cu-captured-amount") Cumulative captured amount up to and including this bucket. #### [`ChargesDateRangeKPIRow.cuCapturedCount`](#cu-captured-count) ● [`Long!`](https://docs.monei.com/apis/graphql/types/scalars/long/.md) non-null scalar[​](#cu-captured-count "Direct link to cu-captured-count") Cumulative captured count up to and including this bucket. #### [`ChargesDateRangeKPIRow.cuDirectAmount`](#cu-direct-amount) ● [`Long!`](https://docs.monei.com/apis/graphql/types/scalars/long/.md) non-null scalar[​](#cu-direct-amount "Direct link to cu-direct-amount") Cumulative direct amount up to and including this bucket. #### [`ChargesDateRangeKPIRow.cuDirectCount`](#cu-direct-count) ● [`Long!`](https://docs.monei.com/apis/graphql/types/scalars/long/.md) non-null scalar[​](#cu-direct-count "Direct link to cu-direct-count") Cumulative direct count up to and including this bucket. ### Member Of[​](#member-of "Direct link to Member Of") [`ChargesDateRangeKPI`](https://docs.monei.com/apis/graphql/types/objects/charges-date-range-kpi/.md) object --- # ChargesDateRangeKPITotal Aggregated KPI totals for the requested date range. Amounts in the smallest unit of the report currency. ``` type ChargesDateRangeKPITotal { succeededAmount: Long! succeededCount: Long! capturedAmount: Long! capturedCount: Long! directAmount: Long! directCount: Long! canceledAmount: Long! canceledCount: Long! refundedAmount: Long! refundedCount: Long! failedAmount: Long! failedCount: Long! } ``` ### Fields[​](#fields "Direct link to Fields") #### [`ChargesDateRangeKPITotal.succeededAmount`](#succeeded-amount) ● [`Long!`](https://docs.monei.com/apis/graphql/types/scalars/long/.md) non-null scalar[​](#succeeded-amount "Direct link to succeeded-amount") Total amount of `SUCCEEDED` charges (authorized + captured + paid out). #### [`ChargesDateRangeKPITotal.succeededCount`](#succeeded-count) ● [`Long!`](https://docs.monei.com/apis/graphql/types/scalars/long/.md) non-null scalar[​](#succeeded-count "Direct link to succeeded-count") Number of `SUCCEEDED` charges. #### [`ChargesDateRangeKPITotal.capturedAmount`](#captured-amount) ● [`Long!`](https://docs.monei.com/apis/graphql/types/scalars/long/.md) non-null scalar[​](#captured-amount "Direct link to captured-amount") Total amount captured (`AUTH` flow charges that were captured). #### [`ChargesDateRangeKPITotal.capturedCount`](#captured-count) ● [`Long!`](https://docs.monei.com/apis/graphql/types/scalars/long/.md) non-null scalar[​](#captured-count "Direct link to captured-count") Number of captured charges. #### [`ChargesDateRangeKPITotal.directAmount`](#direct-amount) ● [`Long!`](https://docs.monei.com/apis/graphql/types/scalars/long/.md) non-null scalar[​](#direct-amount "Direct link to direct-amount") Total amount of direct (`SALE`) charges captured at authorization time. #### [`ChargesDateRangeKPITotal.directCount`](#direct-count) ● [`Long!`](https://docs.monei.com/apis/graphql/types/scalars/long/.md) non-null scalar[​](#direct-count "Direct link to direct-count") Number of direct charges. #### [`ChargesDateRangeKPITotal.canceledAmount`](#canceled-amount) ● [`Long!`](https://docs.monei.com/apis/graphql/types/scalars/long/.md) non-null scalar[​](#canceled-amount "Direct link to canceled-amount") Total amount of canceled charges. #### [`ChargesDateRangeKPITotal.canceledCount`](#canceled-count) ● [`Long!`](https://docs.monei.com/apis/graphql/types/scalars/long/.md) non-null scalar[​](#canceled-count "Direct link to canceled-count") Number of canceled charges. #### [`ChargesDateRangeKPITotal.refundedAmount`](#refunded-amount) ● [`Long!`](https://docs.monei.com/apis/graphql/types/scalars/long/.md) non-null scalar[​](#refunded-amount "Direct link to refunded-amount") Total refunded amount. #### [`ChargesDateRangeKPITotal.refundedCount`](#refunded-count) ● [`Long!`](https://docs.monei.com/apis/graphql/types/scalars/long/.md) non-null scalar[​](#refunded-count "Direct link to refunded-count") Number of refunds. #### [`ChargesDateRangeKPITotal.failedAmount`](#failed-amount) ● [`Long!`](https://docs.monei.com/apis/graphql/types/scalars/long/.md) non-null scalar[​](#failed-amount "Direct link to failed-amount") Total amount of failed charges. #### [`ChargesDateRangeKPITotal.failedCount`](#failed-count) ● [`Long!`](https://docs.monei.com/apis/graphql/types/scalars/long/.md) non-null scalar[​](#failed-count "Direct link to failed-count") Number of failed charges. ### Member Of[​](#member-of "Direct link to Member Of") [`ChargesDateRangeKPI`](https://docs.monei.com/apis/graphql/types/objects/charges-date-range-kpi/.md) object --- # ChargesExport Asynchronous charges export job. Created by `startExportCharges`; download via `downloadExport` once `status` is `COMPLETED`. ``` type ChargesExport { id: ID! status: ExportStatus! expireAt: AWSTimestamp statusCode: String statusMessage: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`ChargesExport.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") Export job ID. #### [`ChargesExport.status`](#status) ● [`ExportStatus!`](https://docs.monei.com/apis/graphql/types/enums/export-status/.md) non-null enum[​](#status "Direct link to status") Current job status. #### [`ChargesExport.expireAt`](#expire-at) ● [`AWSTimestamp`](https://docs.monei.com/apis/graphql/types/scalars/awstimestamp/.md) scalar[​](#expire-at "Direct link to expire-at") Unix timestamp (seconds) when the export record is automatically removed. #### [`ChargesExport.statusCode`](#status-code) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#status-code "Direct link to status-code") Failure code when `status` is `FAILED` (e.g. `F001` = no rows match the filter). #### [`ChargesExport.statusMessage`](#status-message) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#status-message "Direct link to status-message") Human-readable failure description when `status` is `FAILED`. ### Returned By[​](#returned-by "Direct link to Returned By") [`chargesExport`](https://docs.monei.com/apis/graphql/operations/queries/charges-export/.md) query ● [`startExportCharges`](https://docs.monei.com/apis/graphql/operations/mutations/start-export-charges/.md) mutation ### Member Of[​](#member-of "Direct link to Member Of") [`ChargesExportsConnection`](https://docs.monei.com/apis/graphql/types/objects/charges-exports-connection/.md) object --- # ChargesExportsConnection Paginated list of charges export jobs for the account. ``` type ChargesExportsConnection { items: [ChargesExport!]! nextToken: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`ChargesExportsConnection.items`](#items) ● [`[ChargesExport!]!`](https://docs.monei.com/apis/graphql/types/objects/charges-export/.md) non-null object[​](#items "Direct link to items") Charges export jobs. #### [`ChargesExportsConnection.nextToken`](#next-token) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#next-token "Direct link to next-token") Pagination cursor. Pass as `token` to fetch the next page; `null` on the last page. ### Returned By[​](#returned-by "Direct link to Returned By") [`chargesExports`](https://docs.monei.com/apis/graphql/operations/queries/charges-exports/.md) query --- # Code Permanent QR code that routes a customer to a Point of Sale checkout. Render the image via `https://secure.monei.com/codes/{id}/qr?format=png|svg&size=100..1000` (defaults: `png`, `500`). ``` type Code { id: ID! type: CodeTypes! enabled: Boolean pointOfSaleId: ID } ``` ### Fields[​](#fields "Direct link to Fields") #### [`Code.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") Code ID. 8-character alphanumeric string used in the QR URL `https://secure.monei.com/codes/{id}`. #### [`Code.type`](#type) ● [`CodeTypes!`](https://docs.monei.com/apis/graphql/types/enums/code-types/.md) non-null enum[​](#type "Direct link to type") Code type. #### [`Code.enabled`](#enabled) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#enabled "Direct link to enabled") Whether the code is active. Disabled codes reject scans. #### [`Code.pointOfSaleId`](#point-of-sale-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#point-of-sale-id "Direct link to point-of-sale-id") Point of Sale this code routes to. ### Returned By[​](#returned-by "Direct link to Returned By") [`code`](https://docs.monei.com/apis/graphql/operations/queries/code/.md) query ● [`codes`](https://docs.monei.com/apis/graphql/operations/queries/codes/.md) query ● [`registerCode`](https://docs.monei.com/apis/graphql/operations/mutations/register-code/.md) mutation ● [`updateCode`](https://docs.monei.com/apis/graphql/operations/mutations/update-code/.md) mutation --- # ConnectShopifyShopResult Result of `connectShopifyShop`. ``` type ConnectShopifyShopResult { redirectUrl: String! } ``` ### Fields[​](#fields "Direct link to Fields") #### [`ConnectShopifyShopResult.redirectUrl`](#redirect-url) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#redirect-url "Direct link to redirect-url") URL the dashboard redirects the merchant to after the shop is linked. Points to the Shopify Payments Partner gateway settings page (`https://{shop}/services/payments_partners/gateways/{shopifyApiKey}/settings`), where the merchant activates the gateway. ### Returned By[​](#returned-by "Direct link to Returned By") [`connectShopifyShop`](https://docs.monei.com/apis/graphql/operations/mutations/connect-shopify-shop/.md) mutation --- # ContactDetails Billing or shipping contact information associated with the payment method at the time of the transaction. ``` type ContactDetails { email: String name: String company: String phone: String address: Address taxId: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`ContactDetails.email`](#email) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#email "Direct link to email") The customer's email address. #### [`ContactDetails.name`](#name) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#name "Direct link to name") The customer's full name. #### [`ContactDetails.company`](#company) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#company "Direct link to company") Company name. #### [`ContactDetails.phone`](#phone) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#phone "Direct link to phone") The customer's phone number in E.164 format. #### [`ContactDetails.address`](#address) ● [`Address`](https://docs.monei.com/apis/graphql/types/objects/address/.md) object[​](#address "Direct link to address") Postal address. #### [`ContactDetails.taxId`](#tax-id) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#tax-id "Direct link to tax-id") Company tax ID. ### Member Of[​](#member-of "Direct link to Member Of") [`Charge`](https://docs.monei.com/apis/graphql/types/objects/charge/.md) object ● [`ChargeEventObject`](https://docs.monei.com/apis/graphql/types/objects/charge-event-object/.md) object ● [`Payment`](https://docs.monei.com/apis/graphql/types/objects/payment/.md) object ● [`Subscription`](https://docs.monei.com/apis/graphql/types/objects/subscription/.md) object ● [`SubscriptionEventObject`](https://docs.monei.com/apis/graphql/types/objects/subscription-event-object/.md) object --- # Countries Country reference data plus geolocation of the current caller. ``` type Countries { supportedCountries: [Country!]! currentCountry: Country currentCountryCode: String isSupported: Boolean! } ``` ### Fields[​](#fields "Direct link to Fields") #### [`Countries.supportedCountries`](#supported-countries) ● [`[Country!]!`](https://docs.monei.com/apis/graphql/types/objects/country/.md) non-null object[​](#supported-countries "Direct link to supported-countries") Countries supported by MONEI for merchant onboarding. #### [`Countries.currentCountry`](#current-country) ● [`Country`](https://docs.monei.com/apis/graphql/types/objects/country/.md) object[​](#current-country "Direct link to current-country") Country detected from the caller's IP. #### [`Countries.currentCountryCode`](#current-country-code) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#current-country-code "Direct link to current-country-code") ISO 3166-1 alpha-2 code detected from the caller's IP. #### [`Countries.isSupported`](#is-supported) ● [`Boolean!`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) non-null scalar[​](#is-supported "Direct link to is-supported") Whether `currentCountry` is in `supportedCountries`. ### Returned By[​](#returned-by "Direct link to Returned By") [`countries`](https://docs.monei.com/apis/graphql/operations/queries/countries/.md) query --- # CountryStore Mapping between a buyer country and a MONEI store. Used to route Shopify checkouts to different MONEI stores per country (multi-store setups). ``` type CountryStore { countryCode: String! storeId: String! } ``` ### Fields[​](#fields "Direct link to Fields") #### [`CountryStore.countryCode`](#country-code) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#country-code "Direct link to country-code") ISO 3166-1 alpha-2 country code, or `DEFAULT` to catch all unmapped countries. #### [`CountryStore.storeId`](#store-id) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#store-id "Direct link to store-id") MONEI store ID that handles checkouts for this country. ### Member Of[​](#member-of "Direct link to Member Of") [`ShopifyShopSettings`](https://docs.monei.com/apis/graphql/types/objects/shopify-shop-settings/.md) object ● [`ShopifyStore`](https://docs.monei.com/apis/graphql/types/objects/shopify-store/.md) object ● [`UpdateShopifyShopSettingsResult`](https://docs.monei.com/apis/graphql/types/objects/update-shopify-shop-settings-result/.md) object --- # Country Country reference data. ``` type Country { name: String! phoneCode: String! code: String! } ``` ### Fields[​](#fields "Direct link to Fields") #### [`Country.name`](#name) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#name "Direct link to name") Country English name. #### [`Country.phoneCode`](#phone-code) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#phone-code "Direct link to phone-code") International dialing prefix without leading `+` (e.g. `34`). #### [`Country.code`](#code) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#code "Direct link to code") ISO 3166-1 alpha-2 code (e.g. `ES`). ### Member Of[​](#member-of "Direct link to Member Of") [`Countries`](https://docs.monei.com/apis/graphql/types/objects/countries/.md) object --- # CustomDomainConfig Custom hosted-payment-page domain configuration. Two DNS records must be added in order: first `certificateDnsRecord` to validate the SSL certificate, then `distributionDnsRecord` to route traffic. ``` type CustomDomainConfig { domain: String certificateDnsRecord: DnsRecord distributionDnsRecord: DnsRecord status: CustomDomainStatus } ``` ### Fields[​](#fields "Direct link to Fields") #### [`CustomDomainConfig.domain`](#domain) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#domain "Direct link to domain") Merchant's custom domain (e.g. `pay.example.com`). Must be a subdomain of the verified business website. #### [`CustomDomainConfig.certificateDnsRecord`](#certificate-dns-record) ● [`DnsRecord`](https://docs.monei.com/apis/graphql/types/objects/dns-record/.md) object[​](#certificate-dns-record "Direct link to certificate-dns-record") DNS record that proves domain ownership and unlocks SSL issuance. Appears once the enable flow obtains the validation token. #### [`CustomDomainConfig.distributionDnsRecord`](#distribution-dns-record) ● [`DnsRecord`](https://docs.monei.com/apis/graphql/types/objects/dns-record/.md) object[​](#distribution-dns-record "Direct link to distribution-dns-record") CNAME pointing the custom domain at MONEI's hosted-payment-page edge. Appears only after the SSL certificate is issued. #### [`CustomDomainConfig.status`](#status) ● [`CustomDomainStatus`](https://docs.monei.com/apis/graphql/types/enums/custom-domain-status/.md) enum[​](#status "Direct link to status") Current lifecycle state. See `CustomDomainStatus`. ### Member Of[​](#member-of "Direct link to Member Of") [`Account`](https://docs.monei.com/apis/graphql/types/objects/account/.md) object --- # Customer The customer information associated with the payment or subscription. ``` type Customer { email: String name: String phone: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`Customer.email`](#email) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#email "Direct link to email") The customer's email address. #### [`Customer.name`](#name) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#name "Direct link to name") The customer's full name or business name. #### [`Customer.phone`](#phone) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#phone "Direct link to phone") The customer's phone number in E.164 format. ### Member Of[​](#member-of "Direct link to Member Of") [`Charge`](https://docs.monei.com/apis/graphql/types/objects/charge/.md) object ● [`ChargeEventObject`](https://docs.monei.com/apis/graphql/types/objects/charge-event-object/.md) object ● [`Payment`](https://docs.monei.com/apis/graphql/types/objects/payment/.md) object ● [`Subscription`](https://docs.monei.com/apis/graphql/types/objects/subscription/.md) object ● [`SubscriptionEventObject`](https://docs.monei.com/apis/graphql/types/objects/subscription-event-object/.md) object --- # DnsRecord DNS record the merchant must add at their DNS provider to validate or route the custom domain. ``` type DnsRecord { name: String type: String value: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`DnsRecord.name`](#name) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#name "Direct link to name") Fully qualified host/name of the record (e.g. `_a1b2c3.pay.example.com` or `pay.example.com`). #### [`DnsRecord.type`](#type) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#type "Direct link to type") Record type. Currently always `CNAME`. #### [`DnsRecord.value`](#value) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#value "Direct link to value") Value the record must point to (validation token or routing hostname). ### Member Of[​](#member-of "Direct link to Member Of") [`CustomDomainConfig`](https://docs.monei.com/apis/graphql/types/objects/custom-domain-config/.md) object --- # Document KYC/onboarding document attached to the merchant account. ``` type Document { id: ID! accountId: ID! name: String note: String type: DocumentType! status: DocumentStatus! statusCode: String statusMessage: String contentType: String createdAt: String! updatedAt: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`Document.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") Document ID. #### [`Document.accountId`](#account-id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#account-id "Direct link to account-id") ID of the account that owns the document. #### [`Document.name`](#name) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#name "Direct link to name") Original file name supplied at upload. #### [`Document.note`](#note) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#note "Direct link to note") Free-form note attached by the merchant. #### [`Document.type`](#type) ● [`DocumentType!`](https://docs.monei.com/apis/graphql/types/enums/document-type/.md) non-null enum[​](#type "Direct link to type") Document category. #### [`Document.status`](#status) ● [`DocumentStatus!`](https://docs.monei.com/apis/graphql/types/enums/document-status/.md) non-null enum[​](#status "Direct link to status") Current review status. #### [`Document.statusCode`](#status-code) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#status-code "Direct link to status-code") Machine-readable status code (e.g. `D004` for expired). #### [`Document.statusMessage`](#status-message) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#status-message "Direct link to status-message") Human-readable status detail (e.g. rejection reason). #### [`Document.contentType`](#content-type) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#content-type "Direct link to content-type") MIME type of the uploaded file. #### [`Document.createdAt`](#created-at) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#created-at "Direct link to created-at") ISO 8601 timestamp when the document was created. #### [`Document.updatedAt`](#updated-at) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#updated-at "Direct link to updated-at") ISO 8601 timestamp of the last update. ### Returned By[​](#returned-by "Direct link to Returned By") [`createDocument`](https://docs.monei.com/apis/graphql/operations/mutations/create-document/.md) mutation ● [`document`](https://docs.monei.com/apis/graphql/operations/queries/document/.md) query ### Member Of[​](#member-of "Direct link to Member Of") [`DocumentsConnection`](https://docs.monei.com/apis/graphql/types/objects/documents-connection/.md) object --- # DocumentsConnection Paginated list of `Document`. ``` type DocumentsConnection { items: [Document!]! nextToken: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`DocumentsConnection.items`](#items) ● [`[Document!]!`](https://docs.monei.com/apis/graphql/types/objects/document/.md) non-null object[​](#items "Direct link to items") Documents on the current page. #### [`DocumentsConnection.nextToken`](#next-token) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#next-token "Direct link to next-token") Token to pass as `token` on the next call to fetch the following page. `null` when there are no more results. ### Returned By[​](#returned-by "Direct link to Returned By") [`documents`](https://docs.monei.com/apis/graphql/operations/queries/documents/.md) query --- # DownloadFile Pre-signed URL for downloading a file from MONEI storage. ``` type DownloadFile { downloadUrl: String! expiresAt: AWSTimestamp! } ``` ### Fields[​](#fields "Direct link to Fields") #### [`DownloadFile.downloadUrl`](#download-url) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#download-url "Direct link to download-url") Pre-signed download URL. Valid for 15 minutes. #### [`DownloadFile.expiresAt`](#expires-at) ● [`AWSTimestamp!`](https://docs.monei.com/apis/graphql/types/scalars/awstimestamp/.md) non-null scalar[​](#expires-at "Direct link to expires-at") Unix timestamp when `downloadUrl` expires. ### Returned By[​](#returned-by "Direct link to Returned By") [`downloadAccountInvoice`](https://docs.monei.com/apis/graphql/operations/mutations/download-account-invoice/.md) mutation ● [`downloadContract`](https://docs.monei.com/apis/graphql/operations/mutations/download-contract/.md) mutation ● [`downloadDocument`](https://docs.monei.com/apis/graphql/operations/mutations/download-document/.md) mutation ● [`downloadExport`](https://docs.monei.com/apis/graphql/operations/mutations/download-export/.md) mutation ● [`downloadOperationsFile`](https://docs.monei.com/apis/graphql/operations/mutations/download-operations-file/.md) mutation --- # ExportCharges Result of a synchronous charges export. CSV is generated inline and made available for download. ``` type ExportCharges { downloadUrl: String! expiresAt: AWSTimestamp! } ``` ### Fields[​](#fields "Direct link to Fields") #### [`ExportCharges.downloadUrl`](#download-url) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#download-url "Direct link to download-url") Pre-signed URL to download the charges CSV. Valid for 15 minutes. #### [`ExportCharges.expiresAt`](#expires-at) ● [`AWSTimestamp!`](https://docs.monei.com/apis/graphql/types/scalars/awstimestamp/.md) non-null scalar[​](#expires-at "Direct link to expires-at") Unix timestamp (seconds) when `downloadUrl` expires. ### Returned By[​](#returned-by "Direct link to Returned By") [`exportCharges`](https://docs.monei.com/apis/graphql/operations/mutations/export-charges/.md) mutation --- # Identity Account representative undergoing KYC/identity verification. Stores personal data, document number, and the verification outcome produced by the hosted ID-verification session (see `createIdSession`). ``` type Identity { id: ID! firstName: String lastName: String address: Address email: String phone: String documentNumber: String status: IdVerificationStatus statusMessage: String statusCode: Int hasNoPublicActivity: Boolean nationality: String citizenship: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`Identity.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") Identity ID. #### [`Identity.firstName`](#first-name) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#first-name "Direct link to first-name") Representative's first name. #### [`Identity.lastName`](#last-name) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#last-name "Direct link to last-name") Representative's last name. #### [`Identity.address`](#address) ● [`Address`](https://docs.monei.com/apis/graphql/types/objects/address/.md) object[​](#address "Direct link to address") Representative's residential address. #### [`Identity.email`](#email) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#email "Direct link to email") Representative's email. #### [`Identity.phone`](#phone) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#phone "Direct link to phone") Representative's phone in E.164 format, e.g. `+34666777888`. #### [`Identity.documentNumber`](#document-number) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#document-number "Direct link to document-number") Tax/identity document number (e.g. NIF/CIF/NIE for Spain, passport number for non-EU residents). #### [`Identity.status`](#status) ● [`IdVerificationStatus`](https://docs.monei.com/apis/graphql/types/enums/id-verification-status/.md) enum[​](#status "Direct link to status") Current state of the hosted ID-verification flow. #### [`Identity.statusMessage`](#status-message) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#status-message "Direct link to status-message") Human-readable status detail (e.g. provider rejection reason). #### [`Identity.statusCode`](#status-code) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#status-code "Direct link to status-code") Provider-specific status code from the verification flow. #### [`Identity.hasNoPublicActivity`](#has-no-public-activity) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#has-no-public-activity "Direct link to has-no-public-activity") Representative self-declares no PEP/public-activity exposure. Required by AML rules in simplified onboarding. #### [`Identity.nationality`](#nationality) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#nationality "Direct link to nationality") Country of nationality (ISO 3166-1 alpha-2). Country of origin/birth; may differ from `citizenship` for dual citizens or naturalized citizens. #### [`Identity.citizenship`](#citizenship) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#citizenship "Direct link to citizenship") Country of legal citizenship (ISO 3166-1 alpha-2). May differ from `nationality` for dual citizens or naturalized citizens. ### Returned By[​](#returned-by "Direct link to Returned By") [`updateIdentity`](https://docs.monei.com/apis/graphql/operations/mutations/update-identity/.md) mutation --- # KeyValueItem Generic key/value pair (e.g. for metadata). ``` type KeyValueItem { key: String! value: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`KeyValueItem.key`](#key) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#key "Direct link to key") Key. #### [`KeyValueItem.value`](#value) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#value "Direct link to value") Value. May be `null`. ### Member Of[​](#member-of "Direct link to Member Of") [`Charge`](https://docs.monei.com/apis/graphql/types/objects/charge/.md) object ● [`ChargeEventObject`](https://docs.monei.com/apis/graphql/types/objects/charge-event-object/.md) object ● [`Payment`](https://docs.monei.com/apis/graphql/types/objects/payment/.md) object ● [`Store`](https://docs.monei.com/apis/graphql/types/objects/store/.md) object ● [`Subscription`](https://docs.monei.com/apis/graphql/types/objects/subscription/.md) object ● [`SubscriptionEventObject`](https://docs.monei.com/apis/graphql/types/objects/subscription-event-object/.md) object --- # LastPayment Outcome of the most recent recurring charge attempt for the subscription. ``` type LastPayment { id: ID! status: PaymentStatus! statusMessage: String statusCode: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`LastPayment.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") Unique identifier for the payment. #### [`LastPayment.status`](#status) ● [`PaymentStatus!`](https://docs.monei.com/apis/graphql/types/enums/payment-status/.md) non-null enum[​](#status "Direct link to status") The status of the payment. #### [`LastPayment.statusMessage`](#status-message) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#status-message "Direct link to status-message") Human readable description of the status. #### [`LastPayment.statusCode`](#status-code) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#status-code "Direct link to status-code") The status code of the payment. ### Member Of[​](#member-of "Direct link to Member Of") [`Subscription`](https://docs.monei.com/apis/graphql/types/objects/subscription/.md) object ● [`SubscriptionEventObject`](https://docs.monei.com/apis/graphql/types/objects/subscription-event-object/.md) object --- # MetadataConfigItem Schema for a single metadata field of a provider configuration. Describes the field; does not carry a value. ``` type MetadataConfigItem { key: String! type: MetadataItemType! label: String possibleValues: [String!] regex: String secret: Boolean required: Boolean default: String example: String internal: Boolean } ``` ### Fields[​](#fields "Direct link to Fields") #### [`MetadataConfigItem.key`](#key) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#key "Direct link to key") Metadata key. Dot-notation for nested fields, e.g. `petitionParams.merchantCode`. #### [`MetadataConfigItem.type`](#type) ● [`MetadataItemType!`](https://docs.monei.com/apis/graphql/types/enums/metadata-item-type/.md) non-null enum[​](#type "Direct link to type") Storage type. #### [`MetadataConfigItem.label`](#label) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#label "Direct link to label") Human-readable field label. #### [`MetadataConfigItem.possibleValues`](#possible-values) ● [`[String!]`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) list scalar[​](#possible-values "Direct link to possible-values") Allowed values when the field is constrained to an enum. #### [`MetadataConfigItem.regex`](#regex) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#regex "Direct link to regex") Regular expression the value must match. #### [`MetadataConfigItem.secret`](#secret) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#secret "Direct link to secret") Whether the value is sensitive (e.g. a secret/API key) and should be masked in UIs. #### [`MetadataConfigItem.required`](#required) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#required "Direct link to required") Whether the field is required. #### [`MetadataConfigItem.default`](#default) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#default "Direct link to default") Default value applied when the field is omitted. #### [`MetadataConfigItem.example`](#example) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#example "Direct link to example") Example value shown in form UIs. #### [`MetadataConfigItem.internal`](#internal) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#internal "Direct link to internal") Whether the field is internal-only (hidden from merchants). ### Member Of[​](#member-of "Direct link to Member Of") [`ProviderConfig`](https://docs.monei.com/apis/graphql/types/objects/provider-config/.md) object --- # MetadataItem Single metadata entry on a provider. Combines the field schema (see `MetadataConfigItem`) with the stored `value`. ``` type MetadataItem { key: String! value: String type: MetadataItemType! label: String possibleValues: [String!] regex: String secret: Boolean required: Boolean default: String example: String internal: Boolean } ``` ### Fields[​](#fields "Direct link to Fields") #### [`MetadataItem.key`](#key) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#key "Direct link to key") Metadata key. #### [`MetadataItem.value`](#value) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#value "Direct link to value") Stored value, serialized per `type`. `null` when unset or masked. #### [`MetadataItem.type`](#type) ● [`MetadataItemType!`](https://docs.monei.com/apis/graphql/types/enums/metadata-item-type/.md) non-null enum[​](#type "Direct link to type") Storage type. #### [`MetadataItem.label`](#label) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#label "Direct link to label") Human-readable field label. #### [`MetadataItem.possibleValues`](#possible-values) ● [`[String!]`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) list scalar[​](#possible-values "Direct link to possible-values") Allowed values when the field is constrained to an enum. #### [`MetadataItem.regex`](#regex) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#regex "Direct link to regex") Regular expression the value must match. #### [`MetadataItem.secret`](#secret) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#secret "Direct link to secret") Whether the value is sensitive and may be masked. #### [`MetadataItem.required`](#required) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#required "Direct link to required") Whether the field is required. #### [`MetadataItem.default`](#default) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#default "Direct link to default") Default value applied when the field is omitted. #### [`MetadataItem.example`](#example) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#example "Direct link to example") Example value shown in form UIs. #### [`MetadataItem.internal`](#internal) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#internal "Direct link to internal") Whether the field is internal-only (hidden from merchants). ### Member Of[​](#member-of "Direct link to Member Of") [`Provider`](https://docs.monei.com/apis/graphql/types/objects/provider/.md) object --- # NextAction If present, this property tells you what actions you need to take in order for your customer to fulfill a payment using the provided source. ``` type NextAction { type: NextActionTypes redirectUrl: String mustRedirect: Boolean } ``` ### Fields[​](#fields "Direct link to Fields") #### [`NextAction.type`](#type) ● [`NextActionTypes`](https://docs.monei.com/apis/graphql/types/enums/next-action-types/.md) enum[​](#type "Direct link to type") Action required to fulfil the payment with the current payment source. #### [`NextAction.redirectUrl`](#redirect-url) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#redirect-url "Direct link to redirect-url") Redirect your customer to this url to continue payment process. #### [`NextAction.mustRedirect`](#must-redirect) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#must-redirect "Direct link to must-redirect") If `true` you have to redirect your customer to the `redirectUrl` to continue payment process. ### Member Of[​](#member-of "Direct link to Member Of") [`Payment`](https://docs.monei.com/apis/graphql/types/objects/payment/.md) object --- # PayPalLink PayPal account-linking link. ``` type PayPalLink { link: String! } ``` ### Fields[​](#fields "Direct link to Fields") #### [`PayPalLink.link`](#link) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#link "Direct link to link") URL the merchant opens to connect their PayPal account. ### Returned By[​](#returned-by "Direct link to Returned By") [`createPayPalLink`](https://docs.monei.com/apis/graphql/operations/mutations/create-pay-pal-link/.md) mutation --- # PaymentAction Action a payment rule applies when its `conditions` match. Which fields are populated depends on `type`. ``` type PaymentAction { type: String! providerId: ID percentage: Int paymentMethod: String tokenizationMethod: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`PaymentAction.type`](#type) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#type "Direct link to type") Action to apply. One of `route_to`, `force_challenge`, `skip_challenge`, `decline` (card routing), or `hide`, `show` (payment-method visibility). #### [`PaymentAction.providerId`](#provider-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#provider-id "Direct link to provider-id") Provider to route to. Only used when `type` is `route_to`. #### [`PaymentAction.percentage`](#percentage) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#percentage "Direct link to percentage") Percentage of matching transactions to route to `providerId`, 1-100. Only used when `type` is `route_to`. Use to split traffic across providers. #### [`PaymentAction.paymentMethod`](#payment-method) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#payment-method "Direct link to payment-method") Payment method to hide/show (e.g. `card`, `bizum`, `paypal`). Only used when `type` is `hide` or `show`. #### [`PaymentAction.tokenizationMethod`](#tokenization-method) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#tokenization-method "Direct link to tokenization-method") Tokenization method to hide/show (e.g. `googlePay`, `applePay`, `clickToPay`). Only used when `type` is `hide` or `show`. ### Member Of[​](#member-of "Direct link to Member Of") [`PaymentRule`](https://docs.monei.com/apis/graphql/types/objects/payment-rule/.md) object --- # PaymentCondition Single condition evaluated against a transaction field (e.g. `amount`, `currency`, `paymentMethod.card.brand`, `sessionDetails.countryCode`). ``` type PaymentCondition { id: ID! field: String! operator: String! value: String valueSource: String! } ``` ### Fields[​](#fields "Direct link to Fields") #### [`PaymentCondition.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") Condition ID (UUID, stable across updates). #### [`PaymentCondition.field`](#field) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#field "Direct link to field") Dot-path of the transaction field to evaluate (e.g. `amount`, `paymentMethod.card.brand`). #### [`PaymentCondition.operator`](#operator) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#operator "Direct link to operator") Comparison operator. One of `=`, `!=`, `<`, `>`, `<=`, `>=`, `in`. #### [`PaymentCondition.value`](#value) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#value "Direct link to value") Value to compare against. For `in` use a comma-separated list. #### [`PaymentCondition.valueSource`](#value-source) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#value-source "Direct link to value-source") How `value` is interpreted: `value` (literal) or `field` (path to another transaction field). ### Member Of[​](#member-of "Direct link to Member Of") [`PaymentConditions`](https://docs.monei.com/apis/graphql/types/objects/payment-conditions/.md) object --- # PaymentConditions Set of conditions combined with AND/OR. The whole group must evaluate to true for the rule's `action` to apply. ``` type PaymentConditions { combinator: CombinatorType! rules: [PaymentCondition!]! } ``` ### Fields[​](#fields "Direct link to Fields") #### [`PaymentConditions.combinator`](#combinator) ● [`CombinatorType!`](https://docs.monei.com/apis/graphql/types/enums/combinator-type/.md) non-null enum[​](#combinator "Direct link to combinator") How conditions are combined. #### [`PaymentConditions.rules`](#rules) ● [`[PaymentCondition!]!`](https://docs.monei.com/apis/graphql/types/objects/payment-condition/.md) non-null object[​](#rules "Direct link to rules") Conditions in this group. ### Member Of[​](#member-of "Direct link to Member Of") [`PaymentRule`](https://docs.monei.com/apis/graphql/types/objects/payment-rule/.md) object --- # PaymentMethodBizum Details about the Bizum account used as payment method at the time of the transaction. ``` type PaymentMethodBizum { phoneNumber: String integrationType: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`PaymentMethodBizum.phoneNumber`](#phone-number) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#phone-number "Direct link to phone-number") Phone number in E.164 format used to pay with `bizum`. #### [`PaymentMethodBizum.integrationType`](#integration-type) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#integration-type "Direct link to integration-type") Integration mode used to capture the Bizum payment (e.g. redirect, embedded). ### Member Of[​](#member-of "Direct link to Member Of") [`PaymentMethod`](https://docs.monei.com/apis/graphql/types/objects/payment-method/.md) object --- # PaymentMethodCardPresent Card-present (in-person/terminal) payment data. ``` type PaymentMethodCardPresent { brand: CardBrand country: String type: CardType bin: String last4: String fingerprint: String cardholderName: String cardholderEmail: String expiration: Long verificationMethod: VerificationMethod } ``` ### Fields[​](#fields "Direct link to Fields") #### [`PaymentMethodCardPresent.brand`](#brand) ● [`CardBrand`](https://docs.monei.com/apis/graphql/types/enums/card-brand/.md) enum[​](#brand "Direct link to brand") Card network brand. #### [`PaymentMethodCardPresent.country`](#country) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#country "Direct link to country") Card issuing country as ISO 3166-1 alpha-2 code. #### [`PaymentMethodCardPresent.type`](#type) ● [`CardType`](https://docs.monei.com/apis/graphql/types/enums/card-type/.md) enum[​](#type "Direct link to type") Funding type (debit/credit). #### [`PaymentMethodCardPresent.bin`](#bin) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#bin "Direct link to bin") Bank Identification Number (first 6-8 digits of the PAN). #### [`PaymentMethodCardPresent.last4`](#last-4) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#last-4 "Direct link to last-4") Last 4 digits of the card number. #### [`PaymentMethodCardPresent.fingerprint`](#fingerprint) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#fingerprint "Direct link to fingerprint") Stable hash of the card number. #### [`PaymentMethodCardPresent.cardholderName`](#cardholder-name) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#cardholder-name "Direct link to cardholder-name") Cardholder name read from the card. #### [`PaymentMethodCardPresent.cardholderEmail`](#cardholder-email) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#cardholder-email "Direct link to cardholder-email") Email associated with the cardholder. #### [`PaymentMethodCardPresent.expiration`](#expiration) ● [`Long`](https://docs.monei.com/apis/graphql/types/scalars/long/.md) scalar[​](#expiration "Direct link to expiration") Card expiration as a unix timestamp. #### [`PaymentMethodCardPresent.verificationMethod`](#verification-method) ● [`VerificationMethod`](https://docs.monei.com/apis/graphql/types/enums/verification-method/.md) enum[​](#verification-method "Direct link to verification-method") Cardholder verification method used at the terminal. ### Member Of[​](#member-of "Direct link to Member Of") [`PaymentMethod`](https://docs.monei.com/apis/graphql/types/objects/payment-method/.md) object --- # PaymentMethodCard Details about the card used as payment method at the time of the transaction. ``` type PaymentMethodCard { brand: CardBrand country: String type: CardType threeDSecure: Boolean threeDSecureVersion: String threeDSecureFlow: ThreeDSecureFlow last4: String fingerprint: String cardholderName: String cardholderEmail: String expiration: AWSTimestamp bank: String tokenizationMethod: TokenizationMethods } ``` ### Fields[​](#fields "Direct link to Fields") #### [`PaymentMethodCard.brand`](#brand) ● [`CardBrand`](https://docs.monei.com/apis/graphql/types/enums/card-brand/.md) enum[​](#brand "Direct link to brand") Card brand. #### [`PaymentMethodCard.country`](#country) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#country "Direct link to country") Two-letter country code (ISO 3166-1 alpha-2) of the card issuer. #### [`PaymentMethodCard.type`](#type) ● [`CardType`](https://docs.monei.com/apis/graphql/types/enums/card-type/.md) enum[​](#type "Direct link to type") Card type `debit` or `credit`. #### [`PaymentMethodCard.threeDSecure`](#three-dsecure) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#three-dsecure "Direct link to three-dsecure") Whether this transaction used 3D Secure authentication. #### [`PaymentMethodCard.threeDSecureVersion`](#three-dsecure-version) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#three-dsecure-version "Direct link to three-dsecure-version") The protocol version of the 3DS challenge. #### [`PaymentMethodCard.threeDSecureFlow`](#three-dsecure-flow) ● [`ThreeDSecureFlow`](https://docs.monei.com/apis/graphql/types/enums/three-dsecure-flow/.md) enum[​](#three-dsecure-flow "Direct link to three-dsecure-flow") The flow used for 3DS authentication. #### [`PaymentMethodCard.last4`](#last-4) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#last-4 "Direct link to last-4") The last four digits of the card. #### [`PaymentMethodCard.fingerprint`](#fingerprint) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#fingerprint "Direct link to fingerprint") Unique identifier for the card number. Used to detect duplicate payment methods across customers. Not present for tokenized cards. #### [`PaymentMethodCard.cardholderName`](#cardholder-name) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#cardholder-name "Direct link to cardholder-name") The name of the cardholder. #### [`PaymentMethodCard.cardholderEmail`](#cardholder-email) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#cardholder-email "Direct link to cardholder-email") The email of the cardholder. #### [`PaymentMethodCard.expiration`](#expiration) ● [`AWSTimestamp`](https://docs.monei.com/apis/graphql/types/scalars/awstimestamp/.md) scalar[​](#expiration "Direct link to expiration") Time at which the card will expire. Measured in seconds since the Unix epoch. #### [`PaymentMethodCard.bank`](#bank) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#bank "Direct link to bank") Issuing bank name. #### [`PaymentMethodCard.tokenizationMethod`](#tokenization-method) ● [`TokenizationMethods`](https://docs.monei.com/apis/graphql/types/enums/tokenization-methods/.md) enum[​](#tokenization-method "Direct link to tokenization-method") The digital wallet used to tokenize the card. ### Member Of[​](#member-of "Direct link to Member Of") [`PaymentMethod`](https://docs.monei.com/apis/graphql/types/objects/payment-method/.md) object --- # PaymentMethodKlarna Details from Klarna order used as payment method at the time of the transaction. ``` type PaymentMethodKlarna { billingCategory: BillingCategoryKlarna authPaymentMethod: AuthPaymentMethodKlarna } ``` ### Fields[​](#fields "Direct link to Fields") #### [`PaymentMethodKlarna.billingCategory`](#billing-category) ● [`BillingCategoryKlarna`](https://docs.monei.com/apis/graphql/types/enums/billing-category-klarna/.md) enum[​](#billing-category "Direct link to billing-category") Klarna billing category for the payment. #### [`PaymentMethodKlarna.authPaymentMethod`](#auth-payment-method) ● [`AuthPaymentMethodKlarna`](https://docs.monei.com/apis/graphql/types/enums/auth-payment-method-klarna/.md) enum[​](#auth-payment-method "Direct link to auth-payment-method") Underlying funding source Klarna used to authorize the payment. ### Member Of[​](#member-of "Direct link to Member Of") [`PaymentMethod`](https://docs.monei.com/apis/graphql/types/objects/payment-method/.md) object --- # PaymentMethodMBWay Details from MBWay order used as payment method at the time of the transaction. ``` type PaymentMethodMBWay { phoneNumber: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`PaymentMethodMBWay.phoneNumber`](#phone-number) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#phone-number "Direct link to phone-number") Phone number in E.164 format used to pay with `mbway`. ### Member Of[​](#member-of "Direct link to Member Of") [`PaymentMethod`](https://docs.monei.com/apis/graphql/types/objects/payment-method/.md) object --- # PaymentMethodPaypal Details from Paypal order used as payment method at the time of the transaction. ``` type PaymentMethodPaypal { orderId: ID payerId: ID email: String name: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`PaymentMethodPaypal.orderId`](#order-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#order-id "Direct link to order-id") The Paypal's order ID. #### [`PaymentMethodPaypal.payerId`](#payer-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#payer-id "Direct link to payer-id") The Paypal's payer ID. #### [`PaymentMethodPaypal.email`](#email) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#email "Direct link to email") The Paypal's payer email. #### [`PaymentMethodPaypal.name`](#name) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#name "Direct link to name") The Paypal's payer name. ### Member Of[​](#member-of "Direct link to Member Of") [`PaymentMethod`](https://docs.monei.com/apis/graphql/types/objects/payment-method/.md) object --- # PaymentMethodSepa Details from SEPA order used as payment method at the time of the transaction. ``` type PaymentMethodSepa { accountholderAddress: Address accountholderEmail: String accountholderName: String countryCode: String bankAddress: String bankCode: String bankName: String bic: String last4: String fingerprint: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`PaymentMethodSepa.accountholderAddress`](#accountholder-address) ● [`Address`](https://docs.monei.com/apis/graphql/types/objects/address/.md) object[​](#accountholder-address "Direct link to accountholder-address") The address of the account holder. #### [`PaymentMethodSepa.accountholderEmail`](#accountholder-email) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#accountholder-email "Direct link to accountholder-email") The email of the account holder. #### [`PaymentMethodSepa.accountholderName`](#accountholder-name) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#accountholder-name "Direct link to accountholder-name") The name of the account holder. #### [`PaymentMethodSepa.countryCode`](#country-code) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#country-code "Direct link to country-code") The country code of the account holder. #### [`PaymentMethodSepa.bankAddress`](#bank-address) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#bank-address "Direct link to bank-address") The address of the bank. #### [`PaymentMethodSepa.bankCode`](#bank-code) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#bank-code "Direct link to bank-code") The code of the bank. #### [`PaymentMethodSepa.bankName`](#bank-name) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#bank-name "Direct link to bank-name") The name of the bank. #### [`PaymentMethodSepa.bic`](#bic) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#bic "Direct link to bic") The BIC of the bank. #### [`PaymentMethodSepa.last4`](#last-4) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#last-4 "Direct link to last-4") The last 4 digits of the IBAN. #### [`PaymentMethodSepa.fingerprint`](#fingerprint) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#fingerprint "Direct link to fingerprint") Unique identifier for the IBAN. Used to detect duplicate payment methods across customers. ### Member Of[​](#member-of "Direct link to Member Of") [`PaymentMethod`](https://docs.monei.com/apis/graphql/types/objects/payment-method/.md) object --- # PaymentMethodTrustly Details from Trustly order used as payment method at the time of the transaction. ``` type PaymentMethodTrustly { customerId: ID } ``` ### Fields[​](#fields "Direct link to Fields") #### [`PaymentMethodTrustly.customerId`](#customer-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#customer-id "Direct link to customer-id") The Trustly's customer ID. ### Member Of[​](#member-of "Direct link to Member Of") [`PaymentMethod`](https://docs.monei.com/apis/graphql/types/objects/payment-method/.md) object --- # PaymentMethod Details about the payment method at the time of the transaction. Only the sub-object matching `method` is populated. ``` type PaymentMethod { method: PaymentMethods card: PaymentMethodCard cardPresent: PaymentMethodCardPresent bizum: PaymentMethodBizum paypal: PaymentMethodPaypal trustly: PaymentMethodTrustly sepa: PaymentMethodSepa klarna: PaymentMethodKlarna mbway: PaymentMethodMBWay } ``` ### Fields[​](#fields "Direct link to Fields") #### [`PaymentMethod.method`](#method) ● [`PaymentMethods`](https://docs.monei.com/apis/graphql/types/enums/payment-methods/.md) enum[​](#method "Direct link to method") Payment method type. #### [`PaymentMethod.card`](#card) ● [`PaymentMethodCard`](https://docs.monei.com/apis/graphql/types/objects/payment-method-card/.md) object[​](#card "Direct link to card") Card details (when `method` is `card`). #### [`PaymentMethod.cardPresent`](#card-present) ● [`PaymentMethodCardPresent`](https://docs.monei.com/apis/graphql/types/objects/payment-method-card-present/.md) object[​](#card-present "Direct link to card-present") Card-present details (when `method` is `cardPresent`). #### [`PaymentMethod.bizum`](#bizum) ● [`PaymentMethodBizum`](https://docs.monei.com/apis/graphql/types/objects/payment-method-bizum/.md) object[​](#bizum "Direct link to bizum") Bizum details (when `method` is `bizum`). #### [`PaymentMethod.paypal`](#paypal) ● [`PaymentMethodPaypal`](https://docs.monei.com/apis/graphql/types/objects/payment-method-paypal/.md) object[​](#paypal "Direct link to paypal") PayPal details (when `method` is `paypal`). #### [`PaymentMethod.trustly`](#trustly) ● [`PaymentMethodTrustly`](https://docs.monei.com/apis/graphql/types/objects/payment-method-trustly/.md) object[​](#trustly "Direct link to trustly") Trustly details (when `method` is `trustly`). #### [`PaymentMethod.sepa`](#sepa) ● [`PaymentMethodSepa`](https://docs.monei.com/apis/graphql/types/objects/payment-method-sepa/.md) object[​](#sepa "Direct link to sepa") SEPA details (when `method` is `sepa`). #### [`PaymentMethod.klarna`](#klarna) ● [`PaymentMethodKlarna`](https://docs.monei.com/apis/graphql/types/objects/payment-method-klarna/.md) object[​](#klarna "Direct link to klarna") Klarna details (when `method` is `klarna`). #### [`PaymentMethod.mbway`](#mbway) ● [`PaymentMethodMBWay`](https://docs.monei.com/apis/graphql/types/objects/payment-method-mbway/.md) object[​](#mbway "Direct link to mbway") MB WAY details (when `method` is `mbway`). ### Member Of[​](#member-of "Direct link to Member Of") [`Charge`](https://docs.monei.com/apis/graphql/types/objects/charge/.md) object ● [`ChargeEventObject`](https://docs.monei.com/apis/graphql/types/objects/charge-event-object/.md) object ● [`Payment`](https://docs.monei.com/apis/graphql/types/objects/payment/.md) object ● [`Subscription`](https://docs.monei.com/apis/graphql/types/objects/subscription/.md) object ● [`SubscriptionEventObject`](https://docs.monei.com/apis/graphql/types/objects/subscription-event-object/.md) object --- # PaymentRule Conditional rule the merchant configures to control card routing or payment-method visibility. Rules are evaluated per transaction; when `conditions` match, `action` is applied. ``` type PaymentRule { id: ID! accountId: ID! ruleType: PaymentRuleType! conditions: PaymentConditions! action: PaymentAction! createdAt: AWSDateTime! updatedAt: AWSDateTime } ``` ### Fields[​](#fields "Direct link to Fields") #### [`PaymentRule.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") Rule ID. #### [`PaymentRule.accountId`](#account-id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#account-id "Direct link to account-id") Account that owns the rule. #### [`PaymentRule.ruleType`](#rule-type) ● [`PaymentRuleType!`](https://docs.monei.com/apis/graphql/types/enums/payment-rule-type/.md) non-null enum[​](#rule-type "Direct link to rule-type") What the rule controls (card routing / 3DS or payment-method visibility). #### [`PaymentRule.conditions`](#conditions) ● [`PaymentConditions!`](https://docs.monei.com/apis/graphql/types/objects/payment-conditions/.md) non-null object[​](#conditions "Direct link to conditions") Conditions that must be satisfied for `action` to apply. #### [`PaymentRule.action`](#action) ● [`PaymentAction!`](https://docs.monei.com/apis/graphql/types/objects/payment-action/.md) non-null object[​](#action "Direct link to action") Action to apply when `conditions` match. #### [`PaymentRule.createdAt`](#created-at) ● [`AWSDateTime!`](https://docs.monei.com/apis/graphql/types/scalars/awsdate-time/.md) non-null scalar[​](#created-at "Direct link to created-at") Creation timestamp. #### [`PaymentRule.updatedAt`](#updated-at) ● [`AWSDateTime`](https://docs.monei.com/apis/graphql/types/scalars/awsdate-time/.md) scalar[​](#updated-at "Direct link to updated-at") Last-update timestamp. ### Returned By[​](#returned-by "Direct link to Returned By") [`createPaymentRule`](https://docs.monei.com/apis/graphql/operations/mutations/create-payment-rule/.md) mutation ● [`paymentRule`](https://docs.monei.com/apis/graphql/operations/queries/payment-rule/.md) query ● [`updatePaymentRule`](https://docs.monei.com/apis/graphql/operations/mutations/update-payment-rule/.md) mutation ### Member Of[​](#member-of "Direct link to Member Of") [`PaymentRulesConnection`](https://docs.monei.com/apis/graphql/types/objects/payment-rules-connection/.md) object --- # PaymentRulesConnection Paginated list of payment rules. ``` type PaymentRulesConnection { items: [PaymentRule!]! nextToken: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`PaymentRulesConnection.items`](#items) ● [`[PaymentRule!]!`](https://docs.monei.com/apis/graphql/types/objects/payment-rule/.md) non-null object[​](#items "Direct link to items") Page of rules. #### [`PaymentRulesConnection.nextToken`](#next-token) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#next-token "Direct link to next-token") Token to fetch the next page, or `null` if this is the last page. ### Returned By[​](#returned-by "Direct link to Returned By") [`paymentRules`](https://docs.monei.com/apis/graphql/operations/queries/payment-rules/.md) query --- # Payment Payment returned from create/refund/capture/cancel and the send-link/receipt mutations. ``` type Payment { id: ID! amount: Int amountEUR: Int currency: String! orderId: ID storeId: ID pointOfSaleId: ID description: String descriptor: String accountId: ID! authorizationCode: String livemode: Boolean status: PaymentStatus! statusCode: String statusMessage: String customer: Customer sequenceId: ID subscriptionId: ID paymentToken: String paymentMethod: PaymentMethod shop: Shop billingDetails: ContactDetails shippingDetails: ContactDetails refundedAmount: Int lastRefundAmount: Int lastRefundReason: RefundReason cancellationReason: CancellationReason sessionDetails: SessionDetails traceDetails: TraceDetails nextAction: NextAction createdAt: AWSTimestamp updatedAt: AWSTimestamp pageOpenedAt: AWSTimestamp metadata: [KeyValueItem!] } ``` ### Fields[​](#fields "Direct link to Fields") #### [`Payment.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") Unique identifier for the payment. #### [`Payment.amount`](#amount) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#amount "Direct link to amount") Amount intended to be collected by this payment. A positive integer representing how much to charge in the smallest currency unit (e.g., 100 cents to charge 1.00 USD). #### [`Payment.amountEUR`](#amount-eur) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#amount-eur "Direct link to amount-eur") Amount converted to EUR, in cents. #### [`Payment.currency`](#currency) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#currency "Direct link to currency") Three-letter ISO 4217 currency code, in uppercase. Must be a supported currency. #### [`Payment.orderId`](#order-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#order-id "Direct link to order-id") An order ID from your system. A unique identifier that can be used to reconcile the payment with your internal system. #### [`Payment.storeId`](#store-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#store-id "Direct link to store-id") A unique identifier of the Store. If specified the payment is attached to this Store. #### [`Payment.pointOfSaleId`](#point-of-sale-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#point-of-sale-id "Direct link to point-of-sale-id") A unique identifier of the Point of Sale. If specified the payment is attached to this Point of Sale. #### [`Payment.description`](#description) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#description "Direct link to description") An arbitrary string attached to the payment. Often useful for displaying to users. #### [`Payment.descriptor`](#descriptor) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#descriptor "Direct link to descriptor") Statement descriptor (max 25 chars). #### [`Payment.accountId`](#account-id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#account-id "Direct link to account-id") Merchant account that owns the payment. #### [`Payment.authorizationCode`](#authorization-code) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#authorization-code "Direct link to authorization-code") Unique identifier provided by the bank performing transaction. #### [`Payment.livemode`](#livemode) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#livemode "Direct link to livemode") `true` for live, `false` for test mode. #### [`Payment.status`](#status) ● [`PaymentStatus!`](https://docs.monei.com/apis/graphql/types/enums/payment-status/.md) non-null enum[​](#status "Direct link to status") Current lifecycle state. #### [`Payment.statusCode`](#status-code) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#status-code "Direct link to status-code") Payment status code. `E000` succeeded; `E1xx` request errors; `E2xx` decline; `E5xx` system. #### [`Payment.statusMessage`](#status-message) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#status-message "Direct link to status-message") Human readable status message, can be displayed to a user. #### [`Payment.customer`](#customer) ● [`Customer`](https://docs.monei.com/apis/graphql/types/objects/customer/.md) object[​](#customer "Direct link to customer") Customer identification. #### [`Payment.sequenceId`](#sequence-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#sequence-id "Direct link to sequence-id") A permanent identifier that refers to the initial payment of a sequence of payments. #### [`Payment.subscriptionId`](#subscription-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#subscription-id "Direct link to subscription-id") A unique identifier of the Subscription. If specified the payment is attached to this Subscription. #### [`Payment.paymentToken`](#payment-token) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#payment-token "Direct link to payment-token") Single-use token clients pass to the hosted page or `confirmPayment` to complete the payment. #### [`Payment.paymentMethod`](#payment-method) ● [`PaymentMethod`](https://docs.monei.com/apis/graphql/types/objects/payment-method/.md) object[​](#payment-method "Direct link to payment-method") Details about the payment method at the time of the transaction. #### [`Payment.shop`](#shop) ● [`Shop`](https://docs.monei.com/apis/graphql/types/objects/shop/.md) object[​](#shop "Direct link to shop") The information about the shop (used in hosted payment page). #### [`Payment.billingDetails`](#billing-details) ● [`ContactDetails`](https://docs.monei.com/apis/graphql/types/objects/contact-details/.md) object[​](#billing-details "Direct link to billing-details") Billing information associated with the payment method at the time of the transaction. #### [`Payment.shippingDetails`](#shipping-details) ● [`ContactDetails`](https://docs.monei.com/apis/graphql/types/objects/contact-details/.md) object[​](#shipping-details "Direct link to shipping-details") Shipping information associated with the payment. #### [`Payment.refundedAmount`](#refunded-amount) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#refunded-amount "Direct link to refunded-amount") Amount in cents refunded (can be less than the amount attribute on the payment if a partial refund was issued). #### [`Payment.lastRefundAmount`](#last-refund-amount) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#last-refund-amount "Direct link to last-refund-amount") Amount in cents refunded in the last transaction. #### [`Payment.lastRefundReason`](#last-refund-reason) ● [`RefundReason`](https://docs.monei.com/apis/graphql/types/enums/refund-reason/.md) enum[​](#last-refund-reason "Direct link to last-refund-reason") The reason of the last refund transaction. #### [`Payment.cancellationReason`](#cancellation-reason) ● [`CancellationReason`](https://docs.monei.com/apis/graphql/types/enums/cancellation-reason/.md) enum[​](#cancellation-reason "Direct link to cancellation-reason") The reason for canceling the Payment. #### [`Payment.sessionDetails`](#session-details) ● [`SessionDetails`](https://docs.monei.com/apis/graphql/types/objects/session-details/.md) object[​](#session-details "Direct link to session-details") Information related to the browsing session of the user who initiated the payment. #### [`Payment.traceDetails`](#trace-details) ● [`TraceDetails`](https://docs.monei.com/apis/graphql/types/objects/trace-details/.md) object[​](#trace-details "Direct link to trace-details") Origin metadata for dashboard-initiated actions. #### [`Payment.nextAction`](#next-action) ● [`NextAction`](https://docs.monei.com/apis/graphql/types/objects/next-action/.md) object[​](#next-action "Direct link to next-action") If present, this property tells you what actions you need to take in order for your customer to fulfill a payment using the provided source. #### [`Payment.createdAt`](#created-at) ● [`AWSTimestamp`](https://docs.monei.com/apis/graphql/types/scalars/awstimestamp/.md) scalar[​](#created-at "Direct link to created-at") Creation time as a unix timestamp (seconds). #### [`Payment.updatedAt`](#updated-at) ● [`AWSTimestamp`](https://docs.monei.com/apis/graphql/types/scalars/awstimestamp/.md) scalar[​](#updated-at "Direct link to updated-at") Last update time as a unix timestamp (seconds). #### [`Payment.pageOpenedAt`](#page-opened-at) ● [`AWSTimestamp`](https://docs.monei.com/apis/graphql/types/scalars/awstimestamp/.md) scalar[​](#page-opened-at "Direct link to page-opened-at") When the customer first opened the hosted payment page, as a unix timestamp (seconds). #### [`Payment.metadata`](#metadata) ● [`[KeyValueItem!]`](https://docs.monei.com/apis/graphql/types/objects/key-value-item/.md) list object[​](#metadata "Direct link to metadata") Merchant-defined metadata. ### Returned By[​](#returned-by "Direct link to Returned By") [`activateSubscription`](https://docs.monei.com/apis/graphql/operations/mutations/activate-subscription/.md) mutation ● [`cancelPayment`](https://docs.monei.com/apis/graphql/operations/mutations/cancel-payment/.md) mutation ● [`capturePayment`](https://docs.monei.com/apis/graphql/operations/mutations/capture-payment/.md) mutation ● [`createPayment`](https://docs.monei.com/apis/graphql/operations/mutations/create-payment/.md) mutation ● [`refundPayment`](https://docs.monei.com/apis/graphql/operations/mutations/refund-payment/.md) mutation ● [`sendPaymentLink`](https://docs.monei.com/apis/graphql/operations/mutations/send-payment-link/.md) mutation ● [`sendPaymentReceipt`](https://docs.monei.com/apis/graphql/operations/mutations/send-payment-receipt/.md) mutation ● [`sendPaymentRequest`](https://docs.monei.com/apis/graphql/operations/mutations/send-payment-request/.md) mutation --- # Period Inclusive `[from, to]` time window covered by an account invoice. ``` type Period { from: Int! to: Int! } ``` ### Fields[​](#fields "Direct link to Fields") #### [`Period.from`](#from) ● [`Int!`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) non-null scalar[​](#from "Direct link to from") Period start as a unix timestamp (seconds). #### [`Period.to`](#to) ● [`Int!`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) non-null scalar[​](#to "Direct link to to") Period end as a unix timestamp (seconds). ### Member Of[​](#member-of "Direct link to Member Of") [`AccountInvoice`](https://docs.monei.com/apis/graphql/types/objects/account-invoice/.md) object --- # PointOfSale Point of sale belonging to an account, optionally scoped to a store. See `PointOfSaleType`. ``` type PointOfSale { id: ID! storeId: ID number: Int! name: String description: String manualAmount: Boolean requireEmail: Boolean requireTaxId: Boolean fixedAmount: Int includeQRCode: Boolean fixedCurrency: Currencies enabled: Boolean qrCodeText: String paymentCallbackUrl: String currentPaymentId: ID type: PointOfSaleType transactionType: TransactionTypes paymentMethods: [PaymentMethods!] deviceId: String pendingSetup: Boolean } ``` ### Fields[​](#fields "Direct link to Fields") #### [`PointOfSale.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") Unique POS identifier. #### [`PointOfSale.storeId`](#store-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#store-id "Direct link to store-id") Parent store ID. Null when the POS is attached directly to the account. #### [`PointOfSale.number`](#number) ● [`Int!`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) non-null scalar[​](#number "Direct link to number") Sequential POS number, unique within the parent store/account. #### [`PointOfSale.name`](#name) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#name "Direct link to name") Display name. #### [`PointOfSale.description`](#description) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#description "Direct link to description") Free-form description. #### [`PointOfSale.manualAmount`](#manual-amount) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#manual-amount "Direct link to manual-amount") Allow the operator to enter an arbitrary amount at charge time. Mutually exclusive with `fixedAmount`. #### [`PointOfSale.requireEmail`](#require-email) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#require-email "Direct link to require-email") Require the customer to provide an email address before paying. #### [`PointOfSale.requireTaxId`](#require-tax-id) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#require-tax-id "Direct link to require-tax-id") Require the customer to provide a tax ID before paying. #### [`PointOfSale.fixedAmount`](#fixed-amount) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#fixed-amount "Direct link to fixed-amount") Pre-set amount in the smallest currency unit (e.g. cents). Charged when `manualAmount` is false. #### [`PointOfSale.includeQRCode`](#include-qrcode) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#include-qrcode "Direct link to include-qrcode") Embed a QR code with the payment link in the customer's confirmation email. #### [`PointOfSale.fixedCurrency`](#fixed-currency) ● [`Currencies`](https://docs.monei.com/apis/graphql/types/enums/currencies/.md) enum[​](#fixed-currency "Direct link to fixed-currency") Currency for `fixedAmount`. ISO 4217. #### [`PointOfSale.enabled`](#enabled) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#enabled "Direct link to enabled") Whether the POS is enabled. Disabled POS reject new charges. #### [`PointOfSale.qrCodeText`](#qr-code-text) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#qr-code-text "Direct link to qr-code-text") Caption rendered next to the QR code in the confirmation email when `includeQRCode` is true. #### [`PointOfSale.paymentCallbackUrl`](#payment-callback-url) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#payment-callback-url "Direct link to payment-callback-url") Server-to-server HTTP POST URL invoked when a charge succeeds at this POS. #### [`PointOfSale.currentPaymentId`](#current-payment-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#current-payment-id "Direct link to current-payment-id") ID of the charge currently in progress at the terminal, if any. #### [`PointOfSale.type`](#type) ● [`PointOfSaleType`](https://docs.monei.com/apis/graphql/types/enums/point-of-sale-type/.md) enum[​](#type "Direct link to type") POS type. See `PointOfSaleType`. #### [`PointOfSale.transactionType`](#transaction-type) ● [`TransactionTypes`](https://docs.monei.com/apis/graphql/types/enums/transaction-types/.md) enum[​](#transaction-type "Direct link to transaction-type") Default transaction type for charges created at this POS. See `TransactionTypes`. #### [`PointOfSale.paymentMethods`](#payment-methods) ● [`[PaymentMethods!]`](https://docs.monei.com/apis/graphql/types/enums/payment-methods/.md) list enum[​](#payment-methods "Direct link to payment-methods") Allow-list of payment methods accepted at this POS. Null/empty means all methods enabled on the account. #### [`PointOfSale.deviceId`](#device-id) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#device-id "Direct link to device-id") Hardware device identifier set by the device-pairing flow. Required at creation when `type` is `MONEI_POD`. #### [`PointOfSale.pendingSetup`](#pending-setup) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#pending-setup "Direct link to pending-setup") Set to `true` on create for `MONEI_PAY` POS that have not yet been paired with a device. Cleared by the external device-pairing flow (not by `updatePointOfSale`). ### Returned By[​](#returned-by "Direct link to Returned By") [`createPointOfSale`](https://docs.monei.com/apis/graphql/operations/mutations/create-point-of-sale/.md) mutation ● [`pointOfSale`](https://docs.monei.com/apis/graphql/operations/queries/point-of-sale/.md) query ● [`updatePointOfSale`](https://docs.monei.com/apis/graphql/operations/mutations/update-point-of-sale/.md) mutation ### Member Of[​](#member-of "Direct link to Member Of") [`PointsOfSaleConnection`](https://docs.monei.com/apis/graphql/types/objects/points-of-sale-connection/.md) object --- # PointsOfSaleConnection Paginated list of points of sale. ``` type PointsOfSaleConnection { items: [PointOfSale!]! nextToken: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`PointsOfSaleConnection.items`](#items) ● [`[PointOfSale!]!`](https://docs.monei.com/apis/graphql/types/objects/point-of-sale/.md) non-null object[​](#items "Direct link to items") Page items. #### [`PointsOfSaleConnection.nextToken`](#next-token) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#next-token "Direct link to next-token") Cursor for the next page. Pass as `token` in the next request. Null when there are no more pages. ### Returned By[​](#returned-by "Direct link to Returned By") [`pointsOfSale`](https://docs.monei.com/apis/graphql/operations/queries/points-of-sale/.md) query --- # ProviderConfig Configuration template for a payment-method/processor pair. Describes which acquirers are valid and which metadata fields the provider expects. ``` type ProviderConfig { paymentMethod: PaymentMethods processor: Processor acquirers: [Acquirer!] metadataConfig: [MetadataConfigItem!] } ``` ### Fields[​](#fields "Direct link to Fields") #### [`ProviderConfig.paymentMethod`](#payment-method) ● [`PaymentMethods`](https://docs.monei.com/apis/graphql/types/enums/payment-methods/.md) enum[​](#payment-method "Direct link to payment-method") Payment method this configuration is for. #### [`ProviderConfig.processor`](#processor) ● [`Processor`](https://docs.monei.com/apis/graphql/types/enums/processor/.md) enum[​](#processor "Direct link to processor") Processor this configuration is for. #### [`ProviderConfig.acquirers`](#acquirers) ● [`[Acquirer!]`](https://docs.monei.com/apis/graphql/types/enums/acquirer/.md) list enum[​](#acquirers "Direct link to acquirers") Acquirers compatible with this processor. #### [`ProviderConfig.metadataConfig`](#metadata-config) ● [`[MetadataConfigItem!]`](https://docs.monei.com/apis/graphql/types/objects/metadata-config-item/.md) list object[​](#metadata-config "Direct link to metadata-config") Schema of provider-specific metadata fields (credentials, terminal/merchant IDs, feature flags, etc.). ### Returned By[​](#returned-by "Direct link to Returned By") [`providerConfig`](https://docs.monei.com/apis/graphql/operations/queries/provider-config/.md) query --- # ProviderRules Routing rules that gate when a provider is selected for a payment. ``` type ProviderRules { minAmount: Int maxAmount: Int shopNameLike: String descriptionLike: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`ProviderRules.minAmount`](#min-amount) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#min-amount "Direct link to min-amount") Minimum payment amount in the smallest currency unit (e.g. cents). #### [`ProviderRules.maxAmount`](#max-amount) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#max-amount "Direct link to max-amount") Maximum payment amount in the smallest currency unit. #### [`ProviderRules.shopNameLike`](#shop-name-like) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#shop-name-like "Direct link to shop-name-like") Regular expression matched against the shop name. #### [`ProviderRules.descriptionLike`](#description-like) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#description-like "Direct link to description-like") Regular expression matched against the payment description. ### Member Of[​](#member-of "Direct link to Member Of") [`Provider`](https://docs.monei.com/apis/graphql/types/objects/provider/.md) object --- # Provider Configured payment provider that routes a specific payment method to a processor/acquirer pair. ``` type Provider { id: ID! processor: Processor enabled: Boolean paymentMethod: PaymentMethods acquirer: Acquirer configurable: Boolean metadata: [MetadataItem!] rules: ProviderRules currencies: [Currencies!] } ``` ### Fields[​](#fields "Direct link to Fields") #### [`Provider.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") Provider ID. #### [`Provider.processor`](#processor) ● [`Processor`](https://docs.monei.com/apis/graphql/types/enums/processor/.md) enum[​](#processor "Direct link to processor") Processor (gateway) that authorizes transactions for this provider. #### [`Provider.enabled`](#enabled) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#enabled "Direct link to enabled") Whether the provider is currently active. Disabled providers are skipped during routing. #### [`Provider.paymentMethod`](#payment-method) ● [`PaymentMethods`](https://docs.monei.com/apis/graphql/types/enums/payment-methods/.md) enum[​](#payment-method "Direct link to payment-method") Payment method this provider handles. #### [`Provider.acquirer`](#acquirer) ● [`Acquirer`](https://docs.monei.com/apis/graphql/types/enums/acquirer/.md) enum[​](#acquirer "Direct link to acquirer") Acquiring entity that settles funds for this provider. #### [`Provider.configurable`](#configurable) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#configurable "Direct link to configurable") Whether the merchant can edit this provider's credentials. `false` for MONEI-managed providers. #### [`Provider.metadata`](#metadata) ● [`[MetadataItem!]`](https://docs.monei.com/apis/graphql/types/objects/metadata-item/.md) list object[​](#metadata "Direct link to metadata") Provider-specific configuration values (credentials, terminal/merchant IDs, feature flags, etc.). Schema is described by `providerConfig`. #### [`Provider.rules`](#rules) ● [`ProviderRules`](https://docs.monei.com/apis/graphql/types/objects/provider-rules/.md) object[​](#rules "Direct link to rules") Routing rules controlling when this provider is selected. #### [`Provider.currencies`](#currencies) ● [`[Currencies!]`](https://docs.monei.com/apis/graphql/types/enums/currencies/.md) list enum[​](#currencies "Direct link to currencies") Currencies this provider can process given its current configuration. ### Returned By[​](#returned-by "Direct link to Returned By") [`createProvider`](https://docs.monei.com/apis/graphql/operations/mutations/create-provider/.md) mutation ● [`deleteProvider`](https://docs.monei.com/apis/graphql/operations/mutations/delete-provider/.md) mutation ● [`enableProvider`](https://docs.monei.com/apis/graphql/operations/mutations/enable-provider/.md) mutation ● [`provider`](https://docs.monei.com/apis/graphql/operations/queries/provider/.md) query ● [`providers`](https://docs.monei.com/apis/graphql/operations/queries/providers/.md) query ● [`setDefaultCardProvider`](https://docs.monei.com/apis/graphql/operations/mutations/set-default-card-provider/.md) mutation ● [`updateProvider`](https://docs.monei.com/apis/graphql/operations/mutations/update-provider/.md) mutation --- # Redirect Generic redirect target. ``` type Redirect { redirectUrl: String! } ``` ### Fields[​](#fields "Direct link to Fields") #### [`Redirect.redirectUrl`](#redirect-url) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#redirect-url "Direct link to redirect-url") Absolute URL the client should redirect to. ### Returned By[​](#returned-by "Direct link to Returned By") [`notificationsPortalUrl`](https://docs.monei.com/apis/graphql/operations/queries/notifications-portal-url/.md) query --- # RegisterApplePayDomain A successful response. ``` type RegisterApplePayDomain { success: Boolean! } ``` ### Fields[​](#fields "Direct link to Fields") #### [`RegisterApplePayDomain.success`](#success) ● [`Boolean!`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) non-null scalar[​](#success "Direct link to success") `true` when Apple accepted the domain registration. ### Returned By[​](#returned-by "Direct link to Returned By") [`registerApplePayDomain`](https://docs.monei.com/apis/graphql/operations/mutations/register-apple-pay-domain/.md) mutation --- # RepresentativeData Legal representative of a merchant account, used for KYC/AML compliance. Includes the primary representative (signatory) and any additional ultimate beneficial owners (UBOs). Full personal data (name, document, verification status) is exposed via the `Identity` type, looked up by `identityId`. ``` type RepresentativeData { id: ID accountId: ID identityId: ID main: Boolean stocksPercentage: Float } ``` ### Fields[​](#fields "Direct link to Fields") #### [`RepresentativeData.id`](#id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#id "Direct link to id") Representative ID. #### [`RepresentativeData.accountId`](#account-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#account-id "Direct link to account-id") Merchant account this representative belongs to. #### [`RepresentativeData.identityId`](#identity-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#identity-id "Direct link to identity-id") Identity record holding the representative's personal data and verification state. #### [`RepresentativeData.main`](#main) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#main "Direct link to main") Whether this is the primary (signatory) representative for the account. At most one per account. #### [`RepresentativeData.stocksPercentage`](#stocks-percentage) ● [`Float`](https://docs.monei.com/apis/graphql/types/scalars/float/.md) scalar[​](#stocks-percentage "Direct link to stocks-percentage") Ownership stake in the business as a percentage (0-100). `100` for individuals/freelancers. ### Returned By[​](#returned-by "Direct link to Returned By") [`representative`](https://docs.monei.com/apis/graphql/operations/queries/representative/.md) query ### Member Of[​](#member-of "Direct link to Member Of") [`RepresentativesConnection`](https://docs.monei.com/apis/graphql/types/objects/representatives-connection/.md) object --- # Representative Legal representative or beneficial owner of the merchant business. ``` type Representative { firstName: String lastName: String address: Address email: String phone: String documentNumber: String stocksPercentage: Float status: IdVerificationStatus statusMessage: String statusCode: Int hasNoPublicActivity: Boolean nationality: String citizenship: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`Representative.firstName`](#first-name) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#first-name "Direct link to first-name") First name. #### [`Representative.lastName`](#last-name) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#last-name "Direct link to last-name") Last name. #### [`Representative.address`](#address) ● [`Address`](https://docs.monei.com/apis/graphql/types/objects/address/.md) object[​](#address "Direct link to address") Postal address. #### [`Representative.email`](#email) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#email "Direct link to email") Email address. #### [`Representative.phone`](#phone) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#phone "Direct link to phone") Phone in E.164 format, e.g. `+34666777888`. #### [`Representative.documentNumber`](#document-number) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#document-number "Direct link to document-number") Tax/identity document number (regional examples: NIF/NIE for Spain, VAT ID for EU companies). #### [`Representative.stocksPercentage`](#stocks-percentage) ● [`Float`](https://docs.monei.com/apis/graphql/types/scalars/float/.md) scalar[​](#stocks-percentage "Direct link to stocks-percentage") Ownership percentage (`100` for individual or freelancer). #### [`Representative.status`](#status) ● [`IdVerificationStatus`](https://docs.monei.com/apis/graphql/types/enums/id-verification-status/.md) enum[​](#status "Direct link to status") Identity verification status. #### [`Representative.statusMessage`](#status-message) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#status-message "Direct link to status-message") Free-form message returned by the verification provider. #### [`Representative.statusCode`](#status-code) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#status-code "Direct link to status-code") Status code returned by the verification provider. #### [`Representative.hasNoPublicActivity`](#has-no-public-activity) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#has-no-public-activity "Direct link to has-no-public-activity") Self-declaration that the representative is not a Politically Exposed Person. #### [`Representative.nationality`](#nationality) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#nationality "Direct link to nationality") Country of nationality (ISO 3166-1 alpha-2). Country of origin/birth; may differ from `citizenship` for dual citizens or naturalized citizens. #### [`Representative.citizenship`](#citizenship) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#citizenship "Direct link to citizenship") Country of legal citizenship (ISO 3166-1 alpha-2). May differ from `nationality` for dual citizens or naturalized citizens. ### Member Of[​](#member-of "Direct link to Member Of") [`Account`](https://docs.monei.com/apis/graphql/types/objects/account/.md) object --- # RepresentativesConnection Paginated list of legal representatives. ``` type RepresentativesConnection { items: [RepresentativeData!]! nextToken: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`RepresentativesConnection.items`](#items) ● [`[RepresentativeData!]!`](https://docs.monei.com/apis/graphql/types/objects/representative-data/.md) non-null object[​](#items "Direct link to items") Representatives on the current page. #### [`RepresentativesConnection.nextToken`](#next-token) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#next-token "Direct link to next-token") Cursor to pass as `token` on the next request to fetch the following page. `null` when no more results. ### Returned By[​](#returned-by "Direct link to Returned By") [`representatives`](https://docs.monei.com/apis/graphql/operations/queries/representatives/.md) query --- # RetrySchedule Defines a custom schedule for retrying failed subscription payments. Each entry specifies how long to wait before attempting the next payment retry. ``` type RetrySchedule { interval: Interval! intervalCount: Int! } ``` ### Fields[​](#fields "Direct link to Fields") #### [`RetrySchedule.interval`](#interval) ● [`Interval!`](https://docs.monei.com/apis/graphql/types/enums/interval/.md) non-null enum[​](#interval "Direct link to interval") The unit of time to wait before the retry attempt. #### [`RetrySchedule.intervalCount`](#interval-count) ● [`Int!`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) non-null scalar[​](#interval-count "Direct link to interval-count") The number of intervals to wait before the retry attempt. ### Member Of[​](#member-of "Direct link to Member Of") [`Subscription`](https://docs.monei.com/apis/graphql/types/objects/subscription/.md) object --- # SessionDetails Information related to the browsing session of the user who initiated the payment. ``` type SessionDetails { ip: AWSIPAddress fingerprint: String userAgent: String comment: String countryCode: String lang: String deviceType: DeviceType deviceModel: String browser: String browserVersion: String browserAccept: String browserColorDepth: String browserScreenHeight: String browserScreenWidth: String browserTimezoneOffset: String os: String osVersion: String source: String sourceVersion: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`SessionDetails.ip`](#ip) ● [`AWSIPAddress`](https://docs.monei.com/apis/graphql/types/scalars/awsipaddress/.md) scalar[​](#ip "Direct link to ip") The IP address where the operation originated. #### [`SessionDetails.fingerprint`](#fingerprint) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#fingerprint "Direct link to fingerprint") Stable device/browser fingerprint hash. #### [`SessionDetails.userAgent`](#user-agent) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#user-agent "Direct link to user-agent") Full user agent string of the browser session. #### [`SessionDetails.comment`](#comment) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#comment "Direct link to comment") Free-form note attached to the session. #### [`SessionDetails.countryCode`](#country-code) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#country-code "Direct link to country-code") Two-letter country code (ISO 3166-1 alpha-2). #### [`SessionDetails.lang`](#lang) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#lang "Direct link to lang") Two-letter language code (ISO 639-1). #### [`SessionDetails.deviceType`](#device-type) ● [`DeviceType`](https://docs.monei.com/apis/graphql/types/enums/device-type/.md) enum[​](#device-type "Direct link to device-type") Device type, could be `desktop`, `mobile`, `smartTV`, `tablet`. #### [`SessionDetails.deviceModel`](#device-model) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#device-model "Direct link to device-model") Information about the device used for the browser session (e.g., `iPhone`). #### [`SessionDetails.browser`](#browser) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#browser "Direct link to browser") The browser used in this browser session (e.g., `Mobile Safari`). #### [`SessionDetails.browserVersion`](#browser-version) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#browser-version "Direct link to browser-version") The version for the browser session (e.g., `13.1.1`). #### [`SessionDetails.browserAccept`](#browser-accept) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#browser-accept "Direct link to browser-accept") Browser accept header. #### [`SessionDetails.browserColorDepth`](#browser-color-depth) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#browser-color-depth "Direct link to browser-color-depth") The color depth of the browser session (e.g., `24`). #### [`SessionDetails.browserScreenHeight`](#browser-screen-height) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#browser-screen-height "Direct link to browser-screen-height") The screen height of the browser session (e.g., `1152`). #### [`SessionDetails.browserScreenWidth`](#browser-screen-width) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#browser-screen-width "Direct link to browser-screen-width") The screen width of the browser session (e.g., `2048`). #### [`SessionDetails.browserTimezoneOffset`](#browser-timezone-offset) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#browser-timezone-offset "Direct link to browser-timezone-offset") The timezone offset of the browser session (e.g., `-120`). #### [`SessionDetails.os`](#os) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#os "Direct link to os") Operation system (e.g., `iOS`). #### [`SessionDetails.osVersion`](#os-version) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#os-version "Direct link to os-version") Operation system version (e.g., `13.5.1`). #### [`SessionDetails.source`](#source) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#source "Direct link to source") The source component from where the operation was generated (mostly for our SDKs). #### [`SessionDetails.sourceVersion`](#source-version) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#source-version "Direct link to source-version") The source component version from where the operation was generated (mostly for our SDKs). ### Member Of[​](#member-of "Direct link to Member Of") [`Charge`](https://docs.monei.com/apis/graphql/types/objects/charge/.md) object ● [`ChargeEventObject`](https://docs.monei.com/apis/graphql/types/objects/charge-event-object/.md) object ● [`Payment`](https://docs.monei.com/apis/graphql/types/objects/payment/.md) object ● [`Subscription`](https://docs.monei.com/apis/graphql/types/objects/subscription/.md) object --- # Session Hosted session for identity verification, document upload, or bank verification. ``` type Session { identityId: ID! sessionUrl: String! } ``` ### Fields[​](#fields "Direct link to Fields") #### [`Session.identityId`](#identity-id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#identity-id "Direct link to identity-id") Identity associated with the session. #### [`Session.sessionUrl`](#session-url) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#session-url "Direct link to session-url") URL the user opens to complete the hosted flow. ### Returned By[​](#returned-by "Direct link to Returned By") [`createBankSession`](https://docs.monei.com/apis/graphql/operations/mutations/create-bank-session/.md) mutation ● [`createDocumentSession`](https://docs.monei.com/apis/graphql/operations/mutations/create-document-session/.md) mutation ● [`createIdSession`](https://docs.monei.com/apis/graphql/operations/mutations/create-id-session/.md) mutation --- # SettlementEventObject Settlement snapshot embedded in a `SettlementEvent` (state at the time the event was emitted). Mirrors `AccountSettlement` plus internal lifecycle fields. ``` type SettlementEventObject { accountId: ID! acquirerFees: Int! createdAt: AWSTimestamp! grossVolume: Int! iban: String id: ID! legalName: String netVolume: Int! period: Int! payMethod: SettlementPayMethods periodEndAt: AWSTimestamp! periodStartAt: AWSTimestamp! previousNegative: Boolean releasedAmount: Int reservedAmount: Int reservePercent: Int! scheduledAt: AWSTimestamp! status: SettlementStatus! updatedAt: AWSTimestamp! storeId: ID currency: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`SettlementEventObject.accountId`](#account-id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#account-id "Direct link to account-id") Account ID the settlement belongs to. #### [`SettlementEventObject.acquirerFees`](#acquirer-fees) ● [`Int!`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) non-null scalar[​](#acquirer-fees "Direct link to acquirer-fees") Acquirer/processing fees accrued for the period, in minor units. #### [`SettlementEventObject.createdAt`](#created-at) ● [`AWSTimestamp!`](https://docs.monei.com/apis/graphql/types/scalars/awstimestamp/.md) non-null scalar[​](#created-at "Direct link to created-at") Statement date of the first transaction aggregated into this settlement, as a unix timestamp (seconds). May be set to `1` on reserve-carry-in batches before any transactions have been processed. #### [`SettlementEventObject.grossVolume`](#gross-volume) ● [`Int!`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) non-null scalar[​](#gross-volume "Direct link to gross-volume") Gross transaction volume for the period, in minor units. #### [`SettlementEventObject.iban`](#iban) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#iban "Direct link to iban") Destination IBAN for the bank transfer. #### [`SettlementEventObject.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") Settlement ID. #### [`SettlementEventObject.legalName`](#legal-name) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#legal-name "Direct link to legal-name") Legal name of the account holder receiving the transfer. #### [`SettlementEventObject.netVolume`](#net-volume) ● [`Int!`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) non-null scalar[​](#net-volume "Direct link to net-volume") Amount transferred to the merchant for the period, in minor units. See `AccountSettlement.netVolume`. #### [`SettlementEventObject.period`](#period) ● [`Int!`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) non-null scalar[​](#period "Direct link to period") Settlement period length in days (interval between successive settlements for the account). #### [`SettlementEventObject.payMethod`](#pay-method) ● [`SettlementPayMethods`](https://docs.monei.com/apis/graphql/types/enums/settlement-pay-methods/.md) enum[​](#pay-method "Direct link to pay-method") Payment method the batch covers. #### [`SettlementEventObject.periodEndAt`](#period-end-at) ● [`AWSTimestamp!`](https://docs.monei.com/apis/graphql/types/scalars/awstimestamp/.md) non-null scalar[​](#period-end-at "Direct link to period-end-at") End of the settlement period (timestamp of the last transaction included), as a unix timestamp (seconds). #### [`SettlementEventObject.periodStartAt`](#period-start-at) ● [`AWSTimestamp!`](https://docs.monei.com/apis/graphql/types/scalars/awstimestamp/.md) non-null scalar[​](#period-start-at "Direct link to period-start-at") Start of the settlement period (timestamp of the first transaction included), as a unix timestamp (seconds). #### [`SettlementEventObject.previousNegative`](#previous-negative) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#previous-negative "Direct link to previous-negative") `true` when the previous cycle closed with a negative balance. #### [`SettlementEventObject.releasedAmount`](#released-amount) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#released-amount "Direct link to released-amount") Reserve released into this settlement from the previous period, in minor units. #### [`SettlementEventObject.reservedAmount`](#reserved-amount) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#reserved-amount "Direct link to reserved-amount") Reserve associated with this settlement, in minor units. Sign convention matches `AccountSettlement.reservedAmount`. #### [`SettlementEventObject.reservePercent`](#reserve-percent) ● [`Int!`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) non-null scalar[​](#reserve-percent "Direct link to reserve-percent") Reserve rate applied to this settlement, as a whole-number percent (0-100). Forced to 0 when `settleGross` is `true` or after a manual reserve release. #### [`SettlementEventObject.scheduledAt`](#scheduled-at) ● [`AWSTimestamp!`](https://docs.monei.com/apis/graphql/types/scalars/awstimestamp/.md) non-null scalar[​](#scheduled-at "Direct link to scheduled-at") Settlement evaluation date as a unix timestamp (seconds). See `AccountSettlement.scheduledAt`. #### [`SettlementEventObject.status`](#status) ● [`SettlementStatus!`](https://docs.monei.com/apis/graphql/types/enums/settlement-status/.md) non-null enum[​](#status "Direct link to status") Settlement lifecycle status at the time of the event. #### [`SettlementEventObject.updatedAt`](#updated-at) ● [`AWSTimestamp!`](https://docs.monei.com/apis/graphql/types/scalars/awstimestamp/.md) non-null scalar[​](#updated-at "Direct link to updated-at") Statement date of the most recent transaction aggregated into this settlement, as a unix timestamp (seconds). May be set to `1` on reserve-carry-in batches before any transactions have been processed. #### [`SettlementEventObject.storeId`](#store-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#store-id "Direct link to store-id") Store ID when the settlement is scoped to a specific store. #### [`SettlementEventObject.currency`](#currency) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#currency "Direct link to currency") ISO 4217 currency code of the settlement. ### Member Of[​](#member-of "Direct link to Member Of") [`SettlementEvent`](https://docs.monei.com/apis/graphql/types/objects/settlement-event/.md) object --- # SettlementEvent Lifecycle event for a settlement (status transition or balance update). ``` type SettlementEvent { id: ID! type: String! accountId: ID! objectId: ID! objectType: String! object: SettlementEventObject! createdAt: AWSTimestamp! } ``` ### Fields[​](#fields "Direct link to Fields") #### [`SettlementEvent.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") Event ID. #### [`SettlementEvent.type`](#type) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#type "Direct link to type") Event type. One of `settlement.pending`, `settlement.completed`, `settlement.suspended`. #### [`SettlementEvent.accountId`](#account-id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#account-id "Direct link to account-id") Account ID the settlement belongs to. #### [`SettlementEvent.objectId`](#object-id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#object-id "Direct link to object-id") ID of the settlement the event refers to (matches `object.id`). #### [`SettlementEvent.objectType`](#object-type) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#object-type "Direct link to object-type") Object type. Always `settlement`. #### [`SettlementEvent.object`](#object) ● [`SettlementEventObject!`](https://docs.monei.com/apis/graphql/types/objects/settlement-event-object/.md) non-null object[​](#object "Direct link to object") Settlement state captured when the event was emitted. #### [`SettlementEvent.createdAt`](#created-at) ● [`AWSTimestamp!`](https://docs.monei.com/apis/graphql/types/scalars/awstimestamp/.md) non-null scalar[​](#created-at "Direct link to created-at") Event timestamp (seconds). ### Member Of[​](#member-of "Direct link to Member Of") [`SettlementEventsConnection`](https://docs.monei.com/apis/graphql/types/objects/settlement-events-connection/.md) object --- # SettlementEventsConnection Paginated list of settlement events. ``` type SettlementEventsConnection { items: [SettlementEvent!]! total: Int! } ``` ### Fields[​](#fields "Direct link to Fields") #### [`SettlementEventsConnection.items`](#items) ● [`[SettlementEvent!]!`](https://docs.monei.com/apis/graphql/types/objects/settlement-event/.md) non-null object[​](#items "Direct link to items") Events on the current page, ordered by `createdAt` descending. #### [`SettlementEventsConnection.total`](#total) ● [`Int!`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) non-null scalar[​](#total "Direct link to total") Total events matching the query. ### Returned By[​](#returned-by "Direct link to Returned By") [`settlementEvents`](https://docs.monei.com/apis/graphql/operations/queries/settlement-events/.md) query --- # SftpConfigExport SFTP destination for scheduled daily charges exports. The previous day's charges are pushed at 06:00 UTC when `enabled` is `true`. ``` type SftpConfigExport { id: ID! host: String! port: Int! username: String! path: String! columns: [String!] timezone: String enabled: Boolean } ``` ### Fields[​](#fields "Direct link to Fields") #### [`SftpConfigExport.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") Config ID. #### [`SftpConfigExport.host`](#host) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#host "Direct link to host") SFTP server hostname. #### [`SftpConfigExport.port`](#port) ● [`Int!`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) non-null scalar[​](#port "Direct link to port") SFTP server port. #### [`SftpConfigExport.username`](#username) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#username "Direct link to username") SFTP username. #### [`SftpConfigExport.path`](#path) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#path "Direct link to path") Target directory on the SFTP server where CSV files are written. #### [`SftpConfigExport.columns`](#columns) ● [`[String!]`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) list scalar[​](#columns "Direct link to columns") Columns to include in the CSV. When omitted, the default column set is used. See `exportCharges` for the available columns. #### [`SftpConfigExport.timezone`](#timezone) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#timezone "Direct link to timezone") IANA timezone used to format date columns (e.g. `Europe/Madrid`). Defaults to `UTC`. #### [`SftpConfigExport.enabled`](#enabled) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#enabled "Direct link to enabled") Whether the scheduled export is active. Disabled configs are kept but skipped at run time. ### Returned By[​](#returned-by "Direct link to Returned By") [`createExportSftpConfig`](https://docs.monei.com/apis/graphql/operations/mutations/create-export-sftp-config/.md) mutation ● [`exportSftpConfig`](https://docs.monei.com/apis/graphql/operations/queries/export-sftp-config/.md) query ● [`updateExportSftpConfig`](https://docs.monei.com/apis/graphql/operations/mutations/update-export-sftp-config/.md) mutation ### Member Of[​](#member-of "Direct link to Member Of") [`SftpConfigExportsConnection`](https://docs.monei.com/apis/graphql/types/objects/sftp-config-exports-connection/.md) object --- # SftpConfigExportsConnection List of SFTP export configs for the account. ``` type SftpConfigExportsConnection { items: [SftpConfigExport!]! } ``` ### Fields[​](#fields "Direct link to Fields") #### [`SftpConfigExportsConnection.items`](#items) ● [`[SftpConfigExport!]!`](https://docs.monei.com/apis/graphql/types/objects/sftp-config-export/.md) non-null object[​](#items "Direct link to items") SFTP export configs. ### Returned By[​](#returned-by "Direct link to Returned By") [`exportSftpConfigs`](https://docs.monei.com/apis/graphql/operations/queries/export-sftp-configs/.md) query --- # Shop The information about the shop (used in hosted payment page). ``` type Shop { name: String country: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`Shop.name`](#name) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#name "Direct link to name") The shop name. #### [`Shop.country`](#country) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#country "Direct link to country") Two-letter country code (ISO 3166-1 alpha-2). ### Member Of[​](#member-of "Direct link to Member Of") [`Charge`](https://docs.monei.com/apis/graphql/types/objects/charge/.md) object ● [`ChargeEventObject`](https://docs.monei.com/apis/graphql/types/objects/charge-event-object/.md) object ● [`Payment`](https://docs.monei.com/apis/graphql/types/objects/payment/.md) object --- # ShopifyShopSettings Settings of a single Shopify shop installation linked to the caller's account. ``` type ShopifyShopSettings { settingsUrl: String! countryStores: [CountryStore!] testMode: Boolean } ``` ### Fields[​](#fields "Direct link to Fields") #### [`ShopifyShopSettings.settingsUrl`](#settings-url) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#settings-url "Direct link to settings-url") #### [`ShopifyShopSettings.countryStores`](#country-stores) ● [`[CountryStore!]`](https://docs.monei.com/apis/graphql/types/objects/country-store/.md) list object[​](#country-stores "Direct link to country-stores") Routing rules mapping a buyer's checkout country to a specific MONEI store. The entry with `countryCode` `DEFAULT` (when present) catches all unmapped countries. #### [`ShopifyShopSettings.testMode`](#test-mode) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#test-mode "Direct link to test-mode") Whether this shop installation processes payments in test mode. ### Returned By[​](#returned-by "Direct link to Returned By") [`getShopifyShopSettings`](https://docs.monei.com/apis/graphql/operations/queries/get-shopify-shop-settings/.md) query --- # ShopifyStore Shopify shop connected to a MONEI account for a specific MONEI Shopify app. One row per `(domain, paymentMethod)` pair. ``` type ShopifyStore { domain: String! paymentMethod: String! accountId: String countryStores: [CountryStore!] testMode: Boolean createOrderOnTimeout: Boolean } ``` ### Fields[​](#fields "Direct link to Fields") #### [`ShopifyStore.domain`](#domain) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#domain "Direct link to domain") Shopify shop domain (e.g. `my-store.myshopify.com`). #### [`ShopifyStore.paymentMethod`](#payment-method) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#payment-method "Direct link to payment-method") MONEI Shopify app installed on the shop. Each MONEI Shopify app exposes one payment method: `card`, `bizum`, `mbway`, `multibanco`, `qr`; plus aggregate apps `monei` (MONEI Payments, all methods) and `onsite` (card-on-page). #### [`ShopifyStore.accountId`](#account-id) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#account-id "Direct link to account-id") MONEI account currently bound to this installation. Swapped automatically by `updateShopifyShopSettings` when `testMode` toggles (test/live account pair). #### [`ShopifyStore.countryStores`](#country-stores) ● [`[CountryStore!]`](https://docs.monei.com/apis/graphql/types/objects/country-store/.md) list object[​](#country-stores "Direct link to country-stores") Country-to-store routing rules. See `CountryStore`. #### [`ShopifyStore.testMode`](#test-mode) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#test-mode "Direct link to test-mode") Whether this installation processes payments in test mode. #### [`ShopifyStore.createOrderOnTimeout`](#create-order-on-timeout) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#create-order-on-timeout "Direct link to create-order-on-timeout") When `true`, create the Shopify order even if the MONEI payment confirmation times out, rather than failing the checkout. Set by the Shopify app side; not exposed in the update settings input. ### Member Of[​](#member-of "Direct link to Member Of") [`ShopifyStoresConnection`](https://docs.monei.com/apis/graphql/types/objects/shopify-stores-connection/.md) object --- # ShopifyStoresConnection Paginated list of Shopify shops connected to the account. ``` type ShopifyStoresConnection { items: [ShopifyStore!]! nextToken: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`ShopifyStoresConnection.items`](#items) ● [`[ShopifyStore!]!`](https://docs.monei.com/apis/graphql/types/objects/shopify-store/.md) non-null object[​](#items "Direct link to items") Page of Shopify shop installations. #### [`ShopifyStoresConnection.nextToken`](#next-token) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#next-token "Direct link to next-token") Pagination cursor. Pass back as `token` to fetch the next page. `null` when there are no more results. ### Returned By[​](#returned-by "Direct link to Returned By") [`shopifyStores`](https://docs.monei.com/apis/graphql/operations/queries/shopify-stores/.md) query --- # Store Merchant store (physical location or online shop) within an account. Stores group points of sale and other resources for multi-store businesses. Hierarchy: `Account` > `Store` > `PointOfSale` > `Terminal`. ``` type Store { id: ID! name: String address: Address phone: String email: String iban: String website: String metadata: [KeyValueItem!] blocked: Boolean } ``` ### Fields[​](#fields "Direct link to Fields") #### [`Store.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") Store ID. #### [`Store.name`](#name) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#name "Direct link to name") Display name. #### [`Store.address`](#address) ● [`Address`](https://docs.monei.com/apis/graphql/types/objects/address/.md) object[​](#address "Direct link to address") Postal address of the store. #### [`Store.phone`](#phone) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#phone "Direct link to phone") Contact phone in E.164 format, e.g. `+34666777888`. #### [`Store.email`](#email) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#email "Direct link to email") Contact email. #### [`Store.iban`](#iban) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#iban "Direct link to iban") Sensitive: merchant payout account. IBAN used for settlements attributed to this store. #### [`Store.website`](#website) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#website "Direct link to website") Public website URL. #### [`Store.metadata`](#metadata) ● [`[KeyValueItem!]`](https://docs.monei.com/apis/graphql/types/objects/key-value-item/.md) list object[​](#metadata "Direct link to metadata") Arbitrary key/value metadata. #### [`Store.blocked`](#blocked) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#blocked "Direct link to blocked") Whether the store is blocked. Blocked stores cannot accept payments. ### Returned By[​](#returned-by "Direct link to Returned By") [`createStore`](https://docs.monei.com/apis/graphql/operations/mutations/create-store/.md) mutation ● [`store`](https://docs.monei.com/apis/graphql/operations/queries/store/.md) query ● [`updateStore`](https://docs.monei.com/apis/graphql/operations/mutations/update-store/.md) mutation ### Member Of[​](#member-of "Direct link to Member Of") [`StoresConnection`](https://docs.monei.com/apis/graphql/types/objects/stores-connection/.md) object --- # StoresConnection Paginated list of stores. ``` type StoresConnection { items: [Store!]! nextToken: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`StoresConnection.items`](#items) ● [`[Store!]!`](https://docs.monei.com/apis/graphql/types/objects/store/.md) non-null object[​](#items "Direct link to items") Stores on the current page. #### [`StoresConnection.nextToken`](#next-token) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#next-token "Direct link to next-token") Cursor for the next page. `null` when no more results. ### Returned By[​](#returned-by "Direct link to Returned By") [`stores`](https://docs.monei.com/apis/graphql/operations/queries/stores/.md) query --- # SubscriptionEventObject Subscription snapshot embedded in a `SubscriptionEvent`. ``` type SubscriptionEventObject { id: ID! accountId: ID! createdAt: AWSTimestamp updatedAt: AWSTimestamp amount: Int billingDetails: ContactDetails currency: String! allowedPaymentMethods: [SubscriptionPaymentMethods] customer: Customer description: String descriptor: String cancelAtPeriodEnd: Boolean pauseIntervalCount: Int pauseAtPeriodEnd: Boolean skipIntervalCount: Int currentPeriodStart: AWSTimestamp currentPeriodEnd: AWSTimestamp trialPeriodDays: Int trialPeriodEnd: AWSTimestamp livemode: Boolean storeId: ID pointOfSaleId: ID sequenceId: ID lastOrderId: ID lastPayment: LastPayment paymentMethod: PaymentMethod shippingDetails: ContactDetails status: SubscriptionStatus! traceDetails: TraceDetails interval: Interval! intervalCount: Int! retryCount: Int metadata: [KeyValueItem!] } ``` ### Fields[​](#fields "Direct link to Fields") #### [`SubscriptionEventObject.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") Unique identifier for the subscription. #### [`SubscriptionEventObject.accountId`](#account-id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#account-id "Direct link to account-id") MONEI account identifier. #### [`SubscriptionEventObject.createdAt`](#created-at) ● [`AWSTimestamp`](https://docs.monei.com/apis/graphql/types/scalars/awstimestamp/.md) scalar[​](#created-at "Direct link to created-at") Time at which the subscription was created. Measured in seconds since the Unix epoch. #### [`SubscriptionEventObject.updatedAt`](#updated-at) ● [`AWSTimestamp`](https://docs.monei.com/apis/graphql/types/scalars/awstimestamp/.md) scalar[​](#updated-at "Direct link to updated-at") Time at which the subscription was last updated. Measured in seconds since the Unix epoch. #### [`SubscriptionEventObject.amount`](#amount) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#amount "Direct link to amount") A positive integer representing how much to charge in the smallest currency unit. #### [`SubscriptionEventObject.billingDetails`](#billing-details) ● [`ContactDetails`](https://docs.monei.com/apis/graphql/types/objects/contact-details/.md) object[​](#billing-details "Direct link to billing-details") Billing details. #### [`SubscriptionEventObject.currency`](#currency) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#currency "Direct link to currency") Three-letter ISO 4217 currency code. #### [`SubscriptionEventObject.allowedPaymentMethods`](#allowed-payment-methods) ● [`[SubscriptionPaymentMethods]`](https://docs.monei.com/apis/graphql/types/enums/subscription-payment-methods/.md) list enum[​](#allowed-payment-methods "Direct link to allowed-payment-methods") List of payment methods allowed for subscriptions. #### [`SubscriptionEventObject.customer`](#customer) ● [`Customer`](https://docs.monei.com/apis/graphql/types/objects/customer/.md) object[​](#customer "Direct link to customer") Customer details. #### [`SubscriptionEventObject.description`](#description) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#description "Direct link to description") An arbitrary string attached to the subscription. Often useful for displaying to users. #### [`SubscriptionEventObject.descriptor`](#descriptor) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#descriptor "Direct link to descriptor") Statement descriptor shown on the customer's bank statement. #### [`SubscriptionEventObject.cancelAtPeriodEnd`](#cancel-at-period-end) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#cancel-at-period-end "Direct link to cancel-at-period-end") If true, the subscription will be canceled at the end of the current period. #### [`SubscriptionEventObject.pauseIntervalCount`](#pause-interval-count) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#pause-interval-count "Direct link to pause-interval-count") Number of intervals when subscription will be paused before it activates again. #### [`SubscriptionEventObject.pauseAtPeriodEnd`](#pause-at-period-end) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#pause-at-period-end "Direct link to pause-at-period-end") If true, the subscription will be paused at the end of the current period. #### [`SubscriptionEventObject.skipIntervalCount`](#skip-interval-count) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#skip-interval-count "Direct link to skip-interval-count") The number of intervals during which the subscription billing cycle will be skipped without altering the subscription status. #### [`SubscriptionEventObject.currentPeriodStart`](#current-period-start) ● [`AWSTimestamp`](https://docs.monei.com/apis/graphql/types/scalars/awstimestamp/.md) scalar[​](#current-period-start "Direct link to current-period-start") The start date of the current subscription period. Measured in seconds since the Unix epoch. #### [`SubscriptionEventObject.currentPeriodEnd`](#current-period-end) ● [`AWSTimestamp`](https://docs.monei.com/apis/graphql/types/scalars/awstimestamp/.md) scalar[​](#current-period-end "Direct link to current-period-end") The end date of the current subscription period. Measured in seconds since the Unix epoch. #### [`SubscriptionEventObject.trialPeriodDays`](#trial-period-days) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#trial-period-days "Direct link to trial-period-days") Number of days the trial period lasts. #### [`SubscriptionEventObject.trialPeriodEnd`](#trial-period-end) ● [`AWSTimestamp`](https://docs.monei.com/apis/graphql/types/scalars/awstimestamp/.md) scalar[​](#trial-period-end "Direct link to trial-period-end") The end date of the trial period. Measured in seconds since the Unix epoch. #### [`SubscriptionEventObject.livemode`](#livemode) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#livemode "Direct link to livemode") Whether the subscription was created in live mode (`true`) or test mode (`false`). #### [`SubscriptionEventObject.storeId`](#store-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#store-id "Direct link to store-id") Related store ID. #### [`SubscriptionEventObject.pointOfSaleId`](#point-of-sale-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#point-of-sale-id "Direct link to point-of-sale-id") Related point-of-sale ID. #### [`SubscriptionEventObject.sequenceId`](#sequence-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#sequence-id "Direct link to sequence-id") A unique identifier representing a series of subsequent recurring payments. #### [`SubscriptionEventObject.lastOrderId`](#last-order-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#last-order-id "Direct link to last-order-id") An order ID created by your system that is attached to the last subscription payment. #### [`SubscriptionEventObject.lastPayment`](#last-payment) ● [`LastPayment`](https://docs.monei.com/apis/graphql/types/objects/last-payment/.md) object[​](#last-payment "Direct link to last-payment") Details of the last payment for the subscription. #### [`SubscriptionEventObject.paymentMethod`](#payment-method) ● [`PaymentMethod`](https://docs.monei.com/apis/graphql/types/objects/payment-method/.md) object[​](#payment-method "Direct link to payment-method") Details about the payment method at the time of the transaction. #### [`SubscriptionEventObject.shippingDetails`](#shipping-details) ● [`ContactDetails`](https://docs.monei.com/apis/graphql/types/objects/contact-details/.md) object[​](#shipping-details "Direct link to shipping-details") Shipping details. #### [`SubscriptionEventObject.status`](#status) ● [`SubscriptionStatus!`](https://docs.monei.com/apis/graphql/types/enums/subscription-status/.md) non-null enum[​](#status "Direct link to status") The status of the subscription. #### [`SubscriptionEventObject.traceDetails`](#trace-details) ● [`TraceDetails`](https://docs.monei.com/apis/graphql/types/objects/trace-details/.md) object[​](#trace-details "Direct link to trace-details") Tracing details of the triggering action. #### [`SubscriptionEventObject.interval`](#interval) ● [`Interval!`](https://docs.monei.com/apis/graphql/types/enums/interval/.md) non-null enum[​](#interval "Direct link to interval") Subscription interval. The `minute` and `hour` intervals are only available in test mode. #### [`SubscriptionEventObject.intervalCount`](#interval-count) ● [`Int!`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) non-null scalar[​](#interval-count "Direct link to interval-count") Number of intervals between subscription payments. #### [`SubscriptionEventObject.retryCount`](#retry-count) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#retry-count "Direct link to retry-count") Number of retries left for the subscription. #### [`SubscriptionEventObject.metadata`](#metadata) ● [`[KeyValueItem!]`](https://docs.monei.com/apis/graphql/types/objects/key-value-item/.md) list object[​](#metadata "Direct link to metadata") A set of key-value pairs attached to the subscription. ### Member Of[​](#member-of "Direct link to Member Of") [`SubscriptionEvent`](https://docs.monei.com/apis/graphql/types/objects/subscription-event/.md) object --- # SubscriptionEvent Lifecycle event emitted when a subscription is created or its state changes. ``` type SubscriptionEvent { id: ID! type: String! accountId: ID! livemode: Boolean objectId: ID! objectType: String! object: SubscriptionEventObject! createdAt: AWSTimestamp } ``` ### Fields[​](#fields "Direct link to Fields") #### [`SubscriptionEvent.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") Event ID. #### [`SubscriptionEvent.type`](#type) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#type "Direct link to type") Event type (e.g. `subscription.created`, `subscription.updated`, `subscription.canceled`). #### [`SubscriptionEvent.accountId`](#account-id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#account-id "Direct link to account-id") Owning merchant account ID. #### [`SubscriptionEvent.livemode`](#livemode) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#livemode "Direct link to livemode") `true` for live mode, `false` for test mode. #### [`SubscriptionEvent.objectId`](#object-id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#object-id "Direct link to object-id") ID of the affected subscription. #### [`SubscriptionEvent.objectType`](#object-type) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#object-type "Direct link to object-type") Affected object type (always `subscription`). #### [`SubscriptionEvent.object`](#object) ● [`SubscriptionEventObject!`](https://docs.monei.com/apis/graphql/types/objects/subscription-event-object/.md) non-null object[​](#object "Direct link to object") Subscription state at the moment the event was emitted. #### [`SubscriptionEvent.createdAt`](#created-at) ● [`AWSTimestamp`](https://docs.monei.com/apis/graphql/types/scalars/awstimestamp/.md) scalar[​](#created-at "Direct link to created-at") Event time (unix timestamp, seconds). ### Member Of[​](#member-of "Direct link to Member Of") [`SubscriptionEventsConnection`](https://docs.monei.com/apis/graphql/types/objects/subscription-events-connection/.md) object --- # SubscriptionEventsConnection Paginated list of subscription events. ``` type SubscriptionEventsConnection { items: [SubscriptionEvent!]! total: Int! } ``` ### Fields[​](#fields "Direct link to Fields") #### [`SubscriptionEventsConnection.items`](#items) ● [`[SubscriptionEvent!]!`](https://docs.monei.com/apis/graphql/types/objects/subscription-event/.md) non-null object[​](#items "Direct link to items") Events in the current page. #### [`SubscriptionEventsConnection.total`](#total) ● [`Int!`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) non-null scalar[​](#total "Direct link to total") Total events matching the filter. ### Returned By[​](#returned-by "Direct link to Returned By") [`subscriptionEvents`](https://docs.monei.com/apis/graphql/operations/queries/subscription-events/.md) query --- # Subscription Recurring subscription billing a customer on a fixed cadence. ``` type Subscription { id: ID! accountId: ID! livemode: Boolean! amount: Int! trialAmount: Int currency: Currencies allowedPaymentMethods: [SubscriptionPaymentMethods] description: String descriptor: String cancelAtPeriodEnd: Boolean pauseIntervalCount: Int pauseAtPeriodEnd: Boolean skipIntervalCount: Int currentPeriodStart: AWSTimestamp currentPeriodEnd: AWSTimestamp trialPeriodDays: Int trialPeriodEnd: AWSTimestamp customerId: ID customer: Customer billingDetails: ContactDetails shippingDetails: ContactDetails sequenceId: ID lastOrderId: ID lastPayment: LastPayment paymentMethod: PaymentMethod nextPaymentAt: AWSTimestamp createdAt: AWSTimestamp updatedAt: AWSTimestamp interval: Interval! intervalCount: Int! retryCount: Int status: SubscriptionStatus! sessionDetails: SessionDetails traceDetails: TraceDetails callbackUrl: String paymentCallbackUrl: String storeId: ID retrySchedule: [RetrySchedule!] metadata: [KeyValueItem!] } ``` ### Fields[​](#fields "Direct link to Fields") #### [`Subscription.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") Unique identifier for the subscription. #### [`Subscription.accountId`](#account-id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#account-id "Direct link to account-id") MONEI account identifier. #### [`Subscription.livemode`](#livemode) ● [`Boolean!`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) non-null scalar[​](#livemode "Direct link to livemode") Whether the subscription was created in live mode (`true`) or test mode (`false`). #### [`Subscription.amount`](#amount) ● [`Int!`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) non-null scalar[​](#amount "Direct link to amount") A positive integer representing how much to charge in the smallest currency unit (e.g., 100 cents to charge 1.00 USD). #### [`Subscription.trialAmount`](#trial-amount) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#trial-amount "Direct link to trial-amount") Amount charged during the trial period in minor units. `null`/`0` means free trial. #### [`Subscription.currency`](#currency) ● [`Currencies`](https://docs.monei.com/apis/graphql/types/enums/currencies/.md) enum[​](#currency "Direct link to currency") Three-letter ISO 4217 currency code. #### [`Subscription.allowedPaymentMethods`](#allowed-payment-methods) ● [`[SubscriptionPaymentMethods]`](https://docs.monei.com/apis/graphql/types/enums/subscription-payment-methods/.md) list enum[​](#allowed-payment-methods "Direct link to allowed-payment-methods") List of payment methods allowed for subscriptions. #### [`Subscription.description`](#description) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#description "Direct link to description") An arbitrary string attached to the subscription. Often useful for displaying to users. #### [`Subscription.descriptor`](#descriptor) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#descriptor "Direct link to descriptor") Statement descriptor shown on the customer's bank statement. #### [`Subscription.cancelAtPeriodEnd`](#cancel-at-period-end) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#cancel-at-period-end "Direct link to cancel-at-period-end") If true, the subscription will be canceled at the end of the current period. #### [`Subscription.pauseIntervalCount`](#pause-interval-count) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#pause-interval-count "Direct link to pause-interval-count") Number of intervals when subscription will be paused before it activates again. #### [`Subscription.pauseAtPeriodEnd`](#pause-at-period-end) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#pause-at-period-end "Direct link to pause-at-period-end") If true, the subscription will be paused at the end of the current period. #### [`Subscription.skipIntervalCount`](#skip-interval-count) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#skip-interval-count "Direct link to skip-interval-count") The number of intervals during which the subscription billing cycle will be skipped without altering the subscription status. Useful when payment for a specific period is received through different methods. #### [`Subscription.currentPeriodStart`](#current-period-start) ● [`AWSTimestamp`](https://docs.monei.com/apis/graphql/types/scalars/awstimestamp/.md) scalar[​](#current-period-start "Direct link to current-period-start") The start date of the current subscription period. Measured in seconds since the Unix epoch. #### [`Subscription.currentPeriodEnd`](#current-period-end) ● [`AWSTimestamp`](https://docs.monei.com/apis/graphql/types/scalars/awstimestamp/.md) scalar[​](#current-period-end "Direct link to current-period-end") The end date of the current subscription period. Measured in seconds since the Unix epoch. #### [`Subscription.trialPeriodDays`](#trial-period-days) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#trial-period-days "Direct link to trial-period-days") Number of days the trial period lasts. #### [`Subscription.trialPeriodEnd`](#trial-period-end) ● [`AWSTimestamp`](https://docs.monei.com/apis/graphql/types/scalars/awstimestamp/.md) scalar[​](#trial-period-end "Direct link to trial-period-end") The end date of the trial period. Measured in seconds since the Unix epoch. #### [`Subscription.customerId`](#customer-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#customer-id "Direct link to customer-id") Customer identifier associated with the subscription. #### [`Subscription.customer`](#customer) ● [`Customer`](https://docs.monei.com/apis/graphql/types/objects/customer/.md) object[​](#customer "Direct link to customer") Customer details. #### [`Subscription.billingDetails`](#billing-details) ● [`ContactDetails`](https://docs.monei.com/apis/graphql/types/objects/contact-details/.md) object[​](#billing-details "Direct link to billing-details") Billing details. #### [`Subscription.shippingDetails`](#shipping-details) ● [`ContactDetails`](https://docs.monei.com/apis/graphql/types/objects/contact-details/.md) object[​](#shipping-details "Direct link to shipping-details") Shipping details. #### [`Subscription.sequenceId`](#sequence-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#sequence-id "Direct link to sequence-id") A unique identifier representing a series of subsequent recurring payments. #### [`Subscription.lastOrderId`](#last-order-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#last-order-id "Direct link to last-order-id") An order ID created by your system that is attached to the last subscription payment. #### [`Subscription.lastPayment`](#last-payment) ● [`LastPayment`](https://docs.monei.com/apis/graphql/types/objects/last-payment/.md) object[​](#last-payment "Direct link to last-payment") Details of the last payment for the subscription. #### [`Subscription.paymentMethod`](#payment-method) ● [`PaymentMethod`](https://docs.monei.com/apis/graphql/types/objects/payment-method/.md) object[​](#payment-method "Direct link to payment-method") Details about the payment method at the time of the transaction. #### [`Subscription.nextPaymentAt`](#next-payment-at) ● [`AWSTimestamp`](https://docs.monei.com/apis/graphql/types/scalars/awstimestamp/.md) scalar[​](#next-payment-at "Direct link to next-payment-at") The date when the next payment will be made. #### [`Subscription.createdAt`](#created-at) ● [`AWSTimestamp`](https://docs.monei.com/apis/graphql/types/scalars/awstimestamp/.md) scalar[​](#created-at "Direct link to created-at") Time at which the subscription was created. Measured in seconds since the Unix epoch. #### [`Subscription.updatedAt`](#updated-at) ● [`AWSTimestamp`](https://docs.monei.com/apis/graphql/types/scalars/awstimestamp/.md) scalar[​](#updated-at "Direct link to updated-at") Time at which the subscription was last updated. Measured in seconds since the Unix epoch. #### [`Subscription.interval`](#interval) ● [`Interval!`](https://docs.monei.com/apis/graphql/types/enums/interval/.md) non-null enum[​](#interval "Direct link to interval") Subscription interval. The `minute` and `hour` intervals are only available in test mode. #### [`Subscription.intervalCount`](#interval-count) ● [`Int!`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) non-null scalar[​](#interval-count "Direct link to interval-count") Number of intervals between subscription payments. #### [`Subscription.retryCount`](#retry-count) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#retry-count "Direct link to retry-count") Number of retries left for the subscription. #### [`Subscription.status`](#status) ● [`SubscriptionStatus!`](https://docs.monei.com/apis/graphql/types/enums/subscription-status/.md) non-null enum[​](#status "Direct link to status") The status of the subscription. #### [`Subscription.sessionDetails`](#session-details) ● [`SessionDetails`](https://docs.monei.com/apis/graphql/types/objects/session-details/.md) object[​](#session-details "Direct link to session-details") Browser/device fingerprint captured at activation. #### [`Subscription.traceDetails`](#trace-details) ● [`TraceDetails`](https://docs.monei.com/apis/graphql/types/objects/trace-details/.md) object[​](#trace-details "Direct link to trace-details") Tracing details of the action that created or modified the subscription. #### [`Subscription.callbackUrl`](#callback-url) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#callback-url "Direct link to callback-url") The URL will be called each time subscription status changes. You will receive a subscription object in the body of the request. #### [`Subscription.paymentCallbackUrl`](#payment-callback-url) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#payment-callback-url "Direct link to payment-callback-url") The URL will be called each time subscription creates a new payment. You will receive the payment object in the body of the request. #### [`Subscription.storeId`](#store-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#store-id "Direct link to store-id") Related store ID. #### [`Subscription.retrySchedule`](#retry-schedule) ● [`[RetrySchedule!]`](https://docs.monei.com/apis/graphql/types/objects/retry-schedule/.md) list object[​](#retry-schedule "Direct link to retry-schedule") Defines a custom schedule for retrying failed subscription payments. If not specified, the system's default retry schedule will be used. #### [`Subscription.metadata`](#metadata) ● [`[KeyValueItem!]`](https://docs.monei.com/apis/graphql/types/objects/key-value-item/.md) list object[​](#metadata "Direct link to metadata") A set of key-value pairs attached to the subscription. ### Returned By[​](#returned-by "Direct link to Returned By") [`cancelSubscription`](https://docs.monei.com/apis/graphql/operations/mutations/cancel-subscription/.md) mutation ● [`createSubscription`](https://docs.monei.com/apis/graphql/operations/mutations/create-subscription/.md) mutation ● [`pauseSubscription`](https://docs.monei.com/apis/graphql/operations/mutations/pause-subscription/.md) mutation ● [`resumeSubscription`](https://docs.monei.com/apis/graphql/operations/mutations/resume-subscription/.md) mutation ● [`sendSubscriptionLink`](https://docs.monei.com/apis/graphql/operations/mutations/send-subscription-link/.md) mutation ● [`sendSubscriptionStatus`](https://docs.monei.com/apis/graphql/operations/mutations/send-subscription-status/.md) mutation ● [`subscription`](https://docs.monei.com/apis/graphql/operations/queries/subscription/.md) query ● [`updateSubscription`](https://docs.monei.com/apis/graphql/operations/mutations/update-subscription/.md) mutation ### Member Of[​](#member-of "Direct link to Member Of") [`SubscriptionsConnection`](https://docs.monei.com/apis/graphql/types/objects/subscriptions-connection/.md) object --- # SubscriptionsConnection Paginated list of subscriptions. ``` type SubscriptionsConnection { items: [Subscription!]! total: Int! } ``` ### Fields[​](#fields "Direct link to Fields") #### [`SubscriptionsConnection.items`](#items) ● [`[Subscription!]!`](https://docs.monei.com/apis/graphql/types/objects/subscription/.md) non-null object[​](#items "Direct link to items") Subscriptions in the current page. #### [`SubscriptionsConnection.total`](#total) ● [`Int!`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) non-null scalar[​](#total "Direct link to total") Total subscriptions matching the filter. ### Returned By[​](#returned-by "Direct link to Returned By") [`subscriptions`](https://docs.monei.com/apis/graphql/operations/queries/subscriptions/.md) query --- # TraceDetails Information related to the user who initiated the operation, including device, browser, and dashboard user identity. ``` type TraceDetails { ip: AWSIPAddress userAgent: String comment: String countryCode: String lang: String deviceType: DeviceType deviceModel: String browser: String browserVersion: String browserAccept: String os: String osVersion: String source: String sourceVersion: String userId: ID userEmail: String userName: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`TraceDetails.ip`](#ip) ● [`AWSIPAddress`](https://docs.monei.com/apis/graphql/types/scalars/awsipaddress/.md) scalar[​](#ip "Direct link to ip") The IP address where the operation originated. #### [`TraceDetails.userAgent`](#user-agent) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#user-agent "Direct link to user-agent") Full user agent string of the browser session. #### [`TraceDetails.comment`](#comment) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#comment "Direct link to comment") Free-form note attached to the action. #### [`TraceDetails.countryCode`](#country-code) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#country-code "Direct link to country-code") Two-letter country code (ISO 3166-1 alpha-2). #### [`TraceDetails.lang`](#lang) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#lang "Direct link to lang") Two-letter language code (ISO 639-1). #### [`TraceDetails.deviceType`](#device-type) ● [`DeviceType`](https://docs.monei.com/apis/graphql/types/enums/device-type/.md) enum[​](#device-type "Direct link to device-type") Device type, could be `desktop`, `mobile`, `smartTV`, `tablet`. #### [`TraceDetails.deviceModel`](#device-model) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#device-model "Direct link to device-model") Information about the device used for the browser session (e.g., `iPhone`). #### [`TraceDetails.browser`](#browser) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#browser "Direct link to browser") The browser used in this browser session (e.g., `Mobile Safari`). #### [`TraceDetails.browserVersion`](#browser-version) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#browser-version "Direct link to browser-version") The version for the browser session (e.g., `13.1.1`). #### [`TraceDetails.browserAccept`](#browser-accept) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#browser-accept "Direct link to browser-accept") Browser accept header. #### [`TraceDetails.os`](#os) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#os "Direct link to os") Operation system (e.g., `iOS`). #### [`TraceDetails.osVersion`](#os-version) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#os-version "Direct link to os-version") Operation system version (e.g., `13.5.1`). #### [`TraceDetails.source`](#source) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#source "Direct link to source") The source component from where the operation was generated (mostly for our SDKs). #### [`TraceDetails.sourceVersion`](#source-version) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#source-version "Direct link to source-version") The source component version from where the operation was generated (mostly for our SDKs). #### [`TraceDetails.userId`](#user-id) ● [`ID`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) scalar[​](#user-id "Direct link to user-id") The ID of the user that started the operation. #### [`TraceDetails.userEmail`](#user-email) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#user-email "Direct link to user-email") The email of the user that started the operation. #### [`TraceDetails.userName`](#user-name) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#user-name "Direct link to user-name") Display name of the dashboard user who performed the action. ### Member Of[​](#member-of "Direct link to Member Of") [`Charge`](https://docs.monei.com/apis/graphql/types/objects/charge/.md) object ● [`ChargeEventObject`](https://docs.monei.com/apis/graphql/types/objects/charge-event-object/.md) object ● [`Payment`](https://docs.monei.com/apis/graphql/types/objects/payment/.md) object ● [`Subscription`](https://docs.monei.com/apis/graphql/types/objects/subscription/.md) object ● [`SubscriptionEventObject`](https://docs.monei.com/apis/graphql/types/objects/subscription-event-object/.md) object --- # UpdateShopifyShopSettingsResult Result of `updateShopifyShopSettings`. Echoes the persisted values. ``` type UpdateShopifyShopSettingsResult { countryStores: [CountryStore!] testMode: Boolean } ``` ### Fields[​](#fields "Direct link to Fields") #### [`UpdateShopifyShopSettingsResult.countryStores`](#country-stores) ● [`[CountryStore!]`](https://docs.monei.com/apis/graphql/types/objects/country-store/.md) list object[​](#country-stores "Direct link to country-stores") Persisted country-to-store routing rules. See `ShopifyShopSettings.countryStores`. #### [`UpdateShopifyShopSettingsResult.testMode`](#test-mode) ● [`Boolean`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) scalar[​](#test-mode "Direct link to test-mode") Persisted test-mode flag. ### Returned By[​](#returned-by "Direct link to Returned By") [`updateShopifyShopSettings`](https://docs.monei.com/apis/graphql/operations/mutations/update-shopify-shop-settings/.md) mutation --- # UploadFile Pre-signed URL for uploading a file to MONEI storage. ``` type UploadFile { uploadUrl: String! expiresAt: AWSTimestamp! } ``` ### Fields[​](#fields "Direct link to Fields") #### [`UploadFile.uploadUrl`](#upload-url) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#upload-url "Direct link to upload-url") Pre-signed upload URL. Valid for 15 minutes. #### [`UploadFile.expiresAt`](#expires-at) ● [`AWSTimestamp!`](https://docs.monei.com/apis/graphql/types/scalars/awstimestamp/.md) non-null scalar[​](#expires-at "Direct link to expires-at") Unix timestamp when `uploadUrl` expires. ### Returned By[​](#returned-by "Direct link to Returned By") [`uploadDocument`](https://docs.monei.com/apis/graphql/operations/mutations/upload-document/.md) mutation --- # Webhook HTTP endpoint that receives MONEI events. Each delivery is signed with the account's API key (`MONEI-Signature: t=,v1=` over `.`). Failed deliveries are retried with exponential backoff; the webhook is automatically disabled and `lastResponse` recorded once retries are exhausted. ``` type Webhook { id: ID! accountId: ID! url: String! eventTypes: [WebhookEventType!]! secret: String enabled: Boolean! createdAt: String! updatedAt: String lastResponse: CallbackData } ``` ### Fields[​](#fields "Direct link to Fields") #### [`Webhook.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id") Webhook ID. #### [`Webhook.accountId`](#account-id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#account-id "Direct link to account-id") Account that owns the webhook. #### [`Webhook.url`](#url) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#url "Direct link to url") HTTPS endpoint MONEI POSTs events to. #### [`Webhook.eventTypes`](#event-types) ● [`[WebhookEventType!]!`](https://docs.monei.com/apis/graphql/types/enums/webhook-event-type/.md) non-null enum[​](#event-types "Direct link to event-types") Event types this webhook subscribes to. #### [`Webhook.secret`](#secret) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#secret "Direct link to secret") Sensitive: legacy per-webhook signing secret. New webhooks sign with the account API key; this is kept for backward compatibility. #### [`Webhook.enabled`](#enabled) ● [`Boolean!`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) non-null scalar[​](#enabled "Direct link to enabled") Whether the webhook is active. Auto-set to `false` after retries are exhausted. #### [`Webhook.createdAt`](#created-at) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#created-at "Direct link to created-at") Creation timestamp (ISO 8601). #### [`Webhook.updatedAt`](#updated-at) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#updated-at "Direct link to updated-at") Last update timestamp (ISO 8601). #### [`Webhook.lastResponse`](#last-response) ● [`CallbackData`](https://docs.monei.com/apis/graphql/types/objects/callback-data/.md) object[​](#last-response "Direct link to last-response") Outcome of the most recent delivery attempt. ### Returned By[​](#returned-by "Direct link to Returned By") [`createWebhook`](https://docs.monei.com/apis/graphql/operations/mutations/create-webhook/.md) mutation ● [`updateWebhook`](https://docs.monei.com/apis/graphql/operations/mutations/update-webhook/.md) mutation ● [`webhook`](https://docs.monei.com/apis/graphql/operations/queries/webhook/.md) query ### Member Of[​](#member-of "Direct link to Member Of") [`WebhooksConnection`](https://docs.monei.com/apis/graphql/types/objects/webhooks-connection/.md) object --- # WebhooksConnection Paginated list of webhooks. ``` type WebhooksConnection { items: [Webhook!]! nextToken: String } ``` ### Fields[​](#fields "Direct link to Fields") #### [`WebhooksConnection.items`](#items) ● [`[Webhook!]!`](https://docs.monei.com/apis/graphql/types/objects/webhook/.md) non-null object[​](#items "Direct link to items") Page of webhooks. #### [`WebhooksConnection.nextToken`](#next-token) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#next-token "Direct link to next-token") Token to fetch the next page; `null` when there are no more results. ### Returned By[​](#returned-by "Direct link to Returned By") [`webhooks`](https://docs.monei.com/apis/graphql/operations/queries/webhooks/.md) query --- # AWSDateTime The `AWSDateTime` scalar type provided by AWS AppSync, represents a valid \*\*\*extended\*\*\* [ISO 8601 DateTime](https://en.wikipedia.org/wiki/ISO_8601#Combined_date_and_time_representations) string. In other words, this scalar type accepts datetime strings of the form `YYYY-MM-DDThh:mm:ss.SSSZ`. The scalar can also accept "negative years" of the form `-YYYY` which correspond to years before `0000`. For example, "\*\*-2017-01-01T00:00Z\*\*" and "\*\*-9999-01-01T00:00Z\*\*" are both valid datetime strings. The field after the two digit seconds field is a nanoseconds field. It can accept between 1 and 9 digits. So, for example, "\*\*1970-01-01T12:00:00.2Z\*\*", "\*\*1970-01-01T12:00:00.277Z\*\*" and "\*\*1970-01-01T12:00:00.123456789Z\*\*" are all valid datetime strings. The seconds and nanoseconds fields are optional (the seconds field must be specified if the nanoseconds field is to be used). The [time zone offset](https://en.wikipedia.org/wiki/ISO_8601#Time_zone_designators) is compulsory for this scalar. The time zone offset must either be `Z` (representing the UTC time zone) or be in the format `±hh:mm:ss`. The seconds field in the timezone offset will be considered valid even though it is not part of the ISO 8601 standard. ``` scalar AWSDateTime ``` ### Member Of[​](#member-of "Direct link to Member Of") [`PaymentRule`](https://docs.monei.com/apis/graphql/types/objects/payment-rule/.md) object --- # AWSEmail The `AWSEmail` scalar type provided by AWS AppSync, represents an Email address string that complies with [RFC 822](https://www.ietf.org/rfc/rfc822.txt). For example, "\*\*\*\*" is a valid Email address. ``` scalar AWSEmail ``` ### Member Of[​](#member-of "Direct link to Member Of") [`SendPaymentMessageInput`](https://docs.monei.com/apis/graphql/types/inputs/send-payment-message-input/.md) input ● [`SendSubscriptionMessageInput`](https://docs.monei.com/apis/graphql/types/inputs/send-subscription-message-input/.md) input --- # AWSIPAddress The `AWSIPAddress` scalar type provided by AWS AppSync, represents a valid [IPv4](https://en.wikipedia.org/wiki/IPv4#Addressing) or [IPv6](https://en.wikipedia.org/wiki/IPv6_address) address string. IP addresses with subnet masks are considered valid. However, subnet masks are not necessary. For example, "\*\*127.0.0.1\*\*" and "\*\*127.0.0.1/8\*\*" are both considered valid IP Addresses. ``` scalar AWSIPAddress ``` ### Member Of[​](#member-of "Direct link to Member Of") [`SessionDetails`](https://docs.monei.com/apis/graphql/types/objects/session-details/.md) object ● [`SessionDetailsInput`](https://docs.monei.com/apis/graphql/types/inputs/session-details-input/.md) input ● [`TraceDetails`](https://docs.monei.com/apis/graphql/types/objects/trace-details/.md) object --- # AWSPhone The `AWSPhone` scalar type provided by AWS AppSync, represents a valid Phone Number. Phone numbers are serialized and deserialized as Strings. Segments of the phone number may be whitespace delimited or hyphenated. The number can specify a country code at the beginning. However, United States numbers without country codes are still considered to be valid. ``` scalar AWSPhone ``` ### Member Of[​](#member-of "Direct link to Member Of") [`SendPaymentMessageInput`](https://docs.monei.com/apis/graphql/types/inputs/send-payment-message-input/.md) input ● [`SendSubscriptionMessageInput`](https://docs.monei.com/apis/graphql/types/inputs/send-subscription-message-input/.md) input --- # AWSTimestamp The `AWSTimestamp` scalar type provided by AWS AppSync, represents the number of seconds that have elapsed since `1970-01-01T00:00Z`. Negative values are also accepted and these represent the number of seconds till `1970-01-01T00:00Z`. Timestamps are serialized and deserialized as integers. The minimum supported timestamp value is \*\*`-31557014167219200`*\* which corresponds to `-1000000000-01-01T00:00Z`. The maximum supported timestamp value is \*\*`31556889864403199`*\* which corresponds to `1000000000-12-31T23:59:59.999999999Z`. ``` scalar AWSTimestamp ``` ### Member Of[​](#member-of "Direct link to Member Of") [`AccountSettlement`](https://docs.monei.com/apis/graphql/types/objects/account-settlement/.md) object ● [`ActivateSubscriptionInput`](https://docs.monei.com/apis/graphql/types/inputs/activate-subscription-input/.md) input ● [`BlacklistItem`](https://docs.monei.com/apis/graphql/types/objects/blacklist-item/.md) object ● [`BlacklistItemInput`](https://docs.monei.com/apis/graphql/types/inputs/blacklist-item-input/.md) input ● [`Charge`](https://docs.monei.com/apis/graphql/types/objects/charge/.md) object ● [`ChargeEvent`](https://docs.monei.com/apis/graphql/types/objects/charge-event/.md) object ● [`ChargeEventObject`](https://docs.monei.com/apis/graphql/types/objects/charge-event-object/.md) object ● [`ChargesDateRangeKPIRow`](https://docs.monei.com/apis/graphql/types/objects/charges-date-range-kpirow/.md) object ● [`ChargesExport`](https://docs.monei.com/apis/graphql/types/objects/charges-export/.md) object ● [`CreatePaymentInput`](https://docs.monei.com/apis/graphql/types/inputs/create-payment-input/.md) input ● [`CreateSubscriptionInput`](https://docs.monei.com/apis/graphql/types/inputs/create-subscription-input/.md) input ● [`DownloadFile`](https://docs.monei.com/apis/graphql/types/objects/download-file/.md) object ● [`ExportCharges`](https://docs.monei.com/apis/graphql/types/objects/export-charges/.md) object ● [`Payment`](https://docs.monei.com/apis/graphql/types/objects/payment/.md) object ● [`PaymentMethodCard`](https://docs.monei.com/apis/graphql/types/objects/payment-method-card/.md) object ● [`SettlementEvent`](https://docs.monei.com/apis/graphql/types/objects/settlement-event/.md) object ● [`SettlementEventObject`](https://docs.monei.com/apis/graphql/types/objects/settlement-event-object/.md) object ● [`Subscription`](https://docs.monei.com/apis/graphql/types/objects/subscription/.md) object ● [`SubscriptionEvent`](https://docs.monei.com/apis/graphql/types/objects/subscription-event/.md) object ● [`SubscriptionEventObject`](https://docs.monei.com/apis/graphql/types/objects/subscription-event-object/.md) object ● [`UpdateSubscriptionInput`](https://docs.monei.com/apis/graphql/types/inputs/update-subscription-input/.md) input ● [`UploadFile`](https://docs.monei.com/apis/graphql/types/objects/upload-file/.md) object --- # Boolean The `Boolean` scalar type represents `true` or `false`. ``` scalar Boolean ``` ### Returned By[​](#returned-by "Direct link to Returned By") [`deleteApplePayCert`](https://docs.monei.com/apis/graphql/operations/mutations/delete-apple-pay-cert/.md) mutation ● [`deleteAuthorizedUser`](https://docs.monei.com/apis/graphql/operations/mutations/delete-authorized-user/.md) mutation ● [`deleteBlacklistItem`](https://docs.monei.com/apis/graphql/operations/mutations/delete-blacklist-item/.md) mutation ● [`deleteCode`](https://docs.monei.com/apis/graphql/operations/mutations/delete-code/.md) mutation ● [`deleteDocument`](https://docs.monei.com/apis/graphql/operations/mutations/delete-document/.md) mutation ● [`deleteExportSftpConfig`](https://docs.monei.com/apis/graphql/operations/mutations/delete-export-sftp-config/.md) mutation ● [`deletePaymentRule`](https://docs.monei.com/apis/graphql/operations/mutations/delete-payment-rule/.md) mutation ● [`deletePointOfSale`](https://docs.monei.com/apis/graphql/operations/mutations/delete-point-of-sale/.md) mutation ● [`deleteStore`](https://docs.monei.com/apis/graphql/operations/mutations/delete-store/.md) mutation ● [`deleteWebhook`](https://docs.monei.com/apis/graphql/operations/mutations/delete-webhook/.md) mutation ### Member Of[​](#member-of "Direct link to Member Of") [`Account`](https://docs.monei.com/apis/graphql/types/objects/account/.md) object ● [`AccountNotifications`](https://docs.monei.com/apis/graphql/types/objects/account-notifications/.md) object ● [`AccountNotificationsInput`](https://docs.monei.com/apis/graphql/types/inputs/account-notifications-input/.md) input ● [`AccountPaymentMethodsBizum`](https://docs.monei.com/apis/graphql/types/objects/account-payment-methods-bizum/.md) object ● [`AccountPaymentMethodsCreditCard`](https://docs.monei.com/apis/graphql/types/objects/account-payment-methods-credit-card/.md) object ● [`AccountPayoutTerms`](https://docs.monei.com/apis/graphql/types/objects/account-payout-terms/.md) object ● [`AccountSettlement`](https://docs.monei.com/apis/graphql/types/objects/account-settlement/.md) object ● [`AccountTokenizationMethodsClickToPayItem`](https://docs.monei.com/apis/graphql/types/objects/account-tokenization-methods-click-to-pay-item/.md) object ● [`AccountTokenizationMethodsItem`](https://docs.monei.com/apis/graphql/types/objects/account-tokenization-methods-item/.md) object ● [`ApplePayCertificate`](https://docs.monei.com/apis/graphql/types/objects/apple-pay-certificate/.md) object ● [`AvailablePaymentMethod`](https://docs.monei.com/apis/graphql/types/objects/available-payment-method/.md) object ● [`AvailableProcessor`](https://docs.monei.com/apis/graphql/types/objects/available-processor/.md) object ● [`BusinessData`](https://docs.monei.com/apis/graphql/types/objects/business-data/.md) object ● [`BusinessDataInput`](https://docs.monei.com/apis/graphql/types/inputs/business-data-input/.md) input ● [`CancelSubscriptionInput`](https://docs.monei.com/apis/graphql/types/inputs/cancel-subscription-input/.md) input ● [`Charge`](https://docs.monei.com/apis/graphql/types/objects/charge/.md) object ● [`ChargeEvent`](https://docs.monei.com/apis/graphql/types/objects/charge-event/.md) object ● [`ChargeEventObject`](https://docs.monei.com/apis/graphql/types/objects/charge-event-object/.md) object ● [`Code`](https://docs.monei.com/apis/graphql/types/objects/code/.md) object ● [`Countries`](https://docs.monei.com/apis/graphql/types/objects/countries/.md) object ● [`CreateExportSftpConfigInput`](https://docs.monei.com/apis/graphql/types/inputs/create-export-sftp-config-input/.md) input ● [`CreateIdSessionInput`](https://docs.monei.com/apis/graphql/types/inputs/create-id-session-input/.md) input ● [`CreatePaymentInput`](https://docs.monei.com/apis/graphql/types/inputs/create-payment-input/.md) input ● [`CreatePointOfSaleInput`](https://docs.monei.com/apis/graphql/types/inputs/create-point-of-sale-input/.md) input ● [`CreateProviderInput`](https://docs.monei.com/apis/graphql/types/inputs/create-provider-input/.md) input ● [`CreateStoreInput`](https://docs.monei.com/apis/graphql/types/inputs/create-store-input/.md) input ● [`CreateWebhookInput`](https://docs.monei.com/apis/graphql/types/inputs/create-webhook-input/.md) input ● [`enableProvider`](https://docs.monei.com/apis/graphql/operations/mutations/enable-provider/.md) mutation ● [`Identity`](https://docs.monei.com/apis/graphql/types/objects/identity/.md) object ● [`IdentityInput`](https://docs.monei.com/apis/graphql/types/inputs/identity-input/.md) input ● [`include`](https://docs.monei.com/apis/graphql/operations/directives/include/.md) directive ● [`MetadataConfigItem`](https://docs.monei.com/apis/graphql/types/objects/metadata-config-item/.md) object ● [`MetadataItem`](https://docs.monei.com/apis/graphql/types/objects/metadata-item/.md) object ● [`NextAction`](https://docs.monei.com/apis/graphql/types/objects/next-action/.md) object ● [`PauseSubscriptionInput`](https://docs.monei.com/apis/graphql/types/inputs/pause-subscription-input/.md) input ● [`Payment`](https://docs.monei.com/apis/graphql/types/objects/payment/.md) object ● [`PaymentMethodCard`](https://docs.monei.com/apis/graphql/types/objects/payment-method-card/.md) object ● [`PaymentMethodCardInput`](https://docs.monei.com/apis/graphql/types/inputs/payment-method-card-input/.md) input ● [`PointOfSale`](https://docs.monei.com/apis/graphql/types/objects/point-of-sale/.md) object ● [`Provider`](https://docs.monei.com/apis/graphql/types/objects/provider/.md) object ● [`RegisterApplePayDomain`](https://docs.monei.com/apis/graphql/types/objects/register-apple-pay-domain/.md) object ● [`Representative`](https://docs.monei.com/apis/graphql/types/objects/representative/.md) object ● [`RepresentativeData`](https://docs.monei.com/apis/graphql/types/objects/representative-data/.md) object ● [`RepresentativeInput`](https://docs.monei.com/apis/graphql/types/inputs/representative-input/.md) input ● [`SearchableBooleanFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-boolean-filter-input/.md) input ● [`SearchableIDFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-idfilter-input/.md) input ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input ● [`SettlementEventObject`](https://docs.monei.com/apis/graphql/types/objects/settlement-event-object/.md) object ● [`SftpConfigExport`](https://docs.monei.com/apis/graphql/types/objects/sftp-config-export/.md) object ● [`ShopifyShopSettings`](https://docs.monei.com/apis/graphql/types/objects/shopify-shop-settings/.md) object ● [`ShopifyStore`](https://docs.monei.com/apis/graphql/types/objects/shopify-store/.md) object ● [`skip`](https://docs.monei.com/apis/graphql/operations/directives/skip/.md) directive ● [`Store`](https://docs.monei.com/apis/graphql/types/objects/store/.md) object ● [`Subscription`](https://docs.monei.com/apis/graphql/types/objects/subscription/.md) object ● [`SubscriptionEvent`](https://docs.monei.com/apis/graphql/types/objects/subscription-event/.md) object ● [`SubscriptionEventObject`](https://docs.monei.com/apis/graphql/types/objects/subscription-event-object/.md) object ● [`UpdateAccountInput`](https://docs.monei.com/apis/graphql/types/inputs/update-account-input/.md) input ● [`UpdateApplePayCertInput`](https://docs.monei.com/apis/graphql/types/inputs/update-apple-pay-cert-input/.md) input ● [`UpdateCodeInput`](https://docs.monei.com/apis/graphql/types/inputs/update-code-input/.md) input ● [`UpdateExportSftpConfigInput`](https://docs.monei.com/apis/graphql/types/inputs/update-export-sftp-config-input/.md) input ● [`UpdateIdentityInput`](https://docs.monei.com/apis/graphql/types/inputs/update-identity-input/.md) input ● [`UpdatePointOfSaleInput`](https://docs.monei.com/apis/graphql/types/inputs/update-point-of-sale-input/.md) input ● [`UpdateProviderInput`](https://docs.monei.com/apis/graphql/types/inputs/update-provider-input/.md) input ● [`UpdateShopifyShopSettingsInput`](https://docs.monei.com/apis/graphql/types/inputs/update-shopify-shop-settings-input/.md) input ● [`UpdateShopifyShopSettingsResult`](https://docs.monei.com/apis/graphql/types/objects/update-shopify-shop-settings-result/.md) object ● [`UpdateStoreInput`](https://docs.monei.com/apis/graphql/types/inputs/update-store-input/.md) input ● [`UpdateSubscriptionInput`](https://docs.monei.com/apis/graphql/types/inputs/update-subscription-input/.md) input ● [`UpdateWebhookInput`](https://docs.monei.com/apis/graphql/types/inputs/update-webhook-input/.md) input ● [`Webhook`](https://docs.monei.com/apis/graphql/types/objects/webhook/.md) object --- # Float The `Float` scalar type represents signed double-precision fractional values as specified by [IEEE 754](https://en.wikipedia.org/wiki/IEEE_floating_point). ``` scalar Float ``` ### Member Of[​](#member-of "Direct link to Member Of") [`AccountInvoiceLineItem`](https://docs.monei.com/apis/graphql/types/objects/account-invoice-line-item/.md) object ● [`AccountPayoutTerms`](https://docs.monei.com/apis/graphql/types/objects/account-payout-terms/.md) object ● [`Representative`](https://docs.monei.com/apis/graphql/types/objects/representative/.md) object ● [`RepresentativeData`](https://docs.monei.com/apis/graphql/types/objects/representative-data/.md) object ● [`RepresentativeInput`](https://docs.monei.com/apis/graphql/types/inputs/representative-input/.md) input --- # ID The `ID` scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as `"4"`) or integer (such as `4`) input value will be accepted as an ID. ``` scalar ID ``` ### Member Of[​](#member-of "Direct link to Member Of") [`Account`](https://docs.monei.com/apis/graphql/types/objects/account/.md) object ● [`AccountBalances`](https://docs.monei.com/apis/graphql/types/objects/account-balances/.md) object ● [`AccountContract`](https://docs.monei.com/apis/graphql/types/objects/account-contract/.md) object ● [`accountInvoice`](https://docs.monei.com/apis/graphql/operations/queries/account-invoice/.md) query ● [`AccountInvoice`](https://docs.monei.com/apis/graphql/types/objects/account-invoice/.md) object ● [`accountSettlement`](https://docs.monei.com/apis/graphql/operations/queries/account-settlement/.md) query ● [`AccountSettlement`](https://docs.monei.com/apis/graphql/types/objects/account-settlement/.md) object ● [`AccountTokenizationMethodsClickToPayItem`](https://docs.monei.com/apis/graphql/types/objects/account-tokenization-methods-click-to-pay-item/.md) object ● [`ActivateApplePayCertInput`](https://docs.monei.com/apis/graphql/types/inputs/activate-apple-pay-cert-input/.md) input ● [`ActivateSubscriptionInput`](https://docs.monei.com/apis/graphql/types/inputs/activate-subscription-input/.md) input ● [`applePayCert`](https://docs.monei.com/apis/graphql/operations/queries/apple-pay-cert/.md) query ● [`ApplePayCertificate`](https://docs.monei.com/apis/graphql/types/objects/apple-pay-certificate/.md) object ● [`AuthorizedUser`](https://docs.monei.com/apis/graphql/types/objects/authorized-user/.md) object ● [`Bank`](https://docs.monei.com/apis/graphql/types/objects/bank/.md) object ● [`BlacklistItem`](https://docs.monei.com/apis/graphql/types/objects/blacklist-item/.md) object ● [`CancelPaymentInput`](https://docs.monei.com/apis/graphql/types/inputs/cancel-payment-input/.md) input ● [`CancelSubscriptionInput`](https://docs.monei.com/apis/graphql/types/inputs/cancel-subscription-input/.md) input ● [`CapturePaymentInput`](https://docs.monei.com/apis/graphql/types/inputs/capture-payment-input/.md) input ● [`charge`](https://docs.monei.com/apis/graphql/operations/queries/charge/.md) query ● [`Charge`](https://docs.monei.com/apis/graphql/types/objects/charge/.md) object ● [`ChargeEvent`](https://docs.monei.com/apis/graphql/types/objects/charge-event/.md) object ● [`ChargeEventObject`](https://docs.monei.com/apis/graphql/types/objects/charge-event-object/.md) object ● [`chargeEvents`](https://docs.monei.com/apis/graphql/operations/queries/charge-events/.md) query ● [`chargesDateRangeKPI`](https://docs.monei.com/apis/graphql/operations/queries/charges-date-range-kpi/.md) query ● [`chargesExport`](https://docs.monei.com/apis/graphql/operations/queries/charges-export/.md) query ● [`ChargesExport`](https://docs.monei.com/apis/graphql/types/objects/charges-export/.md) object ● [`code`](https://docs.monei.com/apis/graphql/operations/queries/code/.md) query ● [`Code`](https://docs.monei.com/apis/graphql/types/objects/code/.md) object ● [`codes`](https://docs.monei.com/apis/graphql/operations/queries/codes/.md) query ● [`CreateAuthorizedUserInput`](https://docs.monei.com/apis/graphql/types/inputs/create-authorized-user-input/.md) input ● [`createBankSession`](https://docs.monei.com/apis/graphql/operations/mutations/create-bank-session/.md) mutation ● [`CreateIdSessionInput`](https://docs.monei.com/apis/graphql/types/inputs/create-id-session-input/.md) input ● [`CreatePaymentInput`](https://docs.monei.com/apis/graphql/types/inputs/create-payment-input/.md) input ● [`CreatePointOfSaleInput`](https://docs.monei.com/apis/graphql/types/inputs/create-point-of-sale-input/.md) input ● [`CreateSubscriptionInput`](https://docs.monei.com/apis/graphql/types/inputs/create-subscription-input/.md) input ● [`deleteApplePayCert`](https://docs.monei.com/apis/graphql/operations/mutations/delete-apple-pay-cert/.md) mutation ● [`deleteCode`](https://docs.monei.com/apis/graphql/operations/mutations/delete-code/.md) mutation ● [`deleteDocument`](https://docs.monei.com/apis/graphql/operations/mutations/delete-document/.md) mutation ● [`deleteExportSftpConfig`](https://docs.monei.com/apis/graphql/operations/mutations/delete-export-sftp-config/.md) mutation ● [`deletePaymentRule`](https://docs.monei.com/apis/graphql/operations/mutations/delete-payment-rule/.md) mutation ● [`deletePointOfSale`](https://docs.monei.com/apis/graphql/operations/mutations/delete-point-of-sale/.md) mutation ● [`deleteProvider`](https://docs.monei.com/apis/graphql/operations/mutations/delete-provider/.md) mutation ● [`deleteStore`](https://docs.monei.com/apis/graphql/operations/mutations/delete-store/.md) mutation ● [`deleteWebhook`](https://docs.monei.com/apis/graphql/operations/mutations/delete-webhook/.md) mutation ● [`document`](https://docs.monei.com/apis/graphql/operations/queries/document/.md) query ● [`Document`](https://docs.monei.com/apis/graphql/types/objects/document/.md) object ● [`downloadAccountInvoice`](https://docs.monei.com/apis/graphql/operations/mutations/download-account-invoice/.md) mutation ● [`downloadDocument`](https://docs.monei.com/apis/graphql/operations/mutations/download-document/.md) mutation ● [`downloadExport`](https://docs.monei.com/apis/graphql/operations/mutations/download-export/.md) mutation ● [`downloadOperationsFile`](https://docs.monei.com/apis/graphql/operations/mutations/download-operations-file/.md) mutation ● [`enableProvider`](https://docs.monei.com/apis/graphql/operations/mutations/enable-provider/.md) mutation ● [`exportSftpConfig`](https://docs.monei.com/apis/graphql/operations/queries/export-sftp-config/.md) query ● [`Identity`](https://docs.monei.com/apis/graphql/types/objects/identity/.md) object ● [`LastPayment`](https://docs.monei.com/apis/graphql/types/objects/last-payment/.md) object ● [`PauseSubscriptionInput`](https://docs.monei.com/apis/graphql/types/inputs/pause-subscription-input/.md) input ● [`Payment`](https://docs.monei.com/apis/graphql/types/objects/payment/.md) object ● [`PaymentAction`](https://docs.monei.com/apis/graphql/types/objects/payment-action/.md) object ● [`PaymentActionInput`](https://docs.monei.com/apis/graphql/types/inputs/payment-action-input/.md) input ● [`PaymentCondition`](https://docs.monei.com/apis/graphql/types/objects/payment-condition/.md) object ● [`PaymentConditionInput`](https://docs.monei.com/apis/graphql/types/inputs/payment-condition-input/.md) input ● [`paymentEmailPreview`](https://docs.monei.com/apis/graphql/operations/queries/payment-email-preview/.md) query ● [`PaymentMethodPaypal`](https://docs.monei.com/apis/graphql/types/objects/payment-method-paypal/.md) object ● [`PaymentMethodPaypalInput`](https://docs.monei.com/apis/graphql/types/inputs/payment-method-paypal-input/.md) input ● [`PaymentMethodTrustly`](https://docs.monei.com/apis/graphql/types/objects/payment-method-trustly/.md) object ● [`PaymentMethodTrustlyInput`](https://docs.monei.com/apis/graphql/types/inputs/payment-method-trustly-input/.md) input ● [`paymentRule`](https://docs.monei.com/apis/graphql/operations/queries/payment-rule/.md) query ● [`PaymentRule`](https://docs.monei.com/apis/graphql/types/objects/payment-rule/.md) object ● [`pointOfSale`](https://docs.monei.com/apis/graphql/operations/queries/point-of-sale/.md) query ● [`PointOfSale`](https://docs.monei.com/apis/graphql/types/objects/point-of-sale/.md) object ● [`pointsOfSale`](https://docs.monei.com/apis/graphql/operations/queries/points-of-sale/.md) query ● [`previewPaymentEmail`](https://docs.monei.com/apis/graphql/operations/queries/preview-payment-email/.md) query ● [`previewSubscriptionEmail`](https://docs.monei.com/apis/graphql/operations/queries/preview-subscription-email/.md) query ● [`provider`](https://docs.monei.com/apis/graphql/operations/queries/provider/.md) query ● [`Provider`](https://docs.monei.com/apis/graphql/types/objects/provider/.md) object ● [`RefundPaymentInput`](https://docs.monei.com/apis/graphql/types/inputs/refund-payment-input/.md) input ● [`RegisterCodeInput`](https://docs.monei.com/apis/graphql/types/inputs/register-code-input/.md) input ● [`representative`](https://docs.monei.com/apis/graphql/operations/queries/representative/.md) query ● [`RepresentativeData`](https://docs.monei.com/apis/graphql/types/objects/representative-data/.md) object ● [`ResumeSubscriptionInput`](https://docs.monei.com/apis/graphql/types/inputs/resume-subscription-input/.md) input ● [`SearchableIDFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-idfilter-input/.md) input ● [`SendPaymentMessageInput`](https://docs.monei.com/apis/graphql/types/inputs/send-payment-message-input/.md) input ● [`SendPaymentRequestInput`](https://docs.monei.com/apis/graphql/types/inputs/send-payment-request-input/.md) input ● [`SendSubscriptionMessageInput`](https://docs.monei.com/apis/graphql/types/inputs/send-subscription-message-input/.md) input ● [`Session`](https://docs.monei.com/apis/graphql/types/objects/session/.md) object ● [`setDefaultCardProvider`](https://docs.monei.com/apis/graphql/operations/mutations/set-default-card-provider/.md) mutation ● [`SettlementEvent`](https://docs.monei.com/apis/graphql/types/objects/settlement-event/.md) object ● [`SettlementEventObject`](https://docs.monei.com/apis/graphql/types/objects/settlement-event-object/.md) object ● [`settlementEvents`](https://docs.monei.com/apis/graphql/operations/queries/settlement-events/.md) query ● [`SftpConfigExport`](https://docs.monei.com/apis/graphql/types/objects/sftp-config-export/.md) object ● [`store`](https://docs.monei.com/apis/graphql/operations/queries/store/.md) query ● [`Store`](https://docs.monei.com/apis/graphql/types/objects/store/.md) object ● [`subscription`](https://docs.monei.com/apis/graphql/operations/queries/subscription/.md) query ● [`Subscription`](https://docs.monei.com/apis/graphql/types/objects/subscription/.md) object ● [`subscriptionEmailPreview`](https://docs.monei.com/apis/graphql/operations/queries/subscription-email-preview/.md) query ● [`SubscriptionEvent`](https://docs.monei.com/apis/graphql/types/objects/subscription-event/.md) object ● [`SubscriptionEventObject`](https://docs.monei.com/apis/graphql/types/objects/subscription-event-object/.md) object ● [`subscriptionEvents`](https://docs.monei.com/apis/graphql/operations/queries/subscription-events/.md) query ● [`TraceDetails`](https://docs.monei.com/apis/graphql/types/objects/trace-details/.md) object ● [`UpdateApplePayCertInput`](https://docs.monei.com/apis/graphql/types/inputs/update-apple-pay-cert-input/.md) input ● [`UpdateAuthorizedUserInput`](https://docs.monei.com/apis/graphql/types/inputs/update-authorized-user-input/.md) input ● [`UpdateCodeInput`](https://docs.monei.com/apis/graphql/types/inputs/update-code-input/.md) input ● [`UpdateExportSftpConfigInput`](https://docs.monei.com/apis/graphql/types/inputs/update-export-sftp-config-input/.md) input ● [`UpdateIdentityInput`](https://docs.monei.com/apis/graphql/types/inputs/update-identity-input/.md) input ● [`UpdatePaymentRuleInput`](https://docs.monei.com/apis/graphql/types/inputs/update-payment-rule-input/.md) input ● [`UpdatePointOfSaleInput`](https://docs.monei.com/apis/graphql/types/inputs/update-point-of-sale-input/.md) input ● [`UpdateProviderInput`](https://docs.monei.com/apis/graphql/types/inputs/update-provider-input/.md) input ● [`UpdateStoreInput`](https://docs.monei.com/apis/graphql/types/inputs/update-store-input/.md) input ● [`UpdateSubscriptionInput`](https://docs.monei.com/apis/graphql/types/inputs/update-subscription-input/.md) input ● [`UpdateWebhookInput`](https://docs.monei.com/apis/graphql/types/inputs/update-webhook-input/.md) input ● [`uploadDocument`](https://docs.monei.com/apis/graphql/operations/mutations/upload-document/.md) mutation ● [`webhook`](https://docs.monei.com/apis/graphql/operations/queries/webhook/.md) query ● [`Webhook`](https://docs.monei.com/apis/graphql/types/objects/webhook/.md) object --- # Int The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1. ``` scalar Int ``` ### Member Of[​](#member-of "Direct link to Member Of") [`Account`](https://docs.monei.com/apis/graphql/types/objects/account/.md) object ● [`AccountBalances`](https://docs.monei.com/apis/graphql/types/objects/account-balances/.md) object ● [`AccountInvoice`](https://docs.monei.com/apis/graphql/types/objects/account-invoice/.md) object ● [`AccountInvoiceBusiness`](https://docs.monei.com/apis/graphql/types/objects/account-invoice-business/.md) object ● [`AccountInvoiceLineItem`](https://docs.monei.com/apis/graphql/types/objects/account-invoice-line-item/.md) object ● [`accountInvoices`](https://docs.monei.com/apis/graphql/operations/queries/account-invoices/.md) query ● [`AccountInvoicesConnection`](https://docs.monei.com/apis/graphql/types/objects/account-invoices-connection/.md) object ● [`AccountPayoutTerms`](https://docs.monei.com/apis/graphql/types/objects/account-payout-terms/.md) object ● [`AccountSettlement`](https://docs.monei.com/apis/graphql/types/objects/account-settlement/.md) object ● [`accountSettlements`](https://docs.monei.com/apis/graphql/operations/queries/account-settlements/.md) query ● [`AccountSettlementsConnection`](https://docs.monei.com/apis/graphql/types/objects/account-settlements-connection/.md) object ● [`ActivateSubscriptionInput`](https://docs.monei.com/apis/graphql/types/inputs/activate-subscription-input/.md) input ● [`authorizedUsers`](https://docs.monei.com/apis/graphql/operations/queries/authorized-users/.md) query ● [`BlacklistItem`](https://docs.monei.com/apis/graphql/types/objects/blacklist-item/.md) object ● [`blacklistItems`](https://docs.monei.com/apis/graphql/operations/queries/blacklist-items/.md) query ● [`BusinessDataInput`](https://docs.monei.com/apis/graphql/types/inputs/business-data-input/.md) input ● [`CapturePaymentInput`](https://docs.monei.com/apis/graphql/types/inputs/capture-payment-input/.md) input ● [`Charge`](https://docs.monei.com/apis/graphql/types/objects/charge/.md) object ● [`ChargeEventObject`](https://docs.monei.com/apis/graphql/types/objects/charge-event-object/.md) object ● [`chargeEvents`](https://docs.monei.com/apis/graphql/operations/queries/charge-events/.md) query ● [`ChargeEventsConnection`](https://docs.monei.com/apis/graphql/types/objects/charge-events-connection/.md) object ● [`charges`](https://docs.monei.com/apis/graphql/operations/queries/charges/.md) query ● [`ChargesConnection`](https://docs.monei.com/apis/graphql/types/objects/charges-connection/.md) object ● [`chargesDateRangeKPI`](https://docs.monei.com/apis/graphql/operations/queries/charges-date-range-kpi/.md) query ● [`chargesExports`](https://docs.monei.com/apis/graphql/operations/queries/charges-exports/.md) query ● [`CreateExportSftpConfigInput`](https://docs.monei.com/apis/graphql/types/inputs/create-export-sftp-config-input/.md) input ● [`CreatePaymentInput`](https://docs.monei.com/apis/graphql/types/inputs/create-payment-input/.md) input ● [`CreatePointOfSaleInput`](https://docs.monei.com/apis/graphql/types/inputs/create-point-of-sale-input/.md) input ● [`CreateSubscriptionInput`](https://docs.monei.com/apis/graphql/types/inputs/create-subscription-input/.md) input ● [`documents`](https://docs.monei.com/apis/graphql/operations/queries/documents/.md) query ● [`events`](https://docs.monei.com/apis/graphql/operations/queries/events/.md) query ● [`Identity`](https://docs.monei.com/apis/graphql/types/objects/identity/.md) object ● [`PauseSubscriptionInput`](https://docs.monei.com/apis/graphql/types/inputs/pause-subscription-input/.md) input ● [`Payment`](https://docs.monei.com/apis/graphql/types/objects/payment/.md) object ● [`PaymentAction`](https://docs.monei.com/apis/graphql/types/objects/payment-action/.md) object ● [`PaymentActionInput`](https://docs.monei.com/apis/graphql/types/inputs/payment-action-input/.md) input ● [`paymentRules`](https://docs.monei.com/apis/graphql/operations/queries/payment-rules/.md) query ● [`Period`](https://docs.monei.com/apis/graphql/types/objects/period/.md) object ● [`PointOfSale`](https://docs.monei.com/apis/graphql/types/objects/point-of-sale/.md) object ● [`pointsOfSale`](https://docs.monei.com/apis/graphql/operations/queries/points-of-sale/.md) query ● [`ProviderRules`](https://docs.monei.com/apis/graphql/types/objects/provider-rules/.md) object ● [`ProviderRulesInput`](https://docs.monei.com/apis/graphql/types/inputs/provider-rules-input/.md) input ● [`RefundPaymentInput`](https://docs.monei.com/apis/graphql/types/inputs/refund-payment-input/.md) input ● [`Representative`](https://docs.monei.com/apis/graphql/types/objects/representative/.md) object ● [`representatives`](https://docs.monei.com/apis/graphql/operations/queries/representatives/.md) query ● [`RetrySchedule`](https://docs.monei.com/apis/graphql/types/objects/retry-schedule/.md) object ● [`RetryScheduleInput`](https://docs.monei.com/apis/graphql/types/inputs/retry-schedule-input/.md) input ● [`SearchableIntFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-int-filter-input/.md) input ● [`SequenceRecurringInput`](https://docs.monei.com/apis/graphql/types/inputs/sequence-recurring-input/.md) input ● [`SettlementEventObject`](https://docs.monei.com/apis/graphql/types/objects/settlement-event-object/.md) object ● [`settlementEvents`](https://docs.monei.com/apis/graphql/operations/queries/settlement-events/.md) query ● [`SettlementEventsConnection`](https://docs.monei.com/apis/graphql/types/objects/settlement-events-connection/.md) object ● [`SftpConfigExport`](https://docs.monei.com/apis/graphql/types/objects/sftp-config-export/.md) object ● [`shopifyStores`](https://docs.monei.com/apis/graphql/operations/queries/shopify-stores/.md) query ● [`stores`](https://docs.monei.com/apis/graphql/operations/queries/stores/.md) query ● [`Subscription`](https://docs.monei.com/apis/graphql/types/objects/subscription/.md) object ● [`SubscriptionEventObject`](https://docs.monei.com/apis/graphql/types/objects/subscription-event-object/.md) object ● [`subscriptionEvents`](https://docs.monei.com/apis/graphql/operations/queries/subscription-events/.md) query ● [`SubscriptionEventsConnection`](https://docs.monei.com/apis/graphql/types/objects/subscription-events-connection/.md) object ● [`subscriptions`](https://docs.monei.com/apis/graphql/operations/queries/subscriptions/.md) query ● [`SubscriptionsConnection`](https://docs.monei.com/apis/graphql/types/objects/subscriptions-connection/.md) object ● [`UpdateAccountInput`](https://docs.monei.com/apis/graphql/types/inputs/update-account-input/.md) input ● [`UpdateExportSftpConfigInput`](https://docs.monei.com/apis/graphql/types/inputs/update-export-sftp-config-input/.md) input ● [`UpdatePointOfSaleInput`](https://docs.monei.com/apis/graphql/types/inputs/update-point-of-sale-input/.md) input ● [`UpdateSubscriptionInput`](https://docs.monei.com/apis/graphql/types/inputs/update-subscription-input/.md) input ● [`webhooks`](https://docs.monei.com/apis/graphql/operations/queries/webhooks/.md) query --- # Long Long type ``` scalar Long ``` ### Member Of[​](#member-of "Direct link to Member Of") [`BusinessData`](https://docs.monei.com/apis/graphql/types/objects/business-data/.md) object ● [`ChargesDateRangeKPIRow`](https://docs.monei.com/apis/graphql/types/objects/charges-date-range-kpirow/.md) object ● [`ChargesDateRangeKPITotal`](https://docs.monei.com/apis/graphql/types/objects/charges-date-range-kpitotal/.md) object ● [`PaymentMethodCardPresent`](https://docs.monei.com/apis/graphql/types/objects/payment-method-card-present/.md) object ● [`PaymentMethodCardPresentInput`](https://docs.monei.com/apis/graphql/types/inputs/payment-method-card-present-input/.md) input --- # String The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. ``` scalar String ``` ### Returned By[​](#returned-by "Direct link to Returned By") [`chargeSources`](https://docs.monei.com/apis/graphql/operations/queries/charge-sources/.md) query ● [`paymentEmailPreview`](https://docs.monei.com/apis/graphql/operations/queries/payment-email-preview/.md) query ● [`previewPaymentEmail`](https://docs.monei.com/apis/graphql/operations/queries/preview-payment-email/.md) query ● [`previewSubscriptionEmail`](https://docs.monei.com/apis/graphql/operations/queries/preview-subscription-email/.md) query ● [`subscriptionEmailPreview`](https://docs.monei.com/apis/graphql/operations/queries/subscription-email-preview/.md) query ### Member Of[​](#member-of "Direct link to Member Of") [`Account`](https://docs.monei.com/apis/graphql/types/objects/account/.md) object ● [`AccountBalances`](https://docs.monei.com/apis/graphql/types/objects/account-balances/.md) object ● [`AccountBranding`](https://docs.monei.com/apis/graphql/types/objects/account-branding/.md) object ● [`AccountBrandingInput`](https://docs.monei.com/apis/graphql/types/inputs/account-branding-input/.md) input ● [`AccountContract`](https://docs.monei.com/apis/graphql/types/objects/account-contract/.md) object ● [`AccountInvoice`](https://docs.monei.com/apis/graphql/types/objects/account-invoice/.md) object ● [`AccountInvoiceBusiness`](https://docs.monei.com/apis/graphql/types/objects/account-invoice-business/.md) object ● [`AccountInvoiceLineItem`](https://docs.monei.com/apis/graphql/types/objects/account-invoice-line-item/.md) object ● [`AccountNotifications`](https://docs.monei.com/apis/graphql/types/objects/account-notifications/.md) object ● [`AccountNotificationsInput`](https://docs.monei.com/apis/graphql/types/inputs/account-notifications-input/.md) input ● [`AccountPayoutTerms`](https://docs.monei.com/apis/graphql/types/objects/account-payout-terms/.md) object ● [`AccountPublicBusinessDetails`](https://docs.monei.com/apis/graphql/types/objects/account-public-business-details/.md) object ● [`AccountPublicBusinessDetailsInput`](https://docs.monei.com/apis/graphql/types/inputs/account-public-business-details-input/.md) input ● [`AccountSettlement`](https://docs.monei.com/apis/graphql/types/objects/account-settlement/.md) object ● [`activateAccount`](https://docs.monei.com/apis/graphql/operations/mutations/activate-account/.md) mutation ● [`ActivateAccount`](https://docs.monei.com/apis/graphql/types/objects/activate-account/.md) object ● [`ActivateApplePayCertInput`](https://docs.monei.com/apis/graphql/types/inputs/activate-apple-pay-cert-input/.md) input ● [`ActivateSubscriptionInput`](https://docs.monei.com/apis/graphql/types/inputs/activate-subscription-input/.md) input ● [`Address`](https://docs.monei.com/apis/graphql/types/objects/address/.md) object ● [`AddressInput`](https://docs.monei.com/apis/graphql/types/inputs/address-input/.md) input ● [`ApplePayCertificate`](https://docs.monei.com/apis/graphql/types/objects/apple-pay-certificate/.md) object ● [`AuthorizedUser`](https://docs.monei.com/apis/graphql/types/objects/authorized-user/.md) object ● [`authorizedUsers`](https://docs.monei.com/apis/graphql/operations/queries/authorized-users/.md) query ● [`AuthorizedUsersConnection`](https://docs.monei.com/apis/graphql/types/objects/authorized-users-connection/.md) object ● [`aws_auth`](https://docs.monei.com/apis/graphql/types/directives/aws-auth/.md) directive ● [`aws_cognito_user_pools`](https://docs.monei.com/apis/graphql/types/directives/aws-cognito-user-pools/.md) directive ● [`aws_publish`](https://docs.monei.com/apis/graphql/types/directives/aws-publish/.md) directive ● [`aws_subscribe`](https://docs.monei.com/apis/graphql/types/directives/aws-subscribe/.md) directive ● [`Bank`](https://docs.monei.com/apis/graphql/types/objects/bank/.md) object ● [`BankAccount`](https://docs.monei.com/apis/graphql/types/objects/bank-account/.md) object ● [`banks`](https://docs.monei.com/apis/graphql/operations/queries/banks/.md) query ● [`blacklistItem`](https://docs.monei.com/apis/graphql/operations/queries/blacklist-item/.md) query ● [`BlacklistItem`](https://docs.monei.com/apis/graphql/types/objects/blacklist-item/.md) object ● [`BlacklistItemInput`](https://docs.monei.com/apis/graphql/types/inputs/blacklist-item-input/.md) input ● [`blacklistItems`](https://docs.monei.com/apis/graphql/operations/queries/blacklist-items/.md) query ● [`BlacklistItemsConnection`](https://docs.monei.com/apis/graphql/types/objects/blacklist-items-connection/.md) object ● [`BusinessData`](https://docs.monei.com/apis/graphql/types/objects/business-data/.md) object ● [`BusinessDataInput`](https://docs.monei.com/apis/graphql/types/inputs/business-data-input/.md) input ● [`CallbackData`](https://docs.monei.com/apis/graphql/types/objects/callback-data/.md) object ● [`Charge`](https://docs.monei.com/apis/graphql/types/objects/charge/.md) object ● [`ChargeEvent`](https://docs.monei.com/apis/graphql/types/objects/charge-event/.md) object ● [`ChargeEventObject`](https://docs.monei.com/apis/graphql/types/objects/charge-event-object/.md) object ● [`charges`](https://docs.monei.com/apis/graphql/operations/queries/charges/.md) query ● [`chargesDateRangeKPI`](https://docs.monei.com/apis/graphql/operations/queries/charges-date-range-kpi/.md) query ● [`ChargesExport`](https://docs.monei.com/apis/graphql/types/objects/charges-export/.md) object ● [`chargesExports`](https://docs.monei.com/apis/graphql/operations/queries/charges-exports/.md) query ● [`ChargesExportsConnection`](https://docs.monei.com/apis/graphql/types/objects/charges-exports-connection/.md) object ● [`connectMasterAccount`](https://docs.monei.com/apis/graphql/operations/mutations/connect-master-account/.md) mutation ● [`ConnectShopifyShopInput`](https://docs.monei.com/apis/graphql/types/inputs/connect-shopify-shop-input/.md) input ● [`ConnectShopifyShopResult`](https://docs.monei.com/apis/graphql/types/objects/connect-shopify-shop-result/.md) object ● [`ContactDetails`](https://docs.monei.com/apis/graphql/types/objects/contact-details/.md) object ● [`ContactDetailsInput`](https://docs.monei.com/apis/graphql/types/inputs/contact-details-input/.md) input ● [`Countries`](https://docs.monei.com/apis/graphql/types/objects/countries/.md) object ● [`Country`](https://docs.monei.com/apis/graphql/types/objects/country/.md) object ● [`CountryStore`](https://docs.monei.com/apis/graphql/types/objects/country-store/.md) object ● [`CountryStoreInput`](https://docs.monei.com/apis/graphql/types/inputs/country-store-input/.md) input ● [`CreateAuthorizedUserInput`](https://docs.monei.com/apis/graphql/types/inputs/create-authorized-user-input/.md) input ● [`CreateDocumentInput`](https://docs.monei.com/apis/graphql/types/inputs/create-document-input/.md) input ● [`CreateExportSftpConfigInput`](https://docs.monei.com/apis/graphql/types/inputs/create-export-sftp-config-input/.md) input ● [`CreateIdSessionInput`](https://docs.monei.com/apis/graphql/types/inputs/create-id-session-input/.md) input ● [`CreatePaymentInput`](https://docs.monei.com/apis/graphql/types/inputs/create-payment-input/.md) input ● [`CreatePointOfSaleInput`](https://docs.monei.com/apis/graphql/types/inputs/create-point-of-sale-input/.md) input ● [`CreateStoreInput`](https://docs.monei.com/apis/graphql/types/inputs/create-store-input/.md) input ● [`CreateSubscriptionInput`](https://docs.monei.com/apis/graphql/types/inputs/create-subscription-input/.md) input ● [`CreateWebhookInput`](https://docs.monei.com/apis/graphql/types/inputs/create-webhook-input/.md) input ● [`CustomDomainConfig`](https://docs.monei.com/apis/graphql/types/objects/custom-domain-config/.md) object ● [`Customer`](https://docs.monei.com/apis/graphql/types/objects/customer/.md) object ● [`CustomerInput`](https://docs.monei.com/apis/graphql/types/inputs/customer-input/.md) input ● [`deleteAuthorizedUser`](https://docs.monei.com/apis/graphql/operations/mutations/delete-authorized-user/.md) mutation ● [`deleteBlacklistItem`](https://docs.monei.com/apis/graphql/operations/mutations/delete-blacklist-item/.md) mutation ● [`deprecated`](https://docs.monei.com/apis/graphql/types/directives/deprecated/.md) directive ● [`DnsRecord`](https://docs.monei.com/apis/graphql/types/objects/dns-record/.md) object ● [`Document`](https://docs.monei.com/apis/graphql/types/objects/document/.md) object ● [`documents`](https://docs.monei.com/apis/graphql/operations/queries/documents/.md) query ● [`DocumentsConnection`](https://docs.monei.com/apis/graphql/types/objects/documents-connection/.md) object ● [`DownloadFile`](https://docs.monei.com/apis/graphql/types/objects/download-file/.md) object ● [`enableCustomDomain`](https://docs.monei.com/apis/graphql/operations/mutations/enable-custom-domain/.md) mutation ● [`exportCharges`](https://docs.monei.com/apis/graphql/operations/mutations/export-charges/.md) mutation ● [`ExportCharges`](https://docs.monei.com/apis/graphql/types/objects/export-charges/.md) object ● [`GetShopifyShopSettingsInput`](https://docs.monei.com/apis/graphql/types/inputs/get-shopify-shop-settings-input/.md) input ● [`Identity`](https://docs.monei.com/apis/graphql/types/objects/identity/.md) object ● [`IdentityInput`](https://docs.monei.com/apis/graphql/types/inputs/identity-input/.md) input ● [`KeyValueInput`](https://docs.monei.com/apis/graphql/types/inputs/key-value-input/.md) input ● [`KeyValueItem`](https://docs.monei.com/apis/graphql/types/objects/key-value-item/.md) object ● [`LastPayment`](https://docs.monei.com/apis/graphql/types/objects/last-payment/.md) object ● [`MetadataConfigItem`](https://docs.monei.com/apis/graphql/types/objects/metadata-config-item/.md) object ● [`MetadataItem`](https://docs.monei.com/apis/graphql/types/objects/metadata-item/.md) object ● [`MetadataItemInput`](https://docs.monei.com/apis/graphql/types/inputs/metadata-item-input/.md) input ● [`NextAction`](https://docs.monei.com/apis/graphql/types/objects/next-action/.md) object ● [`Payment`](https://docs.monei.com/apis/graphql/types/objects/payment/.md) object ● [`PaymentAction`](https://docs.monei.com/apis/graphql/types/objects/payment-action/.md) object ● [`PaymentActionInput`](https://docs.monei.com/apis/graphql/types/inputs/payment-action-input/.md) input ● [`PaymentCondition`](https://docs.monei.com/apis/graphql/types/objects/payment-condition/.md) object ● [`PaymentConditionInput`](https://docs.monei.com/apis/graphql/types/inputs/payment-condition-input/.md) input ● [`paymentEmailPreview`](https://docs.monei.com/apis/graphql/operations/queries/payment-email-preview/.md) query ● [`PaymentMethodBizum`](https://docs.monei.com/apis/graphql/types/objects/payment-method-bizum/.md) object ● [`PaymentMethodBizumInput`](https://docs.monei.com/apis/graphql/types/inputs/payment-method-bizum-input/.md) input ● [`PaymentMethodCard`](https://docs.monei.com/apis/graphql/types/objects/payment-method-card/.md) object ● [`PaymentMethodCardInput`](https://docs.monei.com/apis/graphql/types/inputs/payment-method-card-input/.md) input ● [`PaymentMethodCardPresent`](https://docs.monei.com/apis/graphql/types/objects/payment-method-card-present/.md) object ● [`PaymentMethodCardPresentInput`](https://docs.monei.com/apis/graphql/types/inputs/payment-method-card-present-input/.md) input ● [`PaymentMethodKlarnaInput`](https://docs.monei.com/apis/graphql/types/inputs/payment-method-klarna-input/.md) input ● [`PaymentMethodMBWay`](https://docs.monei.com/apis/graphql/types/objects/payment-method-mbway/.md) object ● [`PaymentMethodMBWayInput`](https://docs.monei.com/apis/graphql/types/inputs/payment-method-mbway-input/.md) input ● [`PaymentMethodPaypal`](https://docs.monei.com/apis/graphql/types/objects/payment-method-paypal/.md) object ● [`PaymentMethodPaypalInput`](https://docs.monei.com/apis/graphql/types/inputs/payment-method-paypal-input/.md) input ● [`PaymentMethodSepa`](https://docs.monei.com/apis/graphql/types/objects/payment-method-sepa/.md) object ● [`PaymentMethodSepaInput`](https://docs.monei.com/apis/graphql/types/inputs/payment-method-sepa-input/.md) input ● [`paymentRules`](https://docs.monei.com/apis/graphql/operations/queries/payment-rules/.md) query ● [`PaymentRulesConnection`](https://docs.monei.com/apis/graphql/types/objects/payment-rules-connection/.md) object ● [`PayPalLink`](https://docs.monei.com/apis/graphql/types/objects/pay-pal-link/.md) object ● [`PointOfSale`](https://docs.monei.com/apis/graphql/types/objects/point-of-sale/.md) object ● [`pointsOfSale`](https://docs.monei.com/apis/graphql/operations/queries/points-of-sale/.md) query ● [`PointsOfSaleConnection`](https://docs.monei.com/apis/graphql/types/objects/points-of-sale-connection/.md) object ● [`previewPaymentEmail`](https://docs.monei.com/apis/graphql/operations/queries/preview-payment-email/.md) query ● [`previewSubscriptionEmail`](https://docs.monei.com/apis/graphql/operations/queries/preview-subscription-email/.md) query ● [`ProviderRules`](https://docs.monei.com/apis/graphql/types/objects/provider-rules/.md) object ● [`ProviderRulesInput`](https://docs.monei.com/apis/graphql/types/inputs/provider-rules-input/.md) input ● [`Redirect`](https://docs.monei.com/apis/graphql/types/objects/redirect/.md) object ● [`RegisterApplePayDomainInput`](https://docs.monei.com/apis/graphql/types/inputs/register-apple-pay-domain-input/.md) input ● [`Representative`](https://docs.monei.com/apis/graphql/types/objects/representative/.md) object ● [`RepresentativeInput`](https://docs.monei.com/apis/graphql/types/inputs/representative-input/.md) input ● [`representatives`](https://docs.monei.com/apis/graphql/operations/queries/representatives/.md) query ● [`RepresentativesConnection`](https://docs.monei.com/apis/graphql/types/objects/representatives-connection/.md) object ● [`requestAccountReview`](https://docs.monei.com/apis/graphql/operations/mutations/request-account-review/.md) mutation ● [`SearchableStringFilterInput`](https://docs.monei.com/apis/graphql/types/inputs/searchable-string-filter-input/.md) input ● [`SendPaymentMessageInput`](https://docs.monei.com/apis/graphql/types/inputs/send-payment-message-input/.md) input ● [`SendPaymentRequestInput`](https://docs.monei.com/apis/graphql/types/inputs/send-payment-request-input/.md) input ● [`SendSubscriptionMessageInput`](https://docs.monei.com/apis/graphql/types/inputs/send-subscription-message-input/.md) input ● [`SequenceRecurringInput`](https://docs.monei.com/apis/graphql/types/inputs/sequence-recurring-input/.md) input ● [`Session`](https://docs.monei.com/apis/graphql/types/objects/session/.md) object ● [`SessionDetails`](https://docs.monei.com/apis/graphql/types/objects/session-details/.md) object ● [`SessionDetailsInput`](https://docs.monei.com/apis/graphql/types/inputs/session-details-input/.md) input ● [`SettlementEvent`](https://docs.monei.com/apis/graphql/types/objects/settlement-event/.md) object ● [`SettlementEventObject`](https://docs.monei.com/apis/graphql/types/objects/settlement-event-object/.md) object ● [`SetupAccountInput`](https://docs.monei.com/apis/graphql/types/inputs/setup-account-input/.md) input ● [`SftpConfigExport`](https://docs.monei.com/apis/graphql/types/objects/sftp-config-export/.md) object ● [`Shop`](https://docs.monei.com/apis/graphql/types/objects/shop/.md) object ● [`ShopifyShopSettings`](https://docs.monei.com/apis/graphql/types/objects/shopify-shop-settings/.md) object ● [`ShopifyStore`](https://docs.monei.com/apis/graphql/types/objects/shopify-store/.md) object ● [`shopifyStores`](https://docs.monei.com/apis/graphql/operations/queries/shopify-stores/.md) query ● [`ShopifyStoresConnection`](https://docs.monei.com/apis/graphql/types/objects/shopify-stores-connection/.md) object ● [`specifiedBy`](https://docs.monei.com/apis/graphql/types/directives/specified-by/.md) directive ● [`startCompanyLookup`](https://docs.monei.com/apis/graphql/operations/mutations/start-company-lookup/.md) mutation ● [`startExportCharges`](https://docs.monei.com/apis/graphql/operations/mutations/start-export-charges/.md) mutation ● [`Store`](https://docs.monei.com/apis/graphql/types/objects/store/.md) object ● [`stores`](https://docs.monei.com/apis/graphql/operations/queries/stores/.md) query ● [`StoresConnection`](https://docs.monei.com/apis/graphql/types/objects/stores-connection/.md) object ● [`Subscription`](https://docs.monei.com/apis/graphql/types/objects/subscription/.md) object ● [`subscriptionEmailPreview`](https://docs.monei.com/apis/graphql/operations/queries/subscription-email-preview/.md) query ● [`SubscriptionEvent`](https://docs.monei.com/apis/graphql/types/objects/subscription-event/.md) object ● [`SubscriptionEventObject`](https://docs.monei.com/apis/graphql/types/objects/subscription-event-object/.md) object ● [`subscriptions`](https://docs.monei.com/apis/graphql/operations/queries/subscriptions/.md) query ● [`TraceDetails`](https://docs.monei.com/apis/graphql/types/objects/trace-details/.md) object ● [`UpdateAccountInput`](https://docs.monei.com/apis/graphql/types/inputs/update-account-input/.md) input ● [`UpdateAuthorizedUserInput`](https://docs.monei.com/apis/graphql/types/inputs/update-authorized-user-input/.md) input ● [`UpdateExportSftpConfigInput`](https://docs.monei.com/apis/graphql/types/inputs/update-export-sftp-config-input/.md) input ● [`UpdateIdentityInput`](https://docs.monei.com/apis/graphql/types/inputs/update-identity-input/.md) input ● [`UpdatePointOfSaleInput`](https://docs.monei.com/apis/graphql/types/inputs/update-point-of-sale-input/.md) input ● [`UpdateShopifyShopSettingsInput`](https://docs.monei.com/apis/graphql/types/inputs/update-shopify-shop-settings-input/.md) input ● [`UpdateStoreInput`](https://docs.monei.com/apis/graphql/types/inputs/update-store-input/.md) input ● [`UpdateSubscriptionInput`](https://docs.monei.com/apis/graphql/types/inputs/update-subscription-input/.md) input ● [`UpdateWebhookInput`](https://docs.monei.com/apis/graphql/types/inputs/update-webhook-input/.md) input ● [`uploadDocument`](https://docs.monei.com/apis/graphql/operations/mutations/upload-document/.md) mutation ● [`UploadFile`](https://docs.monei.com/apis/graphql/types/objects/upload-file/.md) object ● [`Webhook`](https://docs.monei.com/apis/graphql/types/objects/webhook/.md) object ● [`webhooks`](https://docs.monei.com/apis/graphql/operations/queries/webhooks/.md) query ● [`WebhooksConnection`](https://docs.monei.com/apis/graphql/types/objects/webhooks-connection/.md) object --- ## [📄️Introduction](https://docs.monei.com/apis/rest/monei-api-v-1/.md) [The MONEI API is organized around REST principles. Our API is designed to be intuitive and developer-friendly.](https://docs.monei.com/apis/rest/monei-api-v-1/.md) --- # Apple Pay Certificate Manage Apple Pay certificates for iOS app integration. To accept Apple Pay in your iOS app, you need an Apple Pay Payment Processing Certificate. This API provides a complete certificate management workflow: 1. **Create** - Generate a Certificate Signing Request (CSR) 2. **Upload to Apple** - Use the CSR to create a certificate in Apple Developer Portal 3. **Activate** - Upload the signed certificate from Apple to enable payment processing 4. **Manage** - Enable, disable, or delete certificates as needed The private key is securely generated and stored by MONEI. You never need to handle private keys directly. ## [📄️Create Certificate](https://docs.monei.com/apis/rest/apple-pay-certificates-create/.md) [Creates a new Apple Pay certificate by generating a Certificate Signing Request (CSR).](https://docs.monei.com/apis/rest/apple-pay-certificates-create/.md) ## [📄️List Certificates](https://docs.monei.com/apis/rest/apple-pay-certificates-get-all/.md) [Retrieves all Apple Pay certificates for your account.](https://docs.monei.com/apis/rest/apple-pay-certificates-get-all/.md) ## [📄️Get Certificate](https://docs.monei.com/apis/rest/apple-pay-certificates-get/.md) [Retrieves a specific Apple Pay certificate by its ID.](https://docs.monei.com/apis/rest/apple-pay-certificates-get/.md) ## [📄️Update Certificate](https://docs.monei.com/apis/rest/apple-pay-certificates-update/.md) [Updates an Apple Pay certificate's active status.](https://docs.monei.com/apis/rest/apple-pay-certificates-update/.md) ## [📄️Delete Certificate](https://docs.monei.com/apis/rest/apple-pay-certificates-remove/.md) [Deletes an Apple Pay certificate.](https://docs.monei.com/apis/rest/apple-pay-certificates-remove/.md) ## [📄️Activate Certificate](https://docs.monei.com/apis/rest/apple-pay-certificates-activate/.md) [Activates an Apple Pay certificate by uploading the signed certificate from Apple.](https://docs.monei.com/apis/rest/apple-pay-certificates-activate/.md) --- # Activate Certificate ``` POST /apple-pay/certificates/:id/activate ``` Activates an Apple Pay certificate by uploading the signed certificate from Apple. After creating a certificate in the Apple Developer Portal using your CSR, download the signed certificate and upload it here to activate payment processing. ## Activation process[​](#activation-process "Direct link to Activation process") 1. Ensure you have downloaded the signed certificate (`.cer` file) from Apple Developer Portal. 2. Convert the certificate to base64: ``` base64 -i apple_pay.cer ``` 3. Call this endpoint with the base64-encoded certificate in the `cert` field. ## Validation[​](#validation "Direct link to Validation") The certificate is validated to ensure: * It matches the private key generated when creating the CSR * It has a valid expiration date Once activated, the certificate becomes available for decrypting Apple Pay payment tokens in your iOS app. ## Notes[​](#notes "Direct link to Notes") * A certificate can only be activated once. * After successful activation, the CSR is no longer returned in responses. * The certificate's expiration date is returned in the `expireAt` field once activated. ## Request[​](#request "Direct link to request") ## Responses[​](#responses "Direct link to Responses") * 200 * 400 * 401 * 404 * 422 * 500 * 503 A certificate object The request is incorrect or could not be processed Unauthorized error. Please check your auth credentials The specified resource was not found The request was well-formed but could not be processed due to semantic errors Unexpected server error The service is temporarily unavailable --- # Create Certificate ``` POST /apple-pay/certificates ``` Creates a new Apple Pay certificate by generating a Certificate Signing Request (CSR). Use this endpoint to start the certificate creation process for accepting Apple Pay in your iOS app. ## Setup workflow[​](#setup-workflow "Direct link to Setup workflow") 1. **Call this endpoint** to generate a CSR. The response includes the `csr` field in base64 format. 2. **Decode the CSR** and save it as a `.certSigningRequest` file: ``` echo "CSR_VALUE" | base64 -d > apple_pay.certSigningRequest ``` 3. **Go to [Apple Developer Portal](https://developer.apple.com/account/resources/certificates/list)**: * Navigate to Certificates, Identifiers & Profiles * Select your Merchant ID under Identifiers * In the "Apple Pay Payment Processing Certificate" section, click "Create Certificate" * Upload the `.certSigningRequest` file from step 2 * Download the signed certificate (`.cer` file) 4. **Convert the certificate to base64**: ``` base64 -i apple_pay.cer ``` 5. **Activate the certificate** using the [Activate Certificate](https://docs.monei.com/apis/rest/apple-pay-certificates-activate/) endpoint with the base64 value. ## Important notes[​](#important-notes "Direct link to Important notes") * **CSRs expire after 24 hours.** Complete the certificate creation in Apple Developer Portal within this window, or generate a new CSR. * Each CSR can only be used once. If you need a new certificate, create a new CSR. * The private key is securely generated and stored by MONEI. You never need to handle private keys directly. * You must be enrolled in the [Apple Developer Program](https://developer.apple.com/programs/) to create certificates. * The CSR is cleared from the response after the certificate is activated. ## Responses[​](#responses "Direct link to Responses") * 200 * 400 * 401 * 500 * 503 A certificate object The request is incorrect or could not be processed Unauthorized error. Please check your auth credentials Unexpected server error The service is temporarily unavailable --- # List Certificates ``` GET /apple-pay/certificates ``` Retrieves all Apple Pay certificates for your account. Returns an array of certificate objects, including both active and inactive certificates. Use this to view all certificates and their status. ## Responses[​](#responses "Direct link to Responses") * 200 * 401 * 500 * 503 A list of certificates Unauthorized error. Please check your auth credentials Unexpected server error The service is temporarily unavailable --- # Get Certificate ``` GET /apple-pay/certificates/:id ``` Retrieves a specific Apple Pay certificate by its ID. Returns the certificate object with its current status, CSR (if not yet activated), and expiration date (if activated). ## Request[​](#request "Direct link to request") ## Responses[​](#responses "Direct link to Responses") * 200 * 401 * 404 * 500 * 503 A certificate object Unauthorized error. Please check your auth credentials The specified resource was not found Unexpected server error The service is temporarily unavailable --- # Delete Certificate ``` DELETE /apple-pay/certificates/:id ``` Deletes an Apple Pay certificate. This permanently removes the certificate and its associated private key. The certificate will no longer be available for payment processing. **Warning**: This action cannot be undone. If you only want to temporarily disable a certificate, use the [Update Certificate](https://docs.monei.com/apis/rest/apple-pay-certificates-update/) endpoint instead. ## Request[​](#request "Direct link to request") ## Responses[​](#responses "Direct link to Responses") * 200 * 401 * 404 * 500 * 503 A successful deletion response Unauthorized error. Please check your auth credentials The specified resource was not found Unexpected server error The service is temporarily unavailable --- # Update Certificate ``` POST /apple-pay/certificates/:id ``` Updates an Apple Pay certificate's active status. Use this endpoint to enable or disable a certificate. Disabling a certificate prevents it from being used for payment token decryption while keeping it available for future use. ## Request[​](#request "Direct link to request") ## Responses[​](#responses "Direct link to Responses") * 200 * 400 * 401 * 404 * 422 * 500 * 503 A certificate object The request is incorrect or could not be processed Unauthorized error. Please check your auth credentials The specified resource was not found The request was well-formed but could not be processed due to semantic errors Unexpected server error The service is temporarily unavailable --- # Register Domain ``` POST /apple-pay/domains ``` Registers a domain with Apple Pay. This endpoint allows you to register your website domain with Apple Pay, which is required before you can accept Apple Pay payments on your website. The domain must be accessible via HTTPS and have a valid SSL certificate. Before registering, you must download this [domain association file](https://assets.monei.com/apple-pay/apple-developer-merchantid-domain-association/) and host it at `/.well-known/apple-developer-merchantid-domain-association` on your site. For example, if you're registering `example.com`, make that file available at `https://example.com/.well-known/apple-developer-merchantid-domain-association`. After registration, Apple will verify your domain. Once verified, you can display Apple Pay buttons and process Apple Pay payments on your website. ## Request[​](#request "Direct link to request") ## Responses[​](#responses "Direct link to Responses") * 200 * 400 * 401 * 404 * 422 * 500 * 503 A successful response The request is incorrect or could not be processed Unauthorized error. Please check your auth credentials The specified resource was not found The request was well-formed but could not be processed due to semantic errors Unexpected server error The service is temporarily unavailable --- # Apple Pay Domain The Apple Pay Domain API allows you to register and manage domains for Apple Pay integration. With the Apple Pay Domain API, you can: * Register domains to use with Apple Pay * View currently registered domains * Ensure your website is properly configured for Apple Pay payments Apple requires domain verification before you can accept Apple Pay payments on your website. This API simplifies the process of registering your domains with Apple Pay and maintaining your domain verification status. ## Domain registration process[​](#domain-registration-process "Direct link to Domain registration process") To accept Apple Pay on your website, you must register your domain with Apple. This process: 1. Verifies that you control the domain 2. Allows Apple Pay buttons to be displayed on your website 3. Enables secure payment processing through Apple Pay Once registered, your domain will be authorized to display Apple Pay payment options to customers. ## [📄️Register Domain](https://docs.monei.com/apis/rest/apple-pay-domain-register/.md) [Registers a domain with Apple Pay.](https://docs.monei.com/apis/rest/apple-pay-domain-register/.md) --- # Validate Phone ``` POST /bizum/validate-phone ``` Validates if a phone number is registered with Bizum. Use this endpoint to check if a customer's phone number can be used for Bizum payments before attempting to process a payment. This helps provide a better user experience by preventing failed payment attempts for non-registered numbers. The response will indicate whether the phone number is valid for Bizum payments. ## Request[​](#request "Direct link to request") ## Responses[​](#responses "Direct link to Responses") * 200 * 400 * 401 * 404 * 422 * 500 * 503 A successful response The request is incorrect or could not be processed Unauthorized error. Please check your auth credentials The specified resource was not found The request was well-formed but could not be processed due to semantic errors Unexpected server error The service is temporarily unavailable --- # Bizum The Bizum API allows you to integrate with Spain's popular mobile payment system. With the Bizum API, you can: * Validate customer phone numbers for Bizum compatibility * Process payments using Bizum as a payment method * Pre-authenticate payments (`transactionType: AUTH`) and capture funds later (up to 30 days) * Perform full and partial captures on pre-authenticated payments * Offer a seamless mobile payment experience for Spanish customers Bizum is a widely used payment method in Spain that allows customers to make payments using their mobile phone number linked to their bank account. This API provides the necessary tools to incorporate Bizum into your payment options. ## Bizum validation[​](#bizum-validation "Direct link to Bizum validation") Before processing a Bizum payment, you can validate if a customer's phone number is registered with Bizum using the validate-phone endpoint. ## [📄️Validate Phone](https://docs.monei.com/apis/rest/bizum-validate-phone/.md) [Validates if a phone number is registered with Bizum.](https://docs.monei.com/apis/rest/bizum-validate-phone/.md) --- Version: 1.9.0 Export * [OpenAPI Spec](https://js.monei.com/api/v1/openapi.json) # MONEI API v1 The MONEI API is organized around REST principles. Our API is designed to be intuitive and developer-friendly. ### Base URL[​](#base-url "Direct link to Base URL") All API requests should be made to: ``` https://api.monei.com/v1 ``` ### Environment[​](#environment "Direct link to Environment") MONEI provides two environments: * **Test Environment**: For development and testing without processing real payments * **Live Environment**: For processing real transactions in production ### Client Libraries[​](#client-libraries "Direct link to Client Libraries") We provide official SDKs to simplify integration: * [PHP SDK](https://github.com/MONEI/monei-php-sdk) * [Python SDK](https://github.com/MONEI/monei-python-sdk) * [Node.js SDK](https://github.com/MONEI/monei-node-sdk) * [Postman Collection](https://postman.monei.com/) Our SDKs handle authentication, error handling, and request formatting automatically. You can download the OpenAPI specification from the and generate your own client library using the [OpenAPI Generator](https://openapi-generator.tech/). ### Important Requirements[​](#important-requirements "Direct link to Important Requirements") * All API requests must be made over HTTPS * If you are not using our official SDKs, you **must provide a valid `User-Agent` header** with each request * Requests without proper authentication will return a `401 Unauthorized` error ### Error Handling[​](#error-handling "Direct link to Error Handling") The API returns consistent error codes and messages to help you troubleshoot issues. Each response includes a `statusCode` attribute indicating the outcome of your request. ### Rate Limits[​](#rate-limits "Direct link to Rate Limits") The API implements rate limiting to ensure stability. If you exceed the limits, requests will return a `429 Too Many Requests` status code. ## Authentication[​](#authentication "Direct link to Authentication") * API Key: APIKey * API Key: AccountId The MONEI API uses API keys to authenticate requests. Each request must include your API key in the `Authorization` header. You can view and manage your API keys in the [MONEI Dashboard](https://dashboard.monei.com/settings/api). MONEI provides two types of API keys: test mode keys (prefixed with `pk_test_`) and live mode keys (prefixed with `pk_live_`). | Security Scheme Type: | apiKey | | ---------------------- | ------------- | | Header parameter name: | Authorization | If you're integrating with MONEI as a partner or platform, you'll need to use both your Master Account API Key and the Account ID of the merchant you're acting on behalf of. You can find the Account ID for each connected merchant in your [MONEI Partner Dashboard](https://admin.monei.com). | Security Scheme Type: | apiKey | | ---------------------- | ---------------- | | Header parameter name: | MONEI-Account-ID | --- # Get Allowed Payment Methods ``` GET /allowed-payment-methods ``` Retrieve allowed payment methods for your account. Requires API key authentication. The account is automatically determined from the API key — no `accountId` parameter is needed. Can be called with no parameters to get all available payment methods. Optionally provide a `paymentId` to get payment methods for a specific transaction, or filter by `amount`, `currency`, or `countryCode`. > **Note:** This endpoint does not auto-detect the customer's country. Pass `countryCode` explicitly if you need country-based filtering. ## Request[​](#request "Direct link to request") ## Responses[​](#responses "Direct link to Responses") * 200 * 400 * 401 * 404 * 422 * 500 * 503 Available payment methods The request is incorrect or could not be processed Unauthorized error. Please check your auth credentials The specified resource was not found The request was well-formed but could not be processed due to semantic errors Unexpected server error The service is temporarily unavailable --- # Get Client Payment Methods ``` GET /client-payment-methods ``` Retrieve available payment methods from the client side. No authentication required. You must provide either an `accountId` or a `paymentId` as a query parameter. When providing a `paymentId`, the response includes payment-specific information such as amount and currency. If `countryCode` is not provided, it is automatically detected from the client's IP address to filter payment methods by geographic availability. You can also filter by `amount` or `currency`. ## Request[​](#request "Direct link to request") ## Responses[​](#responses "Direct link to Responses") * 200 * 400 * 401 * 404 * 422 * 500 * 503 Available payment methods The request is incorrect or could not be processed Unauthorized error. Please check your auth credentials The specified resource was not found The request was well-formed but could not be processed due to semantic errors Unexpected server error The service is temporarily unavailable --- # Get Payment Methods ``` GET /payment-methods ``` deprecated This endpoint has been deprecated and may be replaced or removed in future versions of the API. **Deprecated.** Use [Get Allowed Payment Methods](#tag/Payment-Methods/operation/paymentMethods_getAllowed) for server-side (API key) or [Get Client Payment Methods](#tag/Payment-Methods/operation/paymentMethods_getClient) for client-side usage instead. Retrieve available payment methods for an account or a specific payment. You can provide either an `accountId` or a `paymentId` as a query parameter to get the available payment methods. When providing a `paymentId`, the response will include additional payment-specific information such as amount and currency. You can also filter results by `amount`, `currency`, or `countryCode` to narrow down available payment methods. ## Request[​](#request "Direct link to request") ## Responses[​](#responses "Direct link to Responses") * 200 * 400 * 401 * 404 * 422 * 500 * 503 Available payment methods The request is incorrect or could not be processed Unauthorized error. Please check your auth credentials The specified resource was not found The request was well-formed but could not be processed due to semantic errors Unexpected server error The service is temporarily unavailable --- # Payment Methods The Payment Methods API allows you to retrieve available payment methods for an account or a specific payment. This information can be used to display appropriate payment options to your customers. Payment methods vary by country, currency, and merchant configuration. This API helps you dynamically determine which payment methods are available for a specific transaction or account. There are two main endpoints: * **Get Allowed Payment Methods** (`/allowed-payment-methods`) — Server-side endpoint that requires API key authentication. The account is determined from the API key. Use this from your backend. * **Get Client Payment Methods** (`/client-payment-methods`) — Client-side endpoint that does not require authentication. Requires either `accountId` or `paymentId` as a query parameter. Use this from browser-based payment forms. Country is auto-detected via GeoIP when not provided. The legacy `/payment-methods` endpoint is deprecated. Use the endpoints above instead. ## Payment Methods object[​](#payment-methods-object "Direct link to Payment Methods object") See [PaymentMethods](https://docs.monei.com/docs/apis/rest/schemas/paymentmethods/) for more information. ## [📄️Get Payment Methods](https://docs.monei.com/apis/rest/payment-methods-get/.md) [\*\*Deprecated.\*\* Use \[Get Allowed Payment Methods\](#tag/Payment-Methods/operation/paymentMethods\_getAllowed) for server-side (API key) or \[Get Client Payment Methods\](#tag/Payment-Methods/operation/paymentMethods\_getClient) for client-side usage instead.](https://docs.monei.com/apis/rest/payment-methods-get/.md) ## [📄️Get Allowed Payment Methods](https://docs.monei.com/apis/rest/payment-methods-get-allowed/.md) [Retrieve allowed payment methods for your account. Requires API key authentication.](https://docs.monei.com/apis/rest/payment-methods-get-allowed/.md) ## [📄️Get Client Payment Methods](https://docs.monei.com/apis/rest/payment-methods-get-client/.md) [Retrieve available payment methods from the client side. No authentication required.](https://docs.monei.com/apis/rest/payment-methods-get-client/.md) --- # Cancel Payment ``` POST /payments/:id/cancel ``` Releases reserved funds from a previously authorized payment. This endpoint can only be used with payments in `AUTHORIZED` status. This operation is part of the two-step authorization flow: 1. **Authorize**: Create a payment with `transactionType: AUTH` to reserve funds 2. **Cancel**: Release the reserved funds if you decide not to capture the payment Cancellation makes the reserved funds available to the customer again and prevents you from being able to capture those funds in the future. Once cancelled, an authorization cannot be reactivated. ## Request[​](#request "Direct link to request") ## Responses[​](#responses "Direct link to Responses") * 200 * 400 * 401 * 404 * 422 * 500 * 503 A payment object The request is incorrect or could not be processed Unauthorized error. Please check your auth credentials The specified resource was not found The request was well-formed but could not be processed due to semantic errors Unexpected server error The service is temporarily unavailable --- # Capture Payment ``` POST /payments/:id/capture ``` Captures funds from a previously authorized payment. This endpoint can only be used with payments in `AUTHORIZED` status. Both full and partial captures are supported — specify an `amount` less than or equal to the original authorized amount to perform a partial capture. This operation completes the two-step authorization flow: 1. **Authorize**: Create a payment with `transactionType: AUTH` to hold or validate funds 2. **Capture**: Transfer the funds to your account when ready to fulfill the order **Important**: The capture window depends on the payment method: * **Card payments**: Authorized payments expire after **7 days**. * **Bizum payments**: Authorized payments expire after **30 days**. After expiration, they will be marked as `EXPIRED` and can no longer be captured. Be sure to capture funds within the applicable timeframe or communicate with your customer about a new payment. ## Request[​](#request "Direct link to request") ## Responses[​](#responses "Direct link to Responses") * 200 * 400 * 401 * 404 * 422 * 500 * 503 A payment object The request is incorrect or could not be processed Unauthorized error. Please check your auth credentials The specified resource was not found The request was well-formed but could not be processed due to semantic errors Unexpected server error The service is temporarily unavailable --- # Confirm Payment ``` POST /payments/:id/confirm ``` Confirms a payment that was created without payment details. This endpoint can only be used with payments in `PENDING` status. The two-step payment flow: 1. **Create**: First, create a payment without payment details (status: `PENDING`) 2. **Confirm**: Then provide payment details to complete the transaction When confirming a payment, you can use: * A newly generated `paymentToken` from [monei.js Components](https://docs.monei.com/monei-js/overview/) * A permanent `paymentToken` from a previous payment (generated with `generatePaymentToken: true`) Using permanent payment tokens enables one-click checkout experiences for returning customers without requiring them to re-enter their payment information. You can provide additional customer information during confirmation, which will override any corresponding information originally passed in the payment creation request. ## Request[​](#request "Direct link to request") ## Responses[​](#responses "Direct link to Responses") * 200 * 400 * 401 * 404 * 422 * 500 * 503 A payment object The request is incorrect or could not be processed Unauthorized error. Please check your auth credentials The specified resource was not found The request was well-formed but could not be processed due to semantic errors Unexpected server error The service is temporarily unavailable --- # Create Payment ``` POST /payments ``` Creates a new payment with the specified parameters. You can create a payment in two ways: 1. **Immediate processing**: Provide a `paymentToken` or `paymentMethod` - The payment will be processed instantly 2. **Deferred processing**: Create without payment details - The payment remains in `PENDING` status until you confirm it later using the [confirm endpoint](https://docs.monei.com/apis/rest/payments-confirm/) When creating a payment without payment details, you can redirect customers to the hosted payment page where they can select their preferred payment method and complete the transaction. For immediate processing, use one of these token options: * A temporary `paymentToken` generated on the frontend using [monei.js Components](https://docs.monei.com/monei-js/overview/) * A permanent `paymentToken` from a previous successful payment (when `generatePaymentToken: true` was included) Permanent tokens enable one-click checkout experiences for returning customers by allowing you to securely store and reuse payment details without requiring customers to re-enter their information. ## Request[​](#request "Direct link to request") ## Responses[​](#responses "Direct link to Responses") * 200 * 400 * 401 * 404 * 422 * 500 * 503 A payment object The request is incorrect or could not be processed Unauthorized error. Please check your auth credentials The specified resource was not found The request was well-formed but could not be processed due to semantic errors Unexpected server error The service is temporarily unavailable --- # Get Payment ``` GET /payments/:id ``` Retrieves the complete details of an existing payment by its unique ID. This endpoint returns all available information about the payment, including its current status, amount, customer details, timestamps, and transaction history. Use this to check the status of a payment, verify payment details, or retrieve information for your records. Supply the unique payment ID that was returned from your previous request. ## Request[​](#request "Direct link to request") ## Responses[​](#responses "Direct link to Responses") * 200 * 400 * 401 * 404 * 422 * 500 * 503 A payment object The request is incorrect or could not be processed Unauthorized error. Please check your auth credentials The specified resource was not found The request was well-formed but could not be processed due to semantic errors Unexpected server error The service is temporarily unavailable --- # Recurring Payment ``` POST /payments/:sequenceId/recurring ``` Creates a subsequent charge using the payment details from a previous transaction. This endpoint enables recurring billing and subscription payments by: * Using the same payment method as the original payment * Charging the customer without requiring them to re-enter payment details * Supporting variable or fixed amounts (defaults to the original payment amount if not specified) **Prerequisites:** 1. The initial payment must be created with the `sequence` parameter 2. The initial payment will return a `sequenceId` in the response 3. This `sequenceId` must be provided in the URL path when making subsequent recurring charges Ideal for subscription services, membership renewals, and installment payments. **Need more advanced subscription management?** For comprehensive subscription management with features like billing cycles, trial periods, and automatic recurring billing, consider using the [Subscriptions API](https://docs.monei.com/apis/rest/subscriptions/) instead. It provides a complete solution for creating and managing subscription-based services. ## Request[​](#request "Direct link to request") ## Responses[​](#responses "Direct link to Responses") * 200 * 400 * 401 * 404 * 422 * 500 * 503 A payment object The request is incorrect or could not be processed Unauthorized error. Please check your auth credentials The specified resource was not found The request was well-formed but could not be processed due to semantic errors Unexpected server error The service is temporarily unavailable --- # Refund Payment ``` POST /payments/:id/refund ``` Returns funds from a completed payment back to the customer's original payment method. **Refund options:** * **Full refund**: Return the entire payment amount * **Partial refund**: Specify an amount less than the original payment * **Multiple partial refunds**: Issue several partial refunds until the total payment amount is reached **Limitations:** * You can only refund payments that have been successfully processed * A payment can only be refunded up to its original amount * Once fully refunded, a payment cannot be refunded again * Attempting to refund more than the remaining available amount will result in an error ## Request[​](#request "Direct link to request") ## Responses[​](#responses "Direct link to Responses") * 200 * 400 * 401 * 404 * 422 * 500 * 503 A payment object The request is incorrect or could not be processed Unauthorized error. Please check your auth credentials The specified resource was not found The request was well-formed but could not be processed due to semantic errors Unexpected server error The service is temporarily unavailable --- # Send Payment Link ``` POST /payments/:id/link ``` Sends a payment link to the customer through their preferred communication channel. **This API can only be used for payments with the following status:** * Pending **Delivery channels are automatically selected based on available customer information:** * If customer email is available: Link is sent via email * If customer phone is available: Link is sent via WhatsApp * If WhatsApp delivery fails: Link is sent via SMS as a fallback The payment link allows customers to complete the payment at their convenience using their preferred payment method on the secure MONEI payment page. If no customer contact information is provided, the system will use the details stored in the payment record. ## Request[​](#request "Direct link to request") ## Responses[​](#responses "Direct link to Responses") * 200 * 400 * 401 * 404 * 422 * 500 * 503 A payment object The request is incorrect or could not be processed Unauthorized error. Please check your auth credentials The specified resource was not found The request was well-formed but could not be processed due to semantic errors Unexpected server error The service is temporarily unavailable --- # Send Payment Receipt ``` POST /payments/:id/receipt ``` Sends a payment receipt to the customer through their preferred communication channel. **This API can only be used for payments with the following status:** * Succeeded **Delivery channels are automatically selected based on available customer information:** * If customer email is available: Receipt is sent via email * If customer phone is available: Receipt is sent via WhatsApp * If WhatsApp delivery fails: Receipt is sent via SMS as a fallback The receipt includes payment details such as amount, date, transaction ID, and merchant information, providing customers with a record of their successful transaction. If no customer contact information is provided, the system will use the details stored in the payment record. ## Request[​](#request "Direct link to request") ## Responses[​](#responses "Direct link to Responses") * 200 * 400 * 401 * 404 * 422 * 500 * 503 A payment object The request is incorrect or could not be processed Unauthorized error. Please check your auth credentials The specified resource was not found The request was well-formed but could not be processed due to semantic errors Unexpected server error The service is temporarily unavailable --- # Send Payment Request ``` POST /payments/:id/rtp ``` Sends a direct payment request to the customer's phone with smart channel selection. **Smart delivery logic based on customer phone capabilities:** * If the phone number is registered with Bizum and that payment method is available: The customer receives a push notification in their banking app to instantly approve the payment * If Bizum is not available or the phone is not registered with Bizum: The customer receives a payment link via WhatsApp to complete the payment This endpoint provides a streamlined payment experience, especially for Spanish customers with Bizum integration, enabling quick and convenient mobile payments. ## Request[​](#request "Direct link to request") ## Responses[​](#responses "Direct link to Responses") * 200 * 400 * 401 * 404 * 422 * 500 * 503 A payment object The request is incorrect or could not be processed Unauthorized error. Please check your auth credentials The specified resource was not found The request was well-formed but could not be processed due to semantic errors Unexpected server error The service is temporarily unavailable --- # Payments The Payments API provides a comprehensive platform for processing transactions and managing the complete payment lifecycle. ### Core Payment Operations[​](#core-payment-operations "Direct link to Core Payment Operations") * Create and process payments with multiple payment methods * Authorize payments and capture funds later * Cancel authorized payments to release reserved funds * Refund payments partially or in full * Generate detailed receipts for completed payments ### Customer Experience Features[​](#customer-experience-features "Direct link to Customer Experience Features") * Send payment requests via WhatsApp, SMS, or Bizum * Create and distribute payment links through various channels * Generate permanent payment tokens for one-click checkout experiences * Support recurring billing and subscription payments ### Implementation Best Practices[​](#implementation-best-practices "Direct link to Implementation Best Practices") * Create one payment per order or customer session for clear transaction records * Use the unique payment ID for all subsequent operations on a payment * Generate permanent payment tokens (with `generatePaymentToken: true`) for returning customers * Implement webhook notifications to receive real-time payment status updates ## Payment Status Codes[​](#payment-status-codes "Direct link to Payment Status Codes") The MONEI API returns a `statusCode` attribute in the Payment response to indicate the outcome of your request. This helps you understand whether an operation was successful or why it failed. ### Success Codes[​](#success-codes "Direct link to Success Codes") Successful transactions return the following codes: | Code | Message | | ---- | ---------------------------------- | | E000 | Transaction approved | | E001 | Transaction pending processing | | E002 | Transaction pending authentication | | E003 | Transaction pending authorization | | E004 | Transaction expired | ### Error Codes[​](#error-codes "Direct link to Error Codes") Error codes are grouped by category to help you quickly identify the type of issue: #### Configuration Errors (E1xx)[​](#configuration-errors-e1xx "Direct link to Configuration Errors (E1xx)") These errors relate to account configuration issues: | Code | Message | | ---- | ------------------------------------------------------------------------------------------------------------ | | E101 | Error with payment processor configuration. Check this in your dashboard or contact MONEI for support | | E102 | Invalid or inactive MID. Please contact the acquiring entity | | E103 | Operation not allowed/configured for this merchant. Please contact the acquiring entity or MONEI for support | | E104 | Partial captures are not enabled in your account, please contact MONEI support | | E105 | MOTO Payment are not enabled in your account, please contact MONEI support | #### Authentication and Request Errors (E15x)[​](#authentication-and-request-errors-e15x "Direct link to Authentication and Request Errors (E15x)") These errors indicate issues with your API request format or authentication: | Code | Message | | ---- | ----------------------------------------------------------------------------- | | E150 | Invalid or malformed request. Please check the message format | | E151 | Missing or malformed signature/auth | | E152 | Error while decrypting request | | E153 | Pre-authorization is expired and cannot be canceled or captured | | E154 | The payment date cannot be less than the cancellation or capture date | | E155 | The cancellation date exceeded the date allowed for pre-authorized operations | | E156 | Unauthorized token | #### Transaction Processing Errors (E2xx)[​](#transaction-processing-errors-e2xx "Direct link to Transaction Processing Errors (E2xx)") These errors occur during payment processing: | Code | Message | | ---- | ----------------------------------------------------------------- | | E200 | Transaction failed during payment processing | | E201 | Transaction declined by the card-issuing bank | | E202 | Transaction declined by the issuing bank | | E203 | Payment method not allowed | | E204 | Wrong or not allowed currency | | E205 | Incorrect reference / transaction does not exist | | E206 | Invalid payment method | | E207 | Transaction failed: process time exceeded | | E208 | Transaction is currently being processed | | E209 | Duplicated operation | | E210 | Wrong or not allowed payment amount | | E211 | Refund declined by processor | | E212 | Transaction has already been captured | | E213 | Transaction has already been canceled | | E214 | The amount to be captured cannot exceed the pre-authorized amount | | E215 | The transaction to be captured has not been pre-authorized yet | | E216 | The transaction to be canceled has not been pre-authorized yet | | E217 | Transaction denied by processor to avoid duplicated operations | | E218 | Error during payment request validation | | E219 | Refund declined due to exceeded amount | | E220 | Transaction has already been fully refunded | | E221 | Transaction declined due to insufficient funds | | E222 | The user has canceled the payment | | E223 | Waiting for the transaction to be completed | | E224 | No reason to decline | | E225 | Refund not allowed | | E226 | Transaction cannot be completed, violation of law | | E227 | Stop Payment Order | | E228 | Strong Customer Authentication required | | E229 | Expired payment method | | E230 | Account or card is closed | | E231 | Transaction declined. PIN verification not available | #### 3D Secure Related Errors (E3xx)[​](#3d-secure-related-errors-e3xx "Direct link to 3D Secure Related Errors (E3xx)") These errors are related to 3D Secure authentication: | Code | Message | | ---- | ---------------------------------------------------- | | E300 | Transaction declined due to security restrictions | | E301 | 3D Secure authentication failed | | E302 | Authentication process timed out. Please try again | | E303 | An error occurred during the 3D Secure process | | E304 | Invalid or malformed 3D Secure request | | E305 | Exemption not allowed | | E306 | Exemption error | | E307 | Fraud control error | | E308 | External MPI received wrong. Please check the data | | E309 | External MPI not enabled. Please contact support | | E310 | Transaction confirmation rejected by the merchant | | E311 | Transaction failed during the authentication process | #### Fraud Detection Errors (E4xx)[​](#fraud-detection-errors-e4xx "Direct link to Fraud Detection Errors (E4xx)") These errors are related to fraud detection and risk rules: | Code | Message | | ---- | ------------------------------------------------------ | | E400 | Transaction declined. Please contact your issuing bank | | E401 | Transaction declined. Please contact your issuing bank | #### Card Related Errors (E5xx)[​](#card-related-errors-e5xx "Direct link to Card Related Errors (E5xx)") These errors are specific to card payments: | Code | Message | | ---- | ------------------------------------------------------------------ | | E500 | Transaction declined during card payment process | | E501 | Card rejected: invalid card number | | E502 | Card rejected: wrong expiration date | | E503 | Card rejected: wrong CVC/CVV2 number | | E504 | Card number not registered | | E505 | Card is expired | | E506 | Error during payment authorization. Please try again | | E507 | Cardholder has canceled the payment | | E508 | Transaction declined: AMEX cards not accepted by payment processor | | E509 | Card blocked temporarily or under suspicion of fraud | | E510 | Card does not allow pre-authorization operations | | E511 | CVC/CVV2 number is required | | E512 | Unsupported card type | | E513 | Transaction type not allowed for this type of card | | E514 | Transaction declined by card issuer | | E515 | Implausible card data | | E516 | Incorrect PIN | | E517 | Transaction not allowed for cardholder | | E518 | The amount exceeds the card limit | | E519 | Invalid terminal | #### Digital Wallet Errors (E6xx)[​](#digital-wallet-errors-e6xx "Direct link to Digital Wallet Errors (E6xx)") These errors are related to digital wallet payments: | Code | Message | | ---- | -------------------------------------------------------------- | | E600 | Transaction declined during ApplePay/GooglePay payment process | | E601 | Incorrect ApplePay or GooglePay configuration | #### PayPal Related Errors (E62x)[​](#paypal-related-errors-e62x "Direct link to PayPal Related Errors (E62x)") These errors are specific to PayPal payments: | Code | Message | | ---- | -------------------------------------------------------------------- | | E620 | Transaction declined during PayPal payment process | | E621 | Transaction declined during PayPal payment process: invalid currency | #### Bizum Related Errors (E64x-E65x)[​](#bizum-related-errors-e64x-e65x "Direct link to Bizum Related Errors (E64x-E65x)") These errors are specific to Bizum payments: | Code | Message | | ---- | -------------------------------------------------------------------------- | | E640 | Bizum transaction declined after three authentication attempts | | E641 | Bizum transaction declined due to failed authorization | | E642 | Bizum transaction declined due to insufficient funds | | E643 | Bizum transaction canceled: the user does not want to continue | | E644 | Bizum transaction rejected by destination bank | | E645 | Bizum transaction rejected by origin bank | | E646 | Bizum transaction rejected by processor | | E647 | Bizum transaction failed while connecting with processor. Please try again | | E648 | Bizum transaction failed, payee is not found | | E649 | Bizum transaction failed, payer is not found | | E650 | Bizum REST not implemented | | E651 | Bizum transaction declined due to failed authentication | | E652 | The customer has disabled Bizum, please use another payment method | | E653 | The issuer does not support recurring payments with Bizum | #### Click To Pay Related Errors (E68x)[​](#click-to-pay-related-errors-e68x "Direct link to Click To Pay Related Errors (E68x)") These errors are specific to ClickToPay payments: | Code | Message | | ---- | ------------------------------------------------------ | | E680 | Transaction declined during ClickToPay payment process | | E681 | Incorrect ClickToPay configuration | #### Cofidis-related Errors (E7xx)[​](#cofidis-related-errors-e7xx "Direct link to Cofidis-related Errors (E7xx)") These errors are specific to Cofidis payments: | Code | Message | | ---- | --------------------------------------------------- | | E700 | Transaction declined during Cofidis payment process | #### System Errors (E9xx)[​](#system-errors-e9xx "Direct link to System Errors (E9xx)") These errors indicate system-level issues: | Code | Message | | ---- | ---------------------------------------------- | | E999 | Service internal error. Please contact support | ## [📄️Create Payment](https://docs.monei.com/apis/rest/payments-create/.md) [Creates a new payment with the specified parameters.](https://docs.monei.com/apis/rest/payments-create/.md) ## [📄️Get Payment](https://docs.monei.com/apis/rest/payments-get/.md) [Retrieves the complete details of an existing payment by its unique ID.](https://docs.monei.com/apis/rest/payments-get/.md) ## [📄️Confirm Payment](https://docs.monei.com/apis/rest/payments-confirm/.md) [Confirms a payment that was created without payment details. This endpoint can only be used with](https://docs.monei.com/apis/rest/payments-confirm/.md) ## [📄️Capture Payment](https://docs.monei.com/apis/rest/payments-capture/.md) [Captures funds from a previously authorized payment. This endpoint can only be used with payments](https://docs.monei.com/apis/rest/payments-capture/.md) ## [📄️Cancel Payment](https://docs.monei.com/apis/rest/payments-cancel/.md) [Releases reserved funds from a previously authorized payment. This endpoint can only](https://docs.monei.com/apis/rest/payments-cancel/.md) ## [📄️Refund Payment](https://docs.monei.com/apis/rest/payments-refund/.md) [Returns funds from a completed payment back to the customer's original payment method.](https://docs.monei.com/apis/rest/payments-refund/.md) ## [📄️Recurring Payment](https://docs.monei.com/apis/rest/payments-recurring/.md) [Creates a subsequent charge using the payment details from a previous transaction.](https://docs.monei.com/apis/rest/payments-recurring/.md) ## [📄️Send Payment Request](https://docs.monei.com/apis/rest/payments-send-request/.md) [Sends a direct payment request to the customer's phone with smart channel selection.](https://docs.monei.com/apis/rest/payments-send-request/.md) ## [📄️Send Payment Link](https://docs.monei.com/apis/rest/payments-send-link/.md) [Sends a payment link to the customer through their preferred communication channel.](https://docs.monei.com/apis/rest/payments-send-link/.md) ## [📄️Send Payment Receipt](https://docs.monei.com/apis/rest/payments-send-receipt/.md) [Sends a payment receipt to the customer through their preferred communication channel.](https://docs.monei.com/apis/rest/payments-send-receipt/.md) --- # Create POS Auth Token ``` POST /pos/auth-token ``` Generates an RS256-signed JWT token for POS terminal authentication. Use this endpoint to create an auth token that a POS terminal (via MONEI Pay) can use to process payments. This is designed for app-to-app flows where your backend generates the token and passes it to the MONEI Pay app running on a POS device. Both `pointOfSaleId` and `storeId` are optional. When provided, the resulting payments will be associated with the specified terminal and store. If `pointOfSaleId` is omitted, the terminal will be assigned an identifier automatically. The token is valid for 24 hours. ## Request[​](#request "Direct link to request") ## Responses[​](#responses "Direct link to Responses") * 200 * 400 * 401 * 500 * 503 A successful response The request is incorrect or could not be processed Unauthorized error. Please check your auth credentials Unexpected server error The service is temporarily unavailable --- # POS Auth Token The POS Auth Token API generates authentication tokens for point-of-sale (POS) terminals. These tokens enable app-to-app communication where a merchant application generates a POS auth token via API key, then sends it to MONEI Pay to create payments on a POS terminal. The generated token is an RS256-signed JWT valid for 24 hours, containing the merchant account context and optional POS terminal and store identifiers. ## [📄️Create POS Auth Token](https://docs.monei.com/apis/rest/pos-auth-token-create/.md) [Generates an RS256-signed JWT token for POS terminal authentication.](https://docs.monei.com/apis/rest/pos-auth-token-create/.md) --- # AccountId MONEI Account identifier. **string**AccountId MONEI Account identifier. **Example: **`aa9333ba-82de-400c-9ae7-087b9f8d2242` AccountId ``` "aa9333ba-82de-400c-9ae7-087b9f8d2242" ``` --- # ActivateApplePayCertificateRequest **cert**stringrequired The signed certificate from Apple in base64 format. Download this from Apple Developer Portal after creating the certificate with your CSR. **Example: **`MIIEpDCCA4ygAwIBAgIIU...` ActivateApplePayCertificateRequest ``` { "cert": "MIIEpDCCA4ygAwIBAgIIU..." } ``` --- # ActivateSubscriptionRequest **paymentToken**Payment-PaymentToken A payment token generated by monei.js [Components](https://docs.monei.com/monei-js/overview/) or a paymentToken [saved after a previous successful payment](https://docs.monei.com/guides/save-payment-method/). In case of the first one, you will also need to send the `sessionId` used to generate the token in the first place. **Example: **`7cc38b08ff471ccd313ad62b23b9f362b107560b` **sessionId**Payment-SessionId A unique identifier within your system that adds security to the payment process. You need to pass the same session ID as the one used on the frontend to initialize MONEI Component (if you needed to). This is required if a payment token (not permanent) was already generated in the frontend. **Example: **`39603551437913` **addAmount**int32 The amount to be added to the subscription's initial payment. A positive integer representing how much to charge in the smallest currency unit (e.g., 100 cents to charge 1.00 USD). **Example: **`110` **allowedPaymentMethods**string\[] List of payment methods allowed for subscriptions. | Enum Value | Description | | ---------- | ----------- | | card | Card | | bizum | Bizum | **Example: **`["card","bizum"]` **sequenceId**Payment-SequenceId A permanent identifier that refers to the initial payment of a sequence of payments. This value needs to be sent in the path for `RECURRING` payments. **Example: **`62b23b9f3627cc38b08ff471ccd313ad` **completeUrl**Payment-CompleteUrl The URL the customer will be directed to after transaction completed (successful or failed - except if `failUrl` is provided). **Example: **`https://example.com/checkout/complete` **failUrl**Payment-FailUrl The URL the customer will be directed to after transaction has failed, instead of `completeUrl` (used in hosted payment page). This allows to provide two different URLs for successful and failed payments. **Example: **`https://example.com/checkout/fail` **cancelUrl**Payment-CancelUrl The URL the customer will be directed to if they decide to cancel payment and return to your website (used in hosted payment page). **Example: **`https://example.com/checkout/cancel` **metadata**object A set of key-value pairs that you can attach to a resource. This can be useful for storing additional information about the resource in a structured format. **Example: **`{"systemId":"12345"}` ActivateSubscriptionRequest ``` { "paymentToken": "7cc38b08ff471ccd313ad62b23b9f362b107560b", "sessionId": "39603551437913", "addAmount": 110, "allowedPaymentMethods": [ "card", "bizum" ], "sequenceId": "62b23b9f3627cc38b08ff471ccd313ad", "completeUrl": "https://example.com/checkout/complete", "failUrl": "https://example.com/checkout/fail", "cancelUrl": "https://example.com/checkout/cancel", "metadata": { "systemId": "12345" } } ``` --- # Address **country**Country Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). **Example: **`ES` **city**string City, district, suburb, town, or village. **Example: **`Málaga` **line1**string Address line 1 (e.g., street, PO Box, or company name). **Example: **`Fake Street 123` **line2**string Address line 2 (e.g., apartment, suite, unit, or building). **Example: **`null` **zip**string ZIP or postal code. **Example: **`1234` **state**string State, county, province, or region. **Example: **`Málaga` Address ``` { "country": "ES", "city": "Málaga", "line1": "Fake Street 123", "line2": null, "zip": "1234", "state": "Málaga" } ``` --- # ApiException **status**stringrequired Error type identifier **statusCode**int32required HTTP status code **message**stringrequired Human-readable error message **requestId**stringrequired Unique identifier for the request **Example: **`df011689-bd3e-4953-95ca-c7bbdacaf6f8` **requestTime**date-timerequired Timestamp when the request was processed **Example: **`2025-03-05T10:25:52Z` ApiException ``` { "status": "string", "statusCode": 0, "message": "string", "requestId": "df011689-bd3e-4953-95ca-c7bbdacaf6f8", "requestTime": "2025-03-05T10:25:52Z" } ``` --- # ApplePayCertificate An Apple Pay certificate for iOS app integration. **id**stringrequired Unique identifier of the certificate. **Example: **`a6ea0c67-d061-4f7c-9e3b-4a96a6e1e8b1` **accountId**stringrequired The account ID this certificate belongs to. **Example: **`acct_12345` **csr**string The Certificate Signing Request in base64 format. Only present before activation. Use this to create a certificate in Apple Developer Portal. **Example: **`MIIBEjCBuQIBADBOMRMwE...` **cert**string The certificate body in base64 format. Only present after activation. **Example: **`MIIEpDCCA4ygAwIBAgIIU...` **active**booleanrequired Whether the certificate is active for payment processing. **Example: **`true` **expireAt**date-time The certificate expiration date in ISO 8601 format. Only present after activation. **Example: **`2026-01-15T12:00:00.000Z` **createdAt**date-timerequired The certificate creation date in ISO 8601 format. **Example: **`2024-01-15T12:00:00.000Z` ApplePayCertificate ``` { "id": "a6ea0c67-d061-4f7c-9e3b-4a96a6e1e8b1", "accountId": "acct_12345", "csr": "MIIBEjCBuQIBADBOMRMwE...", "cert": "MIIEpDCCA4ygAwIBAgIIU...", "active": true, "expireAt": "2026-01-15T12:00:00.000Z", "createdAt": "2024-01-15T12:00:00.000Z" } ``` --- # BadRequestError **status**stringrequired Error type identifier **Example: **`BadRequestError` **statusCode**int32required HTTP status code **Example: **`400` **message**stringrequired Human-readable error message **Example: **`Bad request` **requestId**stringrequired Unique identifier for the request **Example: **`df011689-bd3e-4953-95ca-c7bbdacaf6f8` **requestTime**date-timerequired Timestamp when the request was processed **Example: **`2025-03-05T10:25:52Z` BadRequestError ``` { "status": "BadRequestError", "statusCode": 400, "message": "Bad request", "requestId": "df011689-bd3e-4953-95ca-c7bbdacaf6f8", "requestTime": "2025-03-05T10:25:52Z" } ``` --- # Browser The browser used in this browser session (e.g., `Mobile Safari`). **string**Browser The browser used in this browser session (e.g., `Mobile Safari`). **Example: **`Chrome` Browser ``` "Chrome" ``` --- # BrowserAccept Browser accept header. **string**BrowserAccept Browser accept header. **Example: **`text/html,application/xhtml+xml,application/json` BrowserAccept ``` "text/html,application/xhtml+xml,application/json" ``` --- # BrowserColorDepth The color depth of the browser session (e.g., `24`). **string**BrowserColorDepth The color depth of the browser session (e.g., `24`). **Example: **`24` BrowserColorDepth ``` "24" ``` --- # BrowserScreenHeight The screen height of the browser session (e.g., `1152`). **string**BrowserScreenHeight The screen height of the browser session (e.g., `1152`). **Example: **`1152` BrowserScreenHeight ``` "1152" ``` --- # BrowserScreenWidth The screen width of the browser session (e.g., `2048`). **string**BrowserScreenWidth The screen width of the browser session (e.g., `2048`). **Example: **`2048` BrowserScreenWidth ``` "2048" ``` --- # BrowserTimezoneOffset The timezone offset of the browser session (e.g., `-120`). **string**BrowserTimezoneOffset The timezone offset of the browser session (e.g., `-120`). **Example: **`-120` BrowserTimezoneOffset ``` "-120" ``` --- # BrowserVersion The version for the browser session (e.g., `13.1.1`). **string**BrowserVersion The version for the browser session (e.g., `13.1.1`). **Example: **`83.0.4103.116` BrowserVersion ``` "83.0.4103.116" ``` --- # CancelPaymentRequest **cancellationReason**Payment-CancellationReason The reason for canceling the Payment. | Enum Value | Description | | --------------- | --------------------------------- | | order\_canceled | The underlying order was canceled | **Possible values:** \[`duplicated`, `fraudulent`, `requested_by_customer`, `order_canceled`] **Example: **`null` CancelPaymentRequest ``` { "cancellationReason": null } ``` --- # CancelSubscriptionRequest **cancelAtPeriodEnd**Subscription-CancelAtPeriodEnd If true, the subscription will be canceled at the end of the current period. **Example: **`false` CancelSubscriptionRequest ``` { "cancelAtPeriodEnd": false } ``` --- # CapturePaymentRequest **amount**int32 The amount to capture, which must be less than or equal to the original amount. Any additional amount will be automatically refunded. **Example: **`110` CapturePaymentRequest ``` { "amount": 110 } ``` --- # CardholderEmail The cardholder's email address. **string**CardholderEmail The cardholder's email address. **Example: **`john.doe@monei.com` CardholderEmail ``` "john.doe@monei.com" ``` --- # CardholderName The cardholder's name, as stated in the credit card. **string**CardholderName The cardholder's name, as stated in the credit card. **Example: **`John Doe` CardholderName ``` "John Doe" ``` --- # ConfirmPaymentRequest **paymentToken**Payment-PaymentTokenrequired A payment token generated by monei.js [Components](https://docs.monei.com/monei-js/overview/) or a paymentToken [saved after a previous successful payment](https://docs.monei.com/guides/save-payment-method/). **Example: **`7cc38b08ff471ccd313ad62b23b9f362b107560b` **paymentMethod** object Additional information about the payment method used for this payment. **card** object Additional information about the card used for this payment. **cardholderName**CardholderName The cardholder's name, as stated in the credit card. **Example: **`John Doe` **cardholderEmail**CardholderEmail The cardholder's email address. **Example: **`john.doe@monei.com` **generatePaymentToken**Payment-GeneratePaymentToken If set to true a permanent token that represents a payment method used in the payment will be generated. **Default value: **`false` **Example: **`false` **customer** object **email**string The customer's email address. **Example: **`john.doe@example.com` **name**string The customer's full name or business name. **Example: **`John Doe` **phone**string The customer's phone number in E.164 format. **Example: **`null` **billingDetails** object Billing information associated with the payment method at the time of the transaction. **name**string The customer's billing full name. **Example: **`John Doe` **email**string The customer's billing email address. **Example: **`john.doe@example.com` **phone**string The customer's billing phone number in E.164 format. **Example: **`null` **company**string Billing company name. **Example: **`null` **taxId**string Company tax ID. **Example: **`null` **address** object **country**Country Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). **Example: **`ES` **city**string City, district, suburb, town, or village. **Example: **`Málaga` **line1**string Address line 1 (e.g., street, PO Box, or company name). **Example: **`Fake Street 123` **line2**string Address line 2 (e.g., apartment, suite, unit, or building). **Example: **`null` **zip**string ZIP or postal code. **Example: **`1234` **state**string State, county, province, or region. **Example: **`Málaga` **shippingDetails** object Shipping information associated with the payment. **name**string The shipping customer's full name. **Example: **`John Doe` **email**string The shipping customer's email address. **Example: **`john.doe@example.com` **phone**string The shipping customer's phone number in E.164 format. **Example: **`null` **company**string Name of the company where the shipment is going. **Example: **`null` **taxId**string Company tax ID. **Example: **`null` **address** object **country**Country Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). **Example: **`ES` **city**string City, district, suburb, town, or village. **Example: **`Málaga` **line1**string Address line 1 (e.g., street, PO Box, or company name). **Example: **`Fake Street 123` **line2**string Address line 2 (e.g., apartment, suite, unit, or building). **Example: **`null` **zip**string ZIP or postal code. **Example: **`1234` **state**string State, county, province, or region. **Example: **`Málaga` **sessionDetails** Payment-SessionDetails Information related to the browsing session of the user who initiated the payment. **ip**IP The IP address where the operation originated. **Example: **`100.100.200.100` **countryCode**Country Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). **Example: **`ES` **lang**Lang Two-letter language code ([ISO 639-1](https://en.wikipedia.org/wiki/ISO_639-1)). **Example: **`es` **deviceType**DeviceType Device type, could be `desktop`, `mobile`, `smartTV`, `tablet`. **Example: **`desktop` **deviceModel**DeviceModel Information about the device used for the browser session (e.g., `iPhone`). **Example: **`null` **browser**Browser The browser used in this browser session (e.g., `Mobile Safari`). **Example: **`Chrome` **browserVersion**BrowserVersion The version for the browser session (e.g., `13.1.1`). **Example: **`83.0.4103.116` **os**Os Operation system (e.g., `iOS`). **Example: **`Mac OS` **osVersion**OsVersion Operation system version (e.g., `13.5.1`). **Example: **`10.15.4` **source**Source The source component from where the operation was generated (mostly for our SDK's). **Example: **`MONEI/PHP` **sourceVersion**SourceVersion The source component version from where the operation was generated (mostly for our SDK's). **Example: **`0.1.2` **userAgent**UserAgent Full user agent string of the browser session. **Example: **`Mozilla/5.0 (Windows NT 10.0; Win64; x64) ...` **browserAccept**BrowserAccept Browser accept header. **Example: **`text/html,application/xhtml+xml,application/json` **browserColorDepth**BrowserColorDepth The color depth of the browser session (e.g., `24`). **Example: **`24` **browserScreenHeight**BrowserScreenHeight The screen height of the browser session (e.g., `1152`). **Example: **`1152` **browserScreenWidth**BrowserScreenWidth The screen width of the browser session (e.g., `2048`). **Example: **`2048` **browserTimezoneOffset**BrowserTimezoneOffset The timezone offset of the browser session (e.g., `-120`). **Example: **`-120` **metadata**object A set of key-value pairs that you can attach to a resource. This can be useful for storing additional information about the resource in a structured format. **Example: **`{"systemId":"12345"}` ConfirmPaymentRequest ``` { "paymentToken": "7cc38b08ff471ccd313ad62b23b9f362b107560b", "paymentMethod": { "card": { "cardholderName": "John Doe", "cardholderEmail": "john.doe@monei.com" } }, "generatePaymentToken": false, "customer": { "email": "john.doe@example.com", "name": "John Doe", "phone": null }, "billingDetails": { "name": "John Doe", "email": "john.doe@example.com", "phone": null, "company": null, "taxId": null, "address": { "country": "ES", "city": "Málaga", "line1": "Fake Street 123", "line2": null, "zip": "1234", "state": "Málaga" } }, "shippingDetails": { "name": "John Doe", "email": "john.doe@example.com", "phone": null, "company": null, "taxId": null, "address": { "country": "ES", "city": "Málaga", "line1": "Fake Street 123", "line2": null, "zip": "1234", "state": "Málaga" } }, "sessionDetails": { "ip": "100.100.200.100", "countryCode": "ES", "lang": "es", "deviceType": "desktop", "deviceModel": null, "browser": "Chrome", "browserVersion": "83.0.4103.116", "os": "Mac OS", "osVersion": "10.15.4", "source": "MONEI/PHP", "sourceVersion": "0.1.2", "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) ...", "browserAccept": "text/html,application/xhtml+xml,application/json", "browserColorDepth": "24", "browserScreenHeight": "1152", "browserScreenWidth": "2048", "browserTimezoneOffset": "-120" }, "metadata": { "systemId": "12345" } } ``` --- # Country Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). **string**Country Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). **Example: **`ES` Country ``` "ES" ``` --- # CreatedAt Time at which the resource was created. Measured in seconds since the Unix epoch. **integer**int64 Time at which the resource was created. Measured in seconds since the Unix epoch. **Example: **`1636366897` CreatedAt ``` 1636366897 ``` --- # CreatePaymentRequest **amount**int32required Amount intended to be collected by this payment. A positive integer representing how much to charge in the smallest currency unit (e.g., 100 cents to charge 1.00 USD). **Example: **`110` **currency**Payment-Currencyrequired Three-letter [ISO currency code](https://en.wikipedia.org/wiki/ISO_4217), in uppercase. Must be a supported currency. **Example: **`EUR` **orderId**Payment-OrderIdrequired An order ID from your system. A unique identifier that can be used to reconcile the payment with your internal system. **Example: **`14379133960355` **callbackUrl**Payment-CallbackUrl The URL to which a payment result should be sent asynchronously. **Example: **`https://example.com/checkout/callback` **completeUrl**Payment-CompleteUrl The URL the customer will be directed to after transaction completed (successful or failed - except if `failUrl` is provided). **Example: **`https://example.com/checkout/complete` **failUrl**Payment-FailUrl The URL the customer will be directed to after transaction has failed, instead of `completeUrl` (used in hosted payment page). This allows to provide two different URLs for successful and failed payments. **Example: **`https://example.com/checkout/fail` **cancelUrl**Payment-CancelUrl The URL the customer will be directed to if they decide to cancel payment and return to your website (used in hosted payment page). **Example: **`https://example.com/checkout/cancel` **paymentToken**Payment-PaymentToken A payment token generated by monei.js [Components](https://docs.monei.com/monei-js/overview/) or a paymentToken [saved after a previous successful payment](https://docs.monei.com/guides/save-payment-method/). In case of the first one, you will also need to send the `sessionId` used to generate the token in the first place. **Example: **`7cc38b08ff471ccd313ad62b23b9f362b107560b` **sessionId**Payment-SessionId A unique identifier within your system that adds security to the payment process. You need to pass the same session ID as the one used on the frontend to initialize MONEI Component (if you needed to). This is required if a payment token (not permanent) was already generated in the frontend. **Example: **`39603551437913` **generatePaymentToken**Payment-GeneratePaymentToken If set to true a permanent token that represents a payment method used in the payment will be generated. **Default value: **`false` **Example: **`false` **paymentMethod** object An information about a payment method used for this payment. We recommend using `paymentToken` instead, as it is more secure way to pass sensitive payment information. Processing credit card information on your server requires [PCI DSS compliance](https://www.investopedia.com/terms/p/pci-compliance.asp). **card** object Details about the card used as payment method. If provided, MONEI will try to confirm the payment directly. **number**string The card number, as a string without any separators. **cvc**string Card security code. **expMonth**string Two-digit number representing the card's expiration month. **expYear**string Two-digit number representing the card's expiration year. **cardholderName**CardholderName The cardholder's name, as stated in the credit card. **Example: **`John Doe` **cardholderEmail**CardholderEmail The cardholder's email address. **Example: **`john.doe@monei.com` **bizum** object Details about the Bizum account used for this payment. If provided phone number is valid and registered in Bizum, MONEI will try to confirm the payment directly. **phoneNumber**string Phone number in E.164 format used to pay with `bizum`. **Example: **`null` **allowedPaymentMethods**string\[] An array of allowed payment methods (used in hosted payment page). Must be enabled payment methods. | Enum Value | Description | | ----------- | ---------------------------------------------------------------- | | alipay | Alipay | | card | Card | | bizum | Bizum | | paypal | PayPal | | mbway | MB WAY | | multibanco | Multibanco | | iDeal | iDEAL | | bancontact | Bancontact | | sofort | SOFORT | | trustly | Trustly | | sepa | SEPA | | klarna | Klarna | | giropay | Giropay | | eps | EPS | | blik | BLIK | | cardPresent | Card-present (in-person) payment captured at a physical terminal | | googlePay | Google Pay digital wallet | | applePay | Apple Pay digital wallet | | clickToPay | Click to Pay (card-network-hosted wallet) | | srtp | SEPA Request-to-Pay | **Example: **`["card","bizum","paypal"]` **transactionType**Payment-TransactionType Controls when the funds will be captured. | Enum Value | Description | | ---------- | ---------------------------------------------------------------------------- | | SALE | Automatically captures funds when the customer authorizes the payment | | AUTH | Places a hold on funds without immediate capture, allowing for later capture | | PAYOUT | Sends funds to the customer | | VERIF | Verifies the payment method without placing a hold or capturing funds | **Possible values:** \[`SALE`, `AUTH`, `PAYOUT`, `VERIF`] **Default value: **`SALE` **Example: **`SALE` **sequence** object This field needs to be sent in order to mark the beginning of a sequence of payments (recurring/subscriptions, installments, and so). Specific configurations can be set in the inside properties (`recurring`). **type**stringrequired **Possible values:** \[`recurring`] **Example: **`recurring` **recurring** object Specific configurations for recurring payments. Will only be used when `sequence`.`type` is `recurring`. **expiry**string Date after which no further recurring payments will be performed. Must be formatted as `YYYYMMDD`. **Default value: **`*(The payment method or card expiration)*` **Example: **`20210630` **frequency**int32 The minimum number of **days** between the different recurring payments. **Default value: **`25` **Example: **`30` **storeId**Payment-StoreId A unique identifier of the Store. If specified the payment is attached to this Store. **Example: **`e5f28150d9e8974c58ab5ec9c4a880f8734dcf05` **pointOfSaleId**Payment-PointOfSaleId A unique identifier of the Point of Sale. If specified the payment is attached to this Point of Sale. If there is a QR code attached to the same Point of Sale, this payment will be available by scanning the QR code. **Example: **`fb269cccfa0cc021f5d0b8eb1421646c696213e1` **subscriptionId**Payment-SubscriptionId A unique identifier of the Subscription. If specified the payment is attached to this Subscription. **Example: **`575bcd84-09fc-4a6e-8c4c-f88b8eb90bfa` **autoRecover**Payment-AutoRecover If set to `true`, the new payment will be automatically created when customer visits the payment link of the previously failed payment. Is automatically set to `true` if `completeUrl` is not provided.(set this value to `true` to create "Pay By Link" payments). **Example: **`false` **description**Payment-Description An arbitrary string attached to the payment. Often useful for displaying to users. **Example: **`Test Shop - #84370745531439` **customer** object **email**string The customer's email address. **Example: **`john.doe@example.com` **name**string The customer's full name or business name. **Example: **`John Doe` **phone**string The customer's phone number in E.164 format. **Example: **`null` **billingDetails** object Billing information associated with the payment method at the time of the transaction. **name**string The customer's billing full name. **Example: **`John Doe` **email**string The customer's billing email address. **Example: **`john.doe@example.com` **phone**string The customer's billing phone number in E.164 format. **Example: **`null` **company**string Billing company name. **Example: **`null` **taxId**string Company tax ID. **Example: **`null` **address** object **country**Country Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). **Example: **`ES` **city**string City, district, suburb, town, or village. **Example: **`Málaga` **line1**string Address line 1 (e.g., street, PO Box, or company name). **Example: **`Fake Street 123` **line2**string Address line 2 (e.g., apartment, suite, unit, or building). **Example: **`null` **zip**string ZIP or postal code. **Example: **`1234` **state**string State, county, province, or region. **Example: **`Málaga` **shippingDetails** object Shipping information associated with the payment. **name**string The shipping customer's full name. **Example: **`John Doe` **email**string The shipping customer's email address. **Example: **`john.doe@example.com` **phone**string The shipping customer's phone number in E.164 format. **Example: **`null` **company**string Name of the company where the shipment is going. **Example: **`null` **taxId**string Company tax ID. **Example: **`null` **address** object **country**Country Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). **Example: **`ES` **city**string City, district, suburb, town, or village. **Example: **`Málaga` **line1**string Address line 1 (e.g., street, PO Box, or company name). **Example: **`Fake Street 123` **line2**string Address line 2 (e.g., apartment, suite, unit, or building). **Example: **`null` **zip**string ZIP or postal code. **Example: **`1234` **state**string State, county, province, or region. **Example: **`Málaga` **sessionDetails** Payment-SessionDetails Information related to the browsing session of the user who initiated the payment. **ip**IP The IP address where the operation originated. **Example: **`100.100.200.100` **countryCode**Country Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). **Example: **`ES` **lang**Lang Two-letter language code ([ISO 639-1](https://en.wikipedia.org/wiki/ISO_639-1)). **Example: **`es` **deviceType**DeviceType Device type, could be `desktop`, `mobile`, `smartTV`, `tablet`. **Example: **`desktop` **deviceModel**DeviceModel Information about the device used for the browser session (e.g., `iPhone`). **Example: **`null` **browser**Browser The browser used in this browser session (e.g., `Mobile Safari`). **Example: **`Chrome` **browserVersion**BrowserVersion The version for the browser session (e.g., `13.1.1`). **Example: **`83.0.4103.116` **os**Os Operation system (e.g., `iOS`). **Example: **`Mac OS` **osVersion**OsVersion Operation system version (e.g., `13.5.1`). **Example: **`10.15.4` **source**Source The source component from where the operation was generated (mostly for our SDK's). **Example: **`MONEI/PHP` **sourceVersion**SourceVersion The source component version from where the operation was generated (mostly for our SDK's). **Example: **`0.1.2` **userAgent**UserAgent Full user agent string of the browser session. **Example: **`Mozilla/5.0 (Windows NT 10.0; Win64; x64) ...` **browserAccept**BrowserAccept Browser accept header. **Example: **`text/html,application/xhtml+xml,application/json` **browserColorDepth**BrowserColorDepth The color depth of the browser session (e.g., `24`). **Example: **`24` **browserScreenHeight**BrowserScreenHeight The screen height of the browser session (e.g., `1152`). **Example: **`1152` **browserScreenWidth**BrowserScreenWidth The screen width of the browser session (e.g., `2048`). **Example: **`2048` **browserTimezoneOffset**BrowserTimezoneOffset The timezone offset of the browser session (e.g., `-120`). **Example: **`-120` **expireAt**int64 Payment expiration time. **Example: **`1663581391` **metadata**object A set of key-value pairs that you can attach to a resource. This can be useful for storing additional information about the resource in a structured format. **Example: **`{"systemId":"12345"}` CreatePaymentRequest ``` { "amount": 110, "currency": "EUR", "orderId": "14379133960355", "callbackUrl": "https://example.com/checkout/callback", "completeUrl": "https://example.com/checkout/complete", "failUrl": "https://example.com/checkout/fail", "cancelUrl": "https://example.com/checkout/cancel", "paymentToken": "7cc38b08ff471ccd313ad62b23b9f362b107560b", "sessionId": "39603551437913", "generatePaymentToken": false, "paymentMethod": { "card": { "number": "string", "cvc": "string", "expMonth": "string", "expYear": "string", "cardholderName": "John Doe", "cardholderEmail": "john.doe@monei.com" }, "bizum": { "phoneNumber": null } }, "allowedPaymentMethods": [ "card", "bizum", "paypal" ], "transactionType": "SALE", "sequence": { "type": "recurring", "recurring": { "expiry": "20210630", "frequency": 30 } }, "storeId": "e5f28150d9e8974c58ab5ec9c4a880f8734dcf05", "pointOfSaleId": "fb269cccfa0cc021f5d0b8eb1421646c696213e1", "subscriptionId": "575bcd84-09fc-4a6e-8c4c-f88b8eb90bfa", "autoRecover": false, "description": "Test Shop - #84370745531439", "customer": { "email": "john.doe@example.com", "name": "John Doe", "phone": null }, "billingDetails": { "name": "John Doe", "email": "john.doe@example.com", "phone": null, "company": null, "taxId": null, "address": { "country": "ES", "city": "Málaga", "line1": "Fake Street 123", "line2": null, "zip": "1234", "state": "Málaga" } }, "shippingDetails": { "name": "John Doe", "email": "john.doe@example.com", "phone": null, "company": null, "taxId": null, "address": { "country": "ES", "city": "Málaga", "line1": "Fake Street 123", "line2": null, "zip": "1234", "state": "Málaga" } }, "sessionDetails": { "ip": "100.100.200.100", "countryCode": "ES", "lang": "es", "deviceType": "desktop", "deviceModel": null, "browser": "Chrome", "browserVersion": "83.0.4103.116", "os": "Mac OS", "osVersion": "10.15.4", "source": "MONEI/PHP", "sourceVersion": "0.1.2", "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) ...", "browserAccept": "text/html,application/xhtml+xml,application/json", "browserColorDepth": "24", "browserScreenHeight": "1152", "browserScreenWidth": "2048", "browserTimezoneOffset": "-120" }, "expireAt": 1663581391, "metadata": { "systemId": "12345" } } ``` --- # CreatePosAuthTokenRequest **pointOfSaleId**Payment-PointOfSaleId A unique identifier of the Point of Sale. If specified the payment is attached to this Point of Sale. If there is a QR code attached to the same Point of Sale, this payment will be available by scanning the QR code. **Example: **`fb269cccfa0cc021f5d0b8eb1421646c696213e1` **storeId**Payment-StoreId A unique identifier of the Store. If specified the payment is attached to this Store. **Example: **`e5f28150d9e8974c58ab5ec9c4a880f8734dcf05` CreatePosAuthTokenRequest ``` { "pointOfSaleId": "fb269cccfa0cc021f5d0b8eb1421646c696213e1", "storeId": "e5f28150d9e8974c58ab5ec9c4a880f8734dcf05" } ``` --- # CreateSubscriptionRequest **amount**int32required Amount intended to be collected by this payment. A positive integer representing how much to charge in the smallest currency unit (e.g., 100 cents to charge 1.00 USD). **Example: **`110` **currency**Payment-Currencyrequired Three-letter [ISO currency code](https://en.wikipedia.org/wiki/ISO_4217), in uppercase. Must be a supported currency. **Example: **`EUR` **interval**Subscription-Intervalrequired Subscription interval. The `minute` and `hour` intervals are only available in test mode. | Enum Value | Description | | ---------- | ------------------ | | minute | Minutely | | hour | Hourly | | day | Daily | | week | Weekly | | month | Monthly | | quarter | Every three months | | year | Yearly | **Possible values:** \[`minute`, `hour`, `day`, `week`, `month`, `quarter`, `year`] **Example: **`month` **intervalCount**int32 Number of intervals between subscription payments. **Example: **`1` **allowedPaymentMethods**string\[] List of payment methods allowed for subscriptions. | Enum Value | Description | | ---------- | ----------- | | card | Card | | bizum | Bizum | **Example: **`["card","bizum"]` **description**Subscription-Description An arbitrary string attached to the subscription. Often useful for displaying to users. **Example: **`MoonMail Monthly Lite` **customer** object **email**string The customer's email address. **Example: **`john.doe@example.com` **name**string The customer's full name or business name. **Example: **`John Doe` **phone**string The customer's phone number in E.164 format. **Example: **`null` **billingDetails** object Billing information associated with the payment method at the time of the transaction. **name**string The customer's billing full name. **Example: **`John Doe` **email**string The customer's billing email address. **Example: **`john.doe@example.com` **phone**string The customer's billing phone number in E.164 format. **Example: **`null` **company**string Billing company name. **Example: **`null` **taxId**string Company tax ID. **Example: **`null` **address** object **country**Country Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). **Example: **`ES` **city**string City, district, suburb, town, or village. **Example: **`Málaga` **line1**string Address line 1 (e.g., street, PO Box, or company name). **Example: **`Fake Street 123` **line2**string Address line 2 (e.g., apartment, suite, unit, or building). **Example: **`null` **zip**string ZIP or postal code. **Example: **`1234` **state**string State, county, province, or region. **Example: **`Málaga` **shippingDetails** object Shipping information associated with the payment. **name**string The shipping customer's full name. **Example: **`John Doe` **email**string The shipping customer's email address. **Example: **`john.doe@example.com` **phone**string The shipping customer's phone number in E.164 format. **Example: **`null` **company**string Name of the company where the shipment is going. **Example: **`null` **taxId**string Company tax ID. **Example: **`null` **address** object **country**Country Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). **Example: **`ES` **city**string City, district, suburb, town, or village. **Example: **`Málaga` **line1**string Address line 1 (e.g., street, PO Box, or company name). **Example: **`Fake Street 123` **line2**string Address line 2 (e.g., apartment, suite, unit, or building). **Example: **`null` **zip**string ZIP or postal code. **Example: **`1234` **state**string State, county, province, or region. **Example: **`Málaga` **trialPeriodEnd**int64 The end date of the trial period. Measured in seconds since the Unix epoch. **Example: **`1636366897` **trialPeriodDays**int32 Number of days the trial period lasts. **Example: **`7` **retrySchedule** object\[] Defines a custom schedule for retrying failed subscription payments. Each entry in the array specifies how long to wait before attempting the next payment retry. If not specified, the system's default retry schedule will be used. * Array \[ **interval**stringrequired The unit of time to wait before the retry attempt. | Enum Value | Description | | ---------- | ----------- | | day | Daily | | week | Weekly | | month | Monthly | | year | Yearly | **Possible values:** \[`day`, `week`, `month`, `year`] **Example: **`day` **intervalCount**int32required The number of intervals to wait before the retry attempt. **Possible values:** `>= 1` and `<= 31` **Example: **`3` * ] **callbackUrl**Subscription-CallbackUrl The URL will be called each time subscription status changes. You will receive a subscription object in the body of the request. **Example: **`https://example.com/subscriptions/callback` **paymentCallbackUrl**Subscription-PaymentCallbackUrl The URL will be called each time subscription creates a new payments. You will receive the payment object in the body of the request. **Example: **`https://example.com/payments/callback` **metadata**object A set of key-value pairs that you can attach to a resource. This can be useful for storing additional information about the resource in a structured format. **Example: **`{"systemId":"12345"}` CreateSubscriptionRequest ``` { "amount": 110, "currency": "EUR", "interval": "month", "intervalCount": 1, "allowedPaymentMethods": [ "card", "bizum" ], "description": "MoonMail Monthly Lite", "customer": { "email": "john.doe@example.com", "name": "John Doe", "phone": null }, "billingDetails": { "name": "John Doe", "email": "john.doe@example.com", "phone": null, "company": null, "taxId": null, "address": { "country": "ES", "city": "Málaga", "line1": "Fake Street 123", "line2": null, "zip": "1234", "state": "Málaga" } }, "shippingDetails": { "name": "John Doe", "email": "john.doe@example.com", "phone": null, "company": null, "taxId": null, "address": { "country": "ES", "city": "Málaga", "line1": "Fake Street 123", "line2": null, "zip": "1234", "state": "Málaga" } }, "trialPeriodEnd": 1636366897, "trialPeriodDays": 7, "retrySchedule": [ { "interval": "day", "intervalCount": 1 }, { "interval": "day", "intervalCount": 3 }, { "interval": "week", "intervalCount": 1 } ], "callbackUrl": "https://example.com/subscriptions/callback", "paymentCallbackUrl": "https://example.com/payments/callback", "metadata": { "systemId": "12345" } } ``` --- # DeviceModel Information about the device used for the browser session (e.g., `iPhone`). **string**DeviceModel Information about the device used for the browser session (e.g., `iPhone`). **Example: **`null` DeviceModel ``` null ``` --- # DeviceType Device type, could be `desktop`, `mobile`, `smartTV`, `tablet`. **string**DeviceType Device type, could be `desktop`, `mobile`, `smartTV`, `tablet`. **Example: **`desktop` DeviceType ``` "desktop" ``` --- # DomainName The domain name to register for Apple Pay. **string**DomainName The domain name to register for Apple Pay. **Example: **`example.com` DomainName ``` "example.com" ``` --- # InternalServerError **status**stringrequired Error type identifier **Example: **`InternalServerError` **statusCode**int32required HTTP status code **Example: **`500` **message**stringrequired Human-readable error message **Example: **`An unexpected error occurred` **requestId**stringrequired Unique identifier for the request **Example: **`df011689-bd3e-4953-95ca-c7bbdacaf6f8` **requestTime**date-timerequired Timestamp when the request was processed **Example: **`2025-03-05T10:25:52Z` InternalServerError ``` { "status": "InternalServerError", "statusCode": 500, "message": "An unexpected error occurred", "requestId": "df011689-bd3e-4953-95ca-c7bbdacaf6f8", "requestTime": "2025-03-05T10:25:52Z" } ``` --- # IP The IP address where the operation originated. **string**IP The IP address where the operation originated. **Example: **`100.100.200.100` IP ``` "100.100.200.100" ``` --- # Lang Two-letter language code ([ISO 639-1](https://en.wikipedia.org/wiki/ISO_639-1)). **string**Lang Two-letter language code ([ISO 639-1](https://en.wikipedia.org/wiki/ISO_639-1)). **Example: **`es` Lang ``` "es" ``` --- # Livemode Has the value `true` if the resource exists in live mode or the value `false` if the resource exists in test mode. **boolean**Livemode Has the value `true` if the resource exists in live mode or the value `false` if the resource exists in test mode. **Example: **`false` Livemode ``` false ``` --- # Metadata A set of key-value pairs that you can attach to a resource. This can be useful for storing additional information about the resource in a structured format. **object**object A set of key-value pairs that you can attach to a resource. This can be useful for storing additional information about the resource in a structured format. **Example: **`{"systemId":"12345"}` Metadata ``` { "systemId": "12345" } ``` --- # NotFoundError **status**stringrequired Error type identifier **Example: **`NotFoundError` **statusCode**int32required HTTP status code **Example: **`404` **message**stringrequired Human-readable error message **Example: **`Resource not found` **requestId**stringrequired Unique identifier for the request **Example: **`df011689-bd3e-4953-95ca-c7bbdacaf6f8` **requestTime**date-timerequired Timestamp when the request was processed **Example: **`2025-03-05T10:25:52Z` NotFoundError ``` { "status": "NotFoundError", "statusCode": 404, "message": "Resource not found", "requestId": "df011689-bd3e-4953-95ca-c7bbdacaf6f8", "requestTime": "2025-03-05T10:25:52Z" } ``` --- # Os Operation system (e.g., `iOS`). **string**Os Operation system (e.g., `iOS`). **Example: **`Mac OS` Os ``` "Mac OS" ``` --- # OsVersion Operation system version (e.g., `13.5.1`). **string**OsVersion Operation system version (e.g., `13.5.1`). **Example: **`10.15.4` OsVersion ``` "10.15.4" ``` --- # PauseSubscriptionRequest **pauseAtPeriodEnd**Subscription-PauseAtPeriodEnd If true, the subscription will be paused at the end of the current period. **Example: **`false` **pauseIntervalCount**int32 Number of intervals when subscription will be paused before it activates again. **Example: **`1` PauseSubscriptionRequest ``` { "pauseAtPeriodEnd": false, "pauseIntervalCount": 1 } ``` --- # Payment-Amount Amount intended to be collected by this payment. A positive integer representing how much to charge in the smallest currency unit (e.g., 100 cents to charge 1.00 USD). **integer**int32 Amount intended to be collected by this payment. A positive integer representing how much to charge in the smallest currency unit (e.g., 100 cents to charge 1.00 USD). **Example: **`110` Payment-Amount ``` 110 ``` --- # Payment-AuthorizationCode Unique identifier provided by the bank performing transaction. **string**Payment-AuthorizationCode Unique identifier provided by the bank performing transaction. **Example: **`475816` Payment-AuthorizationCode ``` "475816" ``` --- # Payment-AutoRecover If set to `true`, the new payment will be automatically created when customer visits the payment link of the previously failed payment. Is automatically set to `true` if `completeUrl` is not provided.(set this value to `true` to create "Pay By Link" payments). **boolean**Payment-AutoRecover If set to `true`, the new payment will be automatically created when customer visits the payment link of the previously failed payment. Is automatically set to `true` if `completeUrl` is not provided.(set this value to `true` to create "Pay By Link" payments). **Example: **`false` Payment-AutoRecover ``` false ``` --- # Payment-BillingDetails Billing information associated with the payment method at the time of the transaction. **name**string The customer's billing full name. **Example: **`John Doe` **email**string The customer's billing email address. **Example: **`john.doe@example.com` **phone**string The customer's billing phone number in E.164 format. **Example: **`null` **company**string Billing company name. **Example: **`null` **taxId**string Company tax ID. **Example: **`null` **address** object **country**Country Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). **Example: **`ES` **city**string City, district, suburb, town, or village. **Example: **`Málaga` **line1**string Address line 1 (e.g., street, PO Box, or company name). **Example: **`Fake Street 123` **line2**string Address line 2 (e.g., apartment, suite, unit, or building). **Example: **`null` **zip**string ZIP or postal code. **Example: **`1234` **state**string State, county, province, or region. **Example: **`Málaga` Payment-BillingDetails ``` { "name": "John Doe", "email": "john.doe@example.com", "phone": null, "company": null, "taxId": null, "address": { "country": "ES", "city": "Málaga", "line1": "Fake Street 123", "line2": null, "zip": "1234", "state": "Málaga" } } ``` --- # Payment-CallbackUrl The URL to which a payment result should be sent asynchronously. **string**Payment-CallbackUrl The URL to which a payment result should be sent asynchronously. **Example: **`https://example.com/checkout/callback` Payment-CallbackUrl ``` "https://example.com/checkout/callback" ``` --- # Payment-CancellationReason The reason for canceling the Payment. **string**Payment-CancellationReason The reason for canceling the Payment. | Enum Value | Description | | --------------- | --------------------------------- | | order\_canceled | The underlying order was canceled | **Possible values:** \[`duplicated`, `fraudulent`, `requested_by_customer`, `order_canceled`] **Example: **`null` Payment-CancellationReason ``` null ``` --- # Payment-CancelUrl The URL the customer will be directed to if they decide to cancel payment and return to your website (used in hosted payment page). **string**Payment-CancelUrl The URL the customer will be directed to if they decide to cancel payment and return to your website (used in hosted payment page). **Example: **`https://example.com/checkout/cancel` Payment-CancelUrl ``` "https://example.com/checkout/cancel" ``` --- # Payment-CompleteUrl The URL the customer will be directed to after transaction completed (successful or failed - except if `failUrl` is provided). **string**Payment-CompleteUrl The URL the customer will be directed to after transaction completed (successful or failed - except if `failUrl` is provided). **Example: **`https://example.com/checkout/complete` Payment-CompleteUrl ``` "https://example.com/checkout/complete" ``` --- # Payment-Currency Three-letter [ISO currency code](https://en.wikipedia.org/wiki/ISO_4217), in uppercase. Must be a supported currency. **string**Payment-Currency Three-letter [ISO currency code](https://en.wikipedia.org/wiki/ISO_4217), in uppercase. Must be a supported currency. **Example: **`EUR` Payment-Currency ``` "EUR" ``` --- # Payment-Customer **email**string The customer's email address. **Example: **`john.doe@example.com` **name**string The customer's full name or business name. **Example: **`John Doe` **phone**string The customer's phone number in E.164 format. **Example: **`null` Payment-Customer ``` { "email": "john.doe@example.com", "name": "John Doe", "phone": null } ``` --- # Payment-Description An arbitrary string attached to the payment. Often useful for displaying to users. **string**Payment-Description An arbitrary string attached to the payment. Often useful for displaying to users. **Example: **`Test Shop - #84370745531439` Payment-Description ``` "Test Shop - #84370745531439" ``` --- # Payment-ExpireAt Payment expiration time. **number**int64 Payment expiration time. **Example: **`1663581391` Payment-ExpireAt ``` 1663581391 ``` --- # Payment-FailUrl The URL the customer will be directed to after transaction has failed, instead of `completeUrl` (used in hosted payment page). This allows to provide two different URLs for successful and failed payments. **string**Payment-FailUrl The URL the customer will be directed to after transaction has failed, instead of `completeUrl` (used in hosted payment page). This allows to provide two different URLs for successful and failed payments. **Example: **`https://example.com/checkout/fail` Payment-FailUrl ``` "https://example.com/checkout/fail" ``` --- # Payment-GeneratePaymentToken If set to true a permanent token that represents a payment method used in the payment will be generated. **boolean**Payment-GeneratePaymentToken If set to true a permanent token that represents a payment method used in the payment will be generated. **Default value: **`false` **Example: **`false` Payment-GeneratePaymentToken ``` false ``` --- # Payment-Id Unique identifier for the payment. **string**Payment-Id Unique identifier for the payment. **Example: **`af6029f80f5fc73a8ad2753eea0b1be0` Payment-Id ``` "af6029f80f5fc73a8ad2753eea0b1be0" ``` --- # Payment-LastRefundAmount Amount in cents refunded in the last transaction. **integer**int32 Amount in cents refunded in the last transaction. **Example: **`null` Payment-LastRefundAmount ``` null ``` --- # Payment-LastRefundReason The reason of the last refund transaction. **string**Payment-LastRefundReason The reason of the last refund transaction. | Enum Value | Description | | --------------- | --------------------------------- | | order\_canceled | The underlying order was canceled | **Possible values:** \[`duplicated`, `fraudulent`, `requested_by_customer`, `order_canceled`] **Example: **`null` Payment-LastRefundReason ``` null ``` --- # Payment-MessageChannel The channel used to send the payment message. **string**Payment-MessageChannel The channel used to send the payment message. | Enum Value | Description | | ---------- | --------------------------------- | | EMAIL | Send message via email | | WHATSAPP | Send message via WhatsApp | | SMS | Send message via SMS text message | **Possible values:** \[`EMAIL`, `WHATSAPP`, `SMS`] **Example: **`EMAIL` Payment-MessageChannel ``` "EMAIL" ``` --- # Payment-MessageLanguage The language of message sent to the customer. If not provided the default customer language is used if available. **string**Payment-MessageLanguage The language of message sent to the customer. If not provided the default customer language is used if available. | Enum Value | Description | | ---------- | ----------- | | en | English | | es | Spanish | | ca | Catalan | | pt | Portuguese | | de | German | | it | Italian | | fr | French | **Possible values:** \[`en`, `es`, `ca`, `pt`, `de`, `it`, `fr`] **Example: **`en` Payment-MessageLanguage ``` "en" ``` --- # Payment-NextAction If present, this property tells you what actions you need to take in order for your customer to fulfill a payment using the provided source. **type**string * `CONFIRM` - Your customer needs to be redirected to a [hosted payment page](https://docs.monei.com/integrations/use-prebuilt-payment-page/) or confirm payment using [payment token](https://docs.monei.com/integrations/build-custom-checkout/#3-confirm-the-payment-client-side). The **redirectUrl** will point to the hosted payment page. * `FRICTIONLESS_CHALLENGE` - Your customer needs to be redirected to the frictionless 3d secure challenge page provided by the bank. The **redirectUrl** will point to the frictionless 3d secure challenge page provided by the bank. * `CHALLENGE` - Your customer needs to be redirected to the 3d secure challenge page provided by the bank. The **redirectUrl** will point to the 3d secure challenge page provided by the bank. * `COMPLETE` - The payment is completed. The **redirectUrl** will be the **completeUrl** if it was provided when the payment was created. * `BIZUM_CHALLENGE` - Your customer will be redirected to the Bizum hosted payment page. **Possible values:** \[`CONFIRM`, `CHALLENGE`, `FRICTIONLESS_CHALLENGE`, `BIZUM_CHALLENGE`, `COMPLETE`] **Example: **`CONFIRM` **mustRedirect**boolean If `true` you have to redirect your customer to the **redirectUrl** to continue payment process. **Example: **`false` **redirectUrl**string Redirect your customer to this url to continue payment process. **Example: **`https://secure.monei.com/payments/af6029f80f5fc73a8ad2753eea0b1be0` Payment-NextAction ``` { "type": "CONFIRM", "mustRedirect": false, "redirectUrl": "https://secure.monei.com/payments/af6029f80f5fc73a8ad2753eea0b1be0" } ``` --- # Payment-OrderId An order ID from your system. A unique identifier that can be used to reconcile the payment with your internal system. **string**Payment-OrderId An order ID from your system. A unique identifier that can be used to reconcile the payment with your internal system. **Example: **`14379133960355` Payment-OrderId ``` "14379133960355" ``` --- # Payment-PaymentMethod Details about the payment method at the time of the transaction. **method**string Payment method type. | Enum Value | Description | | ---------- | ----------- | | alipay | Alipay | | card | Card | | bizum | Bizum | | paypal | PayPal | | mbway | MB WAY | | multibanco | Multibanco | | iDeal | iDEAL | | bancontact | Bancontact | | sofort | SOFORT | | trustly | Trustly | | sepa | SEPA | | klarna | Klarna | | giropay | Giropay | | eps | EPS | | blik | BLIK | **Possible values:** \[`alipay`, `card`, `bizum`, `paypal`, `mbway`, `multibanco`, `iDeal`, `bancontact`, `sofort`, `trustly`, `sepa`, `klarna`, `giropay`, `eps`, `blik`] **Example: **`card` **card** object Details about the card used as payment method at the time of the transaction. **country**Country Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). **Example: **`ES` **brand**string Card brand. | Enum Value | Description | | ---------- | ---------------------------------- | | visa | Visa credit or debit card | | mastercard | Mastercard credit or debit card | | diners | Diners Club credit card | | amex | American Express credit card | | jcb | Japan Credit Bureau card | | unionpay | UnionPay card from China | | discover | Discover | | unknown | Card brand could not be determined | **Possible values:** \[`visa`, `mastercard`, `diners`, `amex`, `jcb`, `unionpay`, `discover`, `unknown`] **Example: **`visa` **type**string Card type `debit` or `credit`. **Possible values:** \[`debit`, `credit`] **Example: **`credit` **threeDSecure**boolean Whether this transaction used 3D Secure authentication. **Example: **`false` **threeDSecureVersion**string The protocol version of the 3DS challenge. **Example: **`2.1.0` **threeDSecureFlow**string The flow used for 3DS authentication. | Enum Value | Description | | ----------------------- | ----------------------------------------------------------------------------------------------------- | | CHALLENGE | Authentication requiring additional shopper interaction through biometrics, 2FA, or other SCA methods | | FRICTIONLESS | Background authentication using device fingerprint without additional shopper interaction | | FRICTIONLESS\_CHALLENGE | Complete 3DS flow with additional authentication if initial data collection is insufficient | | DIRECT | Transaction exempt from SCA due to low risk assessment | **Possible values:** \[`CHALLENGE`, `FRICTIONLESS`, `FRICTIONLESS_CHALLENGE`, `DIRECT`] **Example: **`CHALLENGE` **expiration**int64 Time at which the card will expire. Measured in seconds since the Unix epoch. **Example: **`2048544000` **last4**string The last four digits of the card. **Example: **`0004` **fingerprint**string Unique identifier for the card number. Used to detect duplicate payment methods across customers. Not present for tokenized cards. **Example: **`7f2afde1566286c5fb126bb7e79bef549755cce6033dc429013c46d1365ff0e9` **tokenizationMethod**string The digital wallet used to tokenize the card. **Possible values:** \[`applePay`, `googlePay`, `clickToPay`] **Example: **`applePay` **cardholderName**string The name of the cardholder. **Example: **`John Doe` **cardholderEmail**string The email of the cardholder. **Example: **`email@example.com` **bizum** object Details about the Bizum account used as payment method at the time of the transaction. **phoneNumber**string Phone number in E.164 format used to pay with `bizum`. **Example: **`null` **paypal** object Details from Paypal order used as payment method at the time of the transaction. **orderId**string The Paypal's order ID. **Example: **`7XP21983KL5672104` **payerId**string The Paypal's payer ID. **Example: **`QWRTNBFHZXLPD` **email**string The Paypal's payer email. **Example: **`john.doe@example.com` **name**string The Paypal's payer name. **Example: **`John Doe` **mbway** object Details from MBWay order used as payment method at the time of the transaction. **phoneNumber**string Phone number in E.164 format used to pay with `mbway`. **Example: **`null` **trustly** object Details from Trustly order used as payment method at the time of the transaction. **customerId**string The Trustly's customer ID. **Example: **`null` **sepa** object Details from SEPA order used as payment method at the time of the transaction. **accountholderAddress**string The address of the account holder. **Example: **`null` **accountholderEmail**string The email of the account holder. **Example: **`null` **accountholderName**string The name of the account holder. **Example: **`null` **countryCode**string The country code of the account holder. **Example: **`null` **bankAddress**string The address of the bank. **Example: **`null` **bankCode**string The code of the bank. **Example: **`null` **bankName**string The name of the bank. **Example: **`null` **bic**string The BIC of the bank. **Example: **`null` **last4**string The last 4 digits of the IBAN. **Example: **`null` **fingerprint**string Unique identifier for the IBAN. Used to detect duplicate payment methods across customers. **Example: **`7f2afde1566286c5fb126bb7e79bef549755cce6033dc429013c46d1365ff0e9` **klarna** object Details from Klarna order used as payment method at the time of the transaction. **billingCategory**string | Enum Value | Description | | ------------------- | ----------------------------------------------- | | PAY\_LATER | Pay after delivery within a specified timeframe | | PAY\_NOW | Immediate payment at time of purchase | | SLICE\_IT | Split payment into installments | | SLICE\_IT\_BY\_CARD | Split payment into installments using a card | | PAY\_IN\_PARTS | Pay in equal installments (interest-free) | **Possible values:** \[`PAY_LATER`, `PAY_NOW`, `SLICE_IT`, `SLICE_IT_BY_CARD`, `PAY_IN_PARTS`] **Example: **`PAY_LATER` **authPaymentMethod**string | Enum Value | Description | | ---------------------- | ----------------------------------------- | | invoice | Traditional invoice payment | | fixed\_amount | Payment with a predetermined fixed amount | | pix | Brazilian instant payment system | | base\_account | Payment from a basic account | | deferred\_interest | Payment with delayed interest charges | | direct\_debit | Direct bank account debit | | direct\_bank\_transfer | Immediate bank transfer | | b2b\_invoice | Business-to-business invoice payment | | card | Credit or debit card payment | | slice\_it\_by\_card | Installment payment using a card | **Possible values:** \[`invoice`, `fixed_amount`, `pix`, `base_account`, `deferred_interest`, `direct_debit`, `direct_bank_transfer`, `b2b_invoice`, `card`, `slice_it_by_card`] **Example: **`card` Payment-PaymentMethod ``` { "method": "card", "card": { "country": "ES", "brand": "visa", "type": "credit", "threeDSecure": false, "threeDSecureVersion": "2.1.0", "threeDSecureFlow": "CHALLENGE", "expiration": 2048544000, "last4": "0004", "fingerprint": "7f2afde1566286c5fb126bb7e79bef549755cce6033dc429013c46d1365ff0e9", "tokenizationMethod": "applePay", "cardholderName": "John Doe", "cardholderEmail": "email@example.com" }, "bizum": { "phoneNumber": null }, "paypal": { "orderId": "7XP21983KL5672104", "payerId": "QWRTNBFHZXLPD", "email": "john.doe@example.com", "name": "John Doe" }, "mbway": { "phoneNumber": null }, "trustly": { "customerId": null }, "sepa": { "accountholderAddress": null, "accountholderEmail": null, "accountholderName": null, "countryCode": null, "bankAddress": null, "bankCode": null, "bankName": null, "bic": null, "last4": null, "fingerprint": "7f2afde1566286c5fb126bb7e79bef549755cce6033dc429013c46d1365ff0e9" }, "klarna": { "billingCategory": "PAY_LATER", "authPaymentMethod": "card" } } ``` --- # Payment-PaymentMethodBizum Details about the Bizum account used as payment method at the time of the transaction. **phoneNumber**string Phone number in E.164 format used to pay with `bizum`. **Example: **`null` Payment-PaymentMethodBizum ``` { "phoneNumber": null } ``` --- # Payment-PaymentMethodBizumInput Details about the Bizum account used for this payment. If provided phone number is valid and registered in Bizum, MONEI will try to confirm the payment directly. **phoneNumber**string Phone number in E.164 format used to pay with `bizum`. **Example: **`null` Payment-PaymentMethodBizumInput ``` { "phoneNumber": null } ``` --- # Payment-PaymentMethodCard Details about the card used as payment method at the time of the transaction. **country**Country Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). **Example: **`ES` **brand**string Card brand. | Enum Value | Description | | ---------- | ---------------------------------- | | visa | Visa credit or debit card | | mastercard | Mastercard credit or debit card | | diners | Diners Club credit card | | amex | American Express credit card | | jcb | Japan Credit Bureau card | | unionpay | UnionPay card from China | | discover | Discover | | unknown | Card brand could not be determined | **Possible values:** \[`visa`, `mastercard`, `diners`, `amex`, `jcb`, `unionpay`, `discover`, `unknown`] **Example: **`visa` **type**string Card type `debit` or `credit`. **Possible values:** \[`debit`, `credit`] **Example: **`credit` **threeDSecure**boolean Whether this transaction used 3D Secure authentication. **Example: **`false` **threeDSecureVersion**string The protocol version of the 3DS challenge. **Example: **`2.1.0` **threeDSecureFlow**string The flow used for 3DS authentication. | Enum Value | Description | | ----------------------- | ----------------------------------------------------------------------------------------------------- | | CHALLENGE | Authentication requiring additional shopper interaction through biometrics, 2FA, or other SCA methods | | FRICTIONLESS | Background authentication using device fingerprint without additional shopper interaction | | FRICTIONLESS\_CHALLENGE | Complete 3DS flow with additional authentication if initial data collection is insufficient | | DIRECT | Transaction exempt from SCA due to low risk assessment | **Possible values:** \[`CHALLENGE`, `FRICTIONLESS`, `FRICTIONLESS_CHALLENGE`, `DIRECT`] **Example: **`CHALLENGE` **expiration**int64 Time at which the card will expire. Measured in seconds since the Unix epoch. **Example: **`2048544000` **last4**string The last four digits of the card. **Example: **`0004` **fingerprint**string Unique identifier for the card number. Used to detect duplicate payment methods across customers. Not present for tokenized cards. **Example: **`7f2afde1566286c5fb126bb7e79bef549755cce6033dc429013c46d1365ff0e9` **tokenizationMethod**string The digital wallet used to tokenize the card. **Possible values:** \[`applePay`, `googlePay`, `clickToPay`] **Example: **`applePay` **cardholderName**string The name of the cardholder. **Example: **`John Doe` **cardholderEmail**string The email of the cardholder. **Example: **`email@example.com` Payment-PaymentMethodCard ``` { "country": "ES", "brand": "visa", "type": "credit", "threeDSecure": false, "threeDSecureVersion": "2.1.0", "threeDSecureFlow": "CHALLENGE", "expiration": 2048544000, "last4": "0004", "fingerprint": "7f2afde1566286c5fb126bb7e79bef549755cce6033dc429013c46d1365ff0e9", "tokenizationMethod": "applePay", "cardholderName": "John Doe", "cardholderEmail": "email@example.com" } ``` --- # Payment-PaymentMethodCardInput Details about the card used as payment method. If provided, MONEI will try to confirm the payment directly. **number**string The card number, as a string without any separators. **cvc**string Card security code. **expMonth**string Two-digit number representing the card's expiration month. **expYear**string Two-digit number representing the card's expiration year. **cardholderName**CardholderName The cardholder's name, as stated in the credit card. **Example: **`John Doe` **cardholderEmail**CardholderEmail The cardholder's email address. **Example: **`john.doe@monei.com` Payment-PaymentMethodCardInput ``` { "number": "string", "cvc": "string", "expMonth": "string", "expYear": "string", "cardholderName": "John Doe", "cardholderEmail": "john.doe@monei.com" } ``` --- # Payment-PaymentMethodInput An information about a payment method used for this payment. We recommend using `paymentToken` instead, as it is more secure way to pass sensitive payment information. Processing credit card information on your server requires [PCI DSS compliance](https://www.investopedia.com/terms/p/pci-compliance.asp). **card** object Details about the card used as payment method. If provided, MONEI will try to confirm the payment directly. **number**string The card number, as a string without any separators. **cvc**string Card security code. **expMonth**string Two-digit number representing the card's expiration month. **expYear**string Two-digit number representing the card's expiration year. **cardholderName**CardholderName The cardholder's name, as stated in the credit card. **Example: **`John Doe` **cardholderEmail**CardholderEmail The cardholder's email address. **Example: **`john.doe@monei.com` **bizum** object Details about the Bizum account used for this payment. If provided phone number is valid and registered in Bizum, MONEI will try to confirm the payment directly. **phoneNumber**string Phone number in E.164 format used to pay with `bizum`. **Example: **`null` Payment-PaymentMethodInput ``` { "card": { "number": "string", "cvc": "string", "expMonth": "string", "expYear": "string", "cardholderName": "John Doe", "cardholderEmail": "john.doe@monei.com" }, "bizum": { "phoneNumber": null } } ``` --- # Payment-PaymentMethodKlarna Details from Klarna order used as payment method at the time of the transaction. **billingCategory**string | Enum Value | Description | | ------------------- | ----------------------------------------------- | | PAY\_LATER | Pay after delivery within a specified timeframe | | PAY\_NOW | Immediate payment at time of purchase | | SLICE\_IT | Split payment into installments | | SLICE\_IT\_BY\_CARD | Split payment into installments using a card | | PAY\_IN\_PARTS | Pay in equal installments (interest-free) | **Possible values:** \[`PAY_LATER`, `PAY_NOW`, `SLICE_IT`, `SLICE_IT_BY_CARD`, `PAY_IN_PARTS`] **Example: **`PAY_LATER` **authPaymentMethod**string | Enum Value | Description | | ---------------------- | ----------------------------------------- | | invoice | Traditional invoice payment | | fixed\_amount | Payment with a predetermined fixed amount | | pix | Brazilian instant payment system | | base\_account | Payment from a basic account | | deferred\_interest | Payment with delayed interest charges | | direct\_debit | Direct bank account debit | | direct\_bank\_transfer | Immediate bank transfer | | b2b\_invoice | Business-to-business invoice payment | | card | Credit or debit card payment | | slice\_it\_by\_card | Installment payment using a card | **Possible values:** \[`invoice`, `fixed_amount`, `pix`, `base_account`, `deferred_interest`, `direct_debit`, `direct_bank_transfer`, `b2b_invoice`, `card`, `slice_it_by_card`] **Example: **`card` Payment-PaymentMethodKlarna ``` { "billingCategory": "PAY_LATER", "authPaymentMethod": "card" } ``` --- # Payment-PaymentMethodMbway Details from MBWay order used as payment method at the time of the transaction. **phoneNumber**string Phone number in E.164 format used to pay with `mbway`. **Example: **`null` Payment-PaymentMethodMbway ``` { "phoneNumber": null } ``` --- # Payment-PaymentMethodPaypal Details from Paypal order used as payment method at the time of the transaction. **orderId**string The Paypal's order ID. **Example: **`7XP21983KL5672104` **payerId**string The Paypal's payer ID. **Example: **`QWRTNBFHZXLPD` **email**string The Paypal's payer email. **Example: **`john.doe@example.com` **name**string The Paypal's payer name. **Example: **`John Doe` Payment-PaymentMethodPaypal ``` { "orderId": "7XP21983KL5672104", "payerId": "QWRTNBFHZXLPD", "email": "john.doe@example.com", "name": "John Doe" } ``` --- # Payment-PaymentMethods An array of allowed payment methods (used in hosted payment page). Must be enabled payment methods. * Array \[ ****string * ] Payment-PaymentMethods ``` [ "card", "bizum", "paypal" ] ``` --- # Payment-PaymentMethodSepa Details from SEPA order used as payment method at the time of the transaction. **accountholderAddress**string The address of the account holder. **Example: **`null` **accountholderEmail**string The email of the account holder. **Example: **`null` **accountholderName**string The name of the account holder. **Example: **`null` **countryCode**string The country code of the account holder. **Example: **`null` **bankAddress**string The address of the bank. **Example: **`null` **bankCode**string The code of the bank. **Example: **`null` **bankName**string The name of the bank. **Example: **`null` **bic**string The BIC of the bank. **Example: **`null` **last4**string The last 4 digits of the IBAN. **Example: **`null` **fingerprint**string Unique identifier for the IBAN. Used to detect duplicate payment methods across customers. **Example: **`7f2afde1566286c5fb126bb7e79bef549755cce6033dc429013c46d1365ff0e9` Payment-PaymentMethodSepa ``` { "accountholderAddress": null, "accountholderEmail": null, "accountholderName": null, "countryCode": null, "bankAddress": null, "bankCode": null, "bankName": null, "bic": null, "last4": null, "fingerprint": "7f2afde1566286c5fb126bb7e79bef549755cce6033dc429013c46d1365ff0e9" } ``` --- # Payment-PaymentMethodTrustly Details from Trustly order used as payment method at the time of the transaction. **customerId**string The Trustly's customer ID. **Example: **`null` Payment-PaymentMethodTrustly ``` { "customerId": null } ``` --- # Payment-PaymentToken A permanent token represents a payment method used in the payment. Pass `generatePaymentToken: true` when you creating a payment to generate it. You can pass it as `paymentToken` parameter to create other payments with the same payment method. This token does not expire, and should only be used server-side. **string**Payment-PaymentToken A permanent token represents a payment method used in the payment. Pass `generatePaymentToken: true` when you creating a payment to generate it. You can pass it as `paymentToken` parameter to create other payments with the same payment method. This token does not expire, and should only be used server-side. **Example: **`7cc38b08ff471ccd313ad62b23b9f362b107560b` Payment-PaymentToken ``` "7cc38b08ff471ccd313ad62b23b9f362b107560b" ``` --- # Payment-PointOfSaleId A unique identifier of the Point of Sale. If specified the payment is attached to this Point of Sale. If there is a QR code attached to the same Point of Sale, this payment will be available by scanning the QR code. **string**Payment-PointOfSaleId A unique identifier of the Point of Sale. If specified the payment is attached to this Point of Sale. If there is a QR code attached to the same Point of Sale, this payment will be available by scanning the QR code. **Example: **`fb269cccfa0cc021f5d0b8eb1421646c696213e1` Payment-PointOfSaleId ``` "fb269cccfa0cc021f5d0b8eb1421646c696213e1" ``` --- # Payment-RefundedAmount Amount in cents refunded (can be less than the amount attribute on the payment if a partial refund was issued). **integer**int32 Amount in cents refunded (can be less than the amount attribute on the payment if a partial refund was issued). **Example: **`null` Payment-RefundedAmount ``` null ``` --- # Payment-RefundReason The reason for refunding the Payment. **string**Payment-RefundReason The reason for refunding the Payment. **Possible values:** \[`duplicated`, `fraudulent`, `requested_by_customer`] **Example: **`null` Payment-RefundReason ``` null ``` --- # Payment-Sequence This field needs to be sent in order to mark the beginning of a sequence of payments (recurring/subscriptions, installments, and so). Specific configurations can be set in the inside properties (`recurring`). **type**stringrequired **Possible values:** \[`recurring`] **Example: **`recurring` **recurring** object Specific configurations for recurring payments. Will only be used when `sequence`.`type` is `recurring`. **expiry**string Date after which no further recurring payments will be performed. Must be formatted as `YYYYMMDD`. **Default value: **`*(The payment method or card expiration)*` **Example: **`20210630` **frequency**int32 The minimum number of **days** between the different recurring payments. **Default value: **`25` **Example: **`30` Payment-Sequence ``` { "type": "recurring", "recurring": { "expiry": "20210630", "frequency": 30 } } ``` --- # Payment-SequenceId A permanent identifier that refers to the initial payment of a sequence of payments. This value needs to be sent in the path for `RECURRING` payments. **string**Payment-SequenceId A permanent identifier that refers to the initial payment of a sequence of payments. This value needs to be sent in the path for `RECURRING` payments. **Example: **`62b23b9f3627cc38b08ff471ccd313ad` Payment-SequenceId ``` "62b23b9f3627cc38b08ff471ccd313ad" ``` --- # Payment-SequenceRecurring Specific configurations for recurring payments. Will only be used when `sequence`.`type` is `recurring`. **expiry**string Date after which no further recurring payments will be performed. Must be formatted as `YYYYMMDD`. **Default value: **`*(The payment method or card expiration)*` **Example: **`20210630` **frequency**int32 The minimum number of **days** between the different recurring payments. **Default value: **`25` **Example: **`30` Payment-SequenceRecurring ``` { "expiry": "20210630", "frequency": 30 } ``` --- # Payment-SessionDetails Information related to the browsing session of the user who initiated the payment. **ip**IP The IP address where the operation originated. **Example: **`100.100.200.100` **countryCode**Country Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). **Example: **`ES` **lang**Lang Two-letter language code ([ISO 639-1](https://en.wikipedia.org/wiki/ISO_639-1)). **Example: **`es` **deviceType**DeviceType Device type, could be `desktop`, `mobile`, `smartTV`, `tablet`. **Example: **`desktop` **deviceModel**DeviceModel Information about the device used for the browser session (e.g., `iPhone`). **Example: **`null` **browser**Browser The browser used in this browser session (e.g., `Mobile Safari`). **Example: **`Chrome` **browserVersion**BrowserVersion The version for the browser session (e.g., `13.1.1`). **Example: **`83.0.4103.116` **os**Os Operation system (e.g., `iOS`). **Example: **`Mac OS` **osVersion**OsVersion Operation system version (e.g., `13.5.1`). **Example: **`10.15.4` **source**Source The source component from where the operation was generated (mostly for our SDK's). **Example: **`MONEI/PHP` **sourceVersion**SourceVersion The source component version from where the operation was generated (mostly for our SDK's). **Example: **`0.1.2` **userAgent**UserAgent Full user agent string of the browser session. **Example: **`Mozilla/5.0 (Windows NT 10.0; Win64; x64) ...` **browserAccept**BrowserAccept Browser accept header. **Example: **`text/html,application/xhtml+xml,application/json` **browserColorDepth**BrowserColorDepth The color depth of the browser session (e.g., `24`). **Example: **`24` **browserScreenHeight**BrowserScreenHeight The screen height of the browser session (e.g., `1152`). **Example: **`1152` **browserScreenWidth**BrowserScreenWidth The screen width of the browser session (e.g., `2048`). **Example: **`2048` **browserTimezoneOffset**BrowserTimezoneOffset The timezone offset of the browser session (e.g., `-120`). **Example: **`-120` Payment-SessionDetails ``` { "ip": "100.100.200.100", "countryCode": "ES", "lang": "es", "deviceType": "desktop", "deviceModel": null, "browser": "Chrome", "browserVersion": "83.0.4103.116", "os": "Mac OS", "osVersion": "10.15.4", "source": "MONEI/PHP", "sourceVersion": "0.1.2", "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) ...", "browserAccept": "text/html,application/xhtml+xml,application/json", "browserColorDepth": "24", "browserScreenHeight": "1152", "browserScreenWidth": "2048", "browserTimezoneOffset": "-120" } ``` --- # Payment-SessionId A unique identifier within your system that adds security to the payment process. You need to pass the same session ID as the one used on the frontend to initialize MONEI Component (if you needed to). This is required if a payment token (not permanent) was already generated in the frontend. **string**Payment-SessionId A unique identifier within your system that adds security to the payment process. You need to pass the same session ID as the one used on the frontend to initialize MONEI Component (if you needed to). This is required if a payment token (not permanent) was already generated in the frontend. **Example: **`39603551437913` Payment-SessionId ``` "39603551437913" ``` --- # Payment-ShippingDetails Shipping information associated with the payment. **name**string The shipping customer's full name. **Example: **`John Doe` **email**string The shipping customer's email address. **Example: **`john.doe@example.com` **phone**string The shipping customer's phone number in E.164 format. **Example: **`null` **company**string Name of the company where the shipment is going. **Example: **`null` **taxId**string Company tax ID. **Example: **`null` **address** object **country**Country Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). **Example: **`ES` **city**string City, district, suburb, town, or village. **Example: **`Málaga` **line1**string Address line 1 (e.g., street, PO Box, or company name). **Example: **`Fake Street 123` **line2**string Address line 2 (e.g., apartment, suite, unit, or building). **Example: **`null` **zip**string ZIP or postal code. **Example: **`1234` **state**string State, county, province, or region. **Example: **`Málaga` Payment-ShippingDetails ``` { "name": "John Doe", "email": "john.doe@example.com", "phone": null, "company": null, "taxId": null, "address": { "country": "ES", "city": "Málaga", "line1": "Fake Street 123", "line2": null, "zip": "1234", "state": "Málaga" } } ``` --- # Payment-Shop The information about the shop (used in [hosted payment page](https://docs.monei.com/integrations/use-prebuilt-payment-page/)). **name**string The shop name. **Example: **`Test Shop` **country**Country Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). **Example: **`ES` Payment-Shop ``` { "name": "Test Shop", "country": "ES" } ``` --- # Payment-Status The status of the payment. **string**Payment-Status The status of the payment. | Enum Value | Description | | ------------------- | ----------------------------------------------------------------------------- | | SUCCEEDED | The payment has been successfully processed and funds have been captured | | PENDING | The payment is being processed and awaiting completion | | FAILED | The payment attempt was unsuccessful | | CANCELED | The payment was canceled before completion | | REFUNDED | The full payment amount has been refunded | | PARTIALLY\_REFUNDED | Only a portion of the payment amount has been refunded | | AUTHORIZED | The payment has been authorized but funds have not been captured yet | | EXPIRED | The payment has expired without being completed | | PENDING\_PROCESSING | The payment was submitted to the processor and is awaiting an acknowledgement | | PAID\_OUT | Funds for this payment have been settled to the merchant's bank account | **Possible values:** \[`SUCCEEDED`, `PENDING`, `FAILED`, `CANCELED`, `REFUNDED`, `PARTIALLY_REFUNDED`, `AUTHORIZED`, `EXPIRED`, `PENDING_PROCESSING`, `PAID_OUT`] **Example: **`PENDING` Payment-Status ``` "PENDING" ``` --- # Payment-StatusCode Payment status code. **string**Payment-StatusCode Payment status code. **Example: **`E000` Payment-StatusCode ``` "E000" ``` --- # Payment-StatusMessage Human readable status message, can be displayed to a user. **string**Payment-StatusMessage Human readable status message, can be displayed to a user. **Example: **`Transaction approved` Payment-StatusMessage ``` "Transaction approved" ``` --- # Payment-StoreId A unique identifier of the Store. If specified the payment is attached to this Store. **string**Payment-StoreId A unique identifier of the Store. If specified the payment is attached to this Store. **Example: **`e5f28150d9e8974c58ab5ec9c4a880f8734dcf05` Payment-StoreId ``` "e5f28150d9e8974c58ab5ec9c4a880f8734dcf05" ``` --- # Payment-SubscriptionId A unique identifier of the Subscription. If specified the payment is attached to this Subscription. **string**Payment-SubscriptionId A unique identifier of the Subscription. If specified the payment is attached to this Subscription. **Example: **`575bcd84-09fc-4a6e-8c4c-f88b8eb90bfa` Payment-SubscriptionId ``` "575bcd84-09fc-4a6e-8c4c-f88b8eb90bfa" ``` --- # Payment-TraceDetails Information related to the browsing session of the user who initiated the payment. **ip**IP The IP address where the operation originated. **Example: **`100.100.200.100` **countryCode**Country Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). **Example: **`ES` **lang**Lang Two-letter language code ([ISO 639-1](https://en.wikipedia.org/wiki/ISO_639-1)). **Example: **`es` **deviceType**DeviceType Device type, could be `desktop`, `mobile`, `smartTV`, `tablet`. **Example: **`desktop` **deviceModel**DeviceModel Information about the device used for the browser session (e.g., `iPhone`). **Example: **`null` **browser**Browser The browser used in this browser session (e.g., `Mobile Safari`). **Example: **`Chrome` **browserVersion**BrowserVersion The version for the browser session (e.g., `13.1.1`). **Example: **`83.0.4103.116` **os**Os Operation system (e.g., `iOS`). **Example: **`Mac OS` **osVersion**OsVersion Operation system version (e.g., `13.5.1`). **Example: **`10.15.4` **source**Source The source component from where the operation was generated (mostly for our SDK's). **Example: **`MONEI/PHP` **sourceVersion**SourceVersion The source component version from where the operation was generated (mostly for our SDK's). **Example: **`0.1.2` **userAgent**UserAgent Full user agent string of the browser session. **Example: **`Mozilla/5.0 (Windows NT 10.0; Win64; x64) ...` **browserAccept**BrowserAccept Browser accept header. **Example: **`text/html,application/xhtml+xml,application/json` **browserColorDepth**BrowserColorDepth The color depth of the browser session (e.g., `24`). **Example: **`24` **browserScreenHeight**BrowserScreenHeight The screen height of the browser session (e.g., `1152`). **Example: **`1152` **browserScreenWidth**BrowserScreenWidth The screen width of the browser session (e.g., `2048`). **Example: **`2048` **browserTimezoneOffset**BrowserTimezoneOffset The timezone offset of the browser session (e.g., `-120`). **Example: **`-120` **userId**string The ID of the user that started the operation. **Example: **`null` **userEmail**string The email of the user that started the operation. **Example: **`user@example.com` Payment-TraceDetails ``` { "ip": "100.100.200.100", "countryCode": "ES", "lang": "es", "deviceType": "desktop", "deviceModel": null, "browser": "Chrome", "browserVersion": "83.0.4103.116", "os": "Mac OS", "osVersion": "10.15.4", "source": "MONEI/PHP", "sourceVersion": "0.1.2", "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) ...", "browserAccept": "text/html,application/xhtml+xml,application/json", "browserColorDepth": "24", "browserScreenHeight": "1152", "browserScreenWidth": "2048", "browserTimezoneOffset": "-120", "userId": null, "userEmail": "user@example.com" } ``` --- # Payment-TransactionType Controls when the funds will be captured. **string**Payment-TransactionType Controls when the funds will be captured. | Enum Value | Description | | ---------- | ---------------------------------------------------------------------------- | | SALE | Automatically captures funds when the customer authorizes the payment | | AUTH | Places a hold on funds without immediate capture, allowing for later capture | | PAYOUT | Sends funds to the customer | | VERIF | Verifies the payment method without placing a hold or capturing funds | **Possible values:** \[`SALE`, `AUTH`, `PAYOUT`, `VERIF`] **Default value: **`SALE` **Example: **`SALE` Payment-TransactionType ``` "SALE" ``` --- # Payment **id**Payment-Idrequired Unique identifier for the payment. **Example: **`af6029f80f5fc73a8ad2753eea0b1be0` **amount**int32required Amount intended to be collected by this payment. A positive integer representing how much to charge in the smallest currency unit (e.g., 100 cents to charge 1.00 USD). **Example: **`110` **currency**Payment-Currencyrequired Three-letter [ISO currency code](https://en.wikipedia.org/wiki/ISO_4217), in uppercase. Must be a supported currency. **Example: **`EUR` **orderId**Payment-OrderId An order ID from your system. A unique identifier that can be used to reconcile the payment with your internal system. **Example: **`14379133960355` **description**Payment-Description An arbitrary string attached to the payment. Often useful for displaying to users. **Example: **`Test Shop - #84370745531439` **accountId**AccountIdrequired MONEI Account identifier. **Example: **`aa9333ba-82de-400c-9ae7-087b9f8d2242` **authorizationCode**Payment-AuthorizationCode Unique identifier provided by the bank performing transaction. **Example: **`475816` **livemode**Livemoderequired Has the value `true` if the resource exists in live mode or the value `false` if the resource exists in test mode. **Example: **`false` **status**Payment-Statusrequired The status of the payment. | Enum Value | Description | | ------------------- | ----------------------------------------------------------------------------- | | SUCCEEDED | The payment has been successfully processed and funds have been captured | | PENDING | The payment is being processed and awaiting completion | | FAILED | The payment attempt was unsuccessful | | CANCELED | The payment was canceled before completion | | REFUNDED | The full payment amount has been refunded | | PARTIALLY\_REFUNDED | Only a portion of the payment amount has been refunded | | AUTHORIZED | The payment has been authorized but funds have not been captured yet | | EXPIRED | The payment has expired without being completed | | PENDING\_PROCESSING | The payment was submitted to the processor and is awaiting an acknowledgement | | PAID\_OUT | Funds for this payment have been settled to the merchant's bank account | **Possible values:** \[`SUCCEEDED`, `PENDING`, `FAILED`, `CANCELED`, `REFUNDED`, `PARTIALLY_REFUNDED`, `AUTHORIZED`, `EXPIRED`, `PENDING_PROCESSING`, `PAID_OUT`] **Example: **`PENDING` **statusCode**Payment-StatusCode Payment status code. **Example: **`E000` **statusMessage**Payment-StatusMessage Human readable status message, can be displayed to a user. **Example: **`Transaction approved` **customer** object **email**string The customer's email address. **Example: **`john.doe@example.com` **name**string The customer's full name or business name. **Example: **`John Doe` **phone**string The customer's phone number in E.164 format. **Example: **`null` **shop** object The information about the shop (used in [hosted payment page](https://docs.monei.com/integrations/use-prebuilt-payment-page/)). **name**string The shop name. **Example: **`Test Shop` **country**Country Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). **Example: **`ES` **billingDetails** object Billing information associated with the payment method at the time of the transaction. **name**string The customer's billing full name. **Example: **`John Doe` **email**string The customer's billing email address. **Example: **`john.doe@example.com` **phone**string The customer's billing phone number in E.164 format. **Example: **`null` **company**string Billing company name. **Example: **`null` **taxId**string Company tax ID. **Example: **`null` **address** object **country**Country Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). **Example: **`ES` **city**string City, district, suburb, town, or village. **Example: **`Málaga` **line1**string Address line 1 (e.g., street, PO Box, or company name). **Example: **`Fake Street 123` **line2**string Address line 2 (e.g., apartment, suite, unit, or building). **Example: **`null` **zip**string ZIP or postal code. **Example: **`1234` **state**string State, county, province, or region. **Example: **`Málaga` **shippingDetails** object Shipping information associated with the payment. **name**string The shipping customer's full name. **Example: **`John Doe` **email**string The shipping customer's email address. **Example: **`john.doe@example.com` **phone**string The shipping customer's phone number in E.164 format. **Example: **`null` **company**string Name of the company where the shipment is going. **Example: **`null` **taxId**string Company tax ID. **Example: **`null` **address** object **country**Country Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). **Example: **`ES` **city**string City, district, suburb, town, or village. **Example: **`Málaga` **line1**string Address line 1 (e.g., street, PO Box, or company name). **Example: **`Fake Street 123` **line2**string Address line 2 (e.g., apartment, suite, unit, or building). **Example: **`null` **zip**string ZIP or postal code. **Example: **`1234` **state**string State, county, province, or region. **Example: **`Málaga` **refundedAmount**int32 Amount in cents refunded (can be less than the amount attribute on the payment if a partial refund was issued). **Example: **`null` **lastRefundAmount**int32 Amount in cents refunded in the last transaction. **Example: **`null` **lastRefundReason**Payment-LastRefundReason The reason of the last refund transaction. | Enum Value | Description | | --------------- | --------------------------------- | | order\_canceled | The underlying order was canceled | **Possible values:** \[`duplicated`, `fraudulent`, `requested_by_customer`, `order_canceled`] **Example: **`null` **cancellationReason**Payment-CancellationReason The reason for canceling the Payment. | Enum Value | Description | | --------------- | --------------------------------- | | order\_canceled | The underlying order was canceled | **Possible values:** \[`duplicated`, `fraudulent`, `requested_by_customer`, `order_canceled`] **Example: **`null` **sessionDetails** Payment-SessionDetails Information related to the browsing session of the user who initiated the payment. **ip**IP The IP address where the operation originated. **Example: **`100.100.200.100` **countryCode**Country Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). **Example: **`ES` **lang**Lang Two-letter language code ([ISO 639-1](https://en.wikipedia.org/wiki/ISO_639-1)). **Example: **`es` **deviceType**DeviceType Device type, could be `desktop`, `mobile`, `smartTV`, `tablet`. **Example: **`desktop` **deviceModel**DeviceModel Information about the device used for the browser session (e.g., `iPhone`). **Example: **`null` **browser**Browser The browser used in this browser session (e.g., `Mobile Safari`). **Example: **`Chrome` **browserVersion**BrowserVersion The version for the browser session (e.g., `13.1.1`). **Example: **`83.0.4103.116` **os**Os Operation system (e.g., `iOS`). **Example: **`Mac OS` **osVersion**OsVersion Operation system version (e.g., `13.5.1`). **Example: **`10.15.4` **source**Source The source component from where the operation was generated (mostly for our SDK's). **Example: **`MONEI/PHP` **sourceVersion**SourceVersion The source component version from where the operation was generated (mostly for our SDK's). **Example: **`0.1.2` **userAgent**UserAgent Full user agent string of the browser session. **Example: **`Mozilla/5.0 (Windows NT 10.0; Win64; x64) ...` **browserAccept**BrowserAccept Browser accept header. **Example: **`text/html,application/xhtml+xml,application/json` **browserColorDepth**BrowserColorDepth The color depth of the browser session (e.g., `24`). **Example: **`24` **browserScreenHeight**BrowserScreenHeight The screen height of the browser session (e.g., `1152`). **Example: **`1152` **browserScreenWidth**BrowserScreenWidth The screen width of the browser session (e.g., `2048`). **Example: **`2048` **browserTimezoneOffset**BrowserTimezoneOffset The timezone offset of the browser session (e.g., `-120`). **Example: **`-120` **traceDetails** Payment-TraceDetails Information related to the browsing session of the user who initiated the payment. **ip**IP The IP address where the operation originated. **Example: **`100.100.200.100` **countryCode**Country Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). **Example: **`ES` **lang**Lang Two-letter language code ([ISO 639-1](https://en.wikipedia.org/wiki/ISO_639-1)). **Example: **`es` **deviceType**DeviceType Device type, could be `desktop`, `mobile`, `smartTV`, `tablet`. **Example: **`desktop` **deviceModel**DeviceModel Information about the device used for the browser session (e.g., `iPhone`). **Example: **`null` **browser**Browser The browser used in this browser session (e.g., `Mobile Safari`). **Example: **`Chrome` **browserVersion**BrowserVersion The version for the browser session (e.g., `13.1.1`). **Example: **`83.0.4103.116` **os**Os Operation system (e.g., `iOS`). **Example: **`Mac OS` **osVersion**OsVersion Operation system version (e.g., `13.5.1`). **Example: **`10.15.4` **source**Source The source component from where the operation was generated (mostly for our SDK's). **Example: **`MONEI/PHP` **sourceVersion**SourceVersion The source component version from where the operation was generated (mostly for our SDK's). **Example: **`0.1.2` **userAgent**UserAgent Full user agent string of the browser session. **Example: **`Mozilla/5.0 (Windows NT 10.0; Win64; x64) ...` **browserAccept**BrowserAccept Browser accept header. **Example: **`text/html,application/xhtml+xml,application/json` **browserColorDepth**BrowserColorDepth The color depth of the browser session (e.g., `24`). **Example: **`24` **browserScreenHeight**BrowserScreenHeight The screen height of the browser session (e.g., `1152`). **Example: **`1152` **browserScreenWidth**BrowserScreenWidth The screen width of the browser session (e.g., `2048`). **Example: **`2048` **browserTimezoneOffset**BrowserTimezoneOffset The timezone offset of the browser session (e.g., `-120`). **Example: **`-120` **userId**string The ID of the user that started the operation. **Example: **`null` **userEmail**string The email of the user that started the operation. **Example: **`user@example.com` **paymentToken**Payment-PaymentToken A permanent token represents a payment method used in the payment. Pass `generatePaymentToken: true` when you creating a payment to generate it. You can pass it as `paymentToken` parameter to create other payments with the same payment method. This token does not expire, and should only be used server-side. **Example: **`7cc38b08ff471ccd313ad62b23b9f362b107560b` **paymentMethod** object Details about the payment method at the time of the transaction. **method**string Payment method type. | Enum Value | Description | | ---------- | ----------- | | alipay | Alipay | | card | Card | | bizum | Bizum | | paypal | PayPal | | mbway | MB WAY | | multibanco | Multibanco | | iDeal | iDEAL | | bancontact | Bancontact | | sofort | SOFORT | | trustly | Trustly | | sepa | SEPA | | klarna | Klarna | | giropay | Giropay | | eps | EPS | | blik | BLIK | **Possible values:** \[`alipay`, `card`, `bizum`, `paypal`, `mbway`, `multibanco`, `iDeal`, `bancontact`, `sofort`, `trustly`, `sepa`, `klarna`, `giropay`, `eps`, `blik`] **Example: **`card` **card** object Details about the card used as payment method at the time of the transaction. **country**Country Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). **Example: **`ES` **brand**string Card brand. | Enum Value | Description | | ---------- | ---------------------------------- | | visa | Visa credit or debit card | | mastercard | Mastercard credit or debit card | | diners | Diners Club credit card | | amex | American Express credit card | | jcb | Japan Credit Bureau card | | unionpay | UnionPay card from China | | discover | Discover | | unknown | Card brand could not be determined | **Possible values:** \[`visa`, `mastercard`, `diners`, `amex`, `jcb`, `unionpay`, `discover`, `unknown`] **Example: **`visa` **type**string Card type `debit` or `credit`. **Possible values:** \[`debit`, `credit`] **Example: **`credit` **threeDSecure**boolean Whether this transaction used 3D Secure authentication. **Example: **`false` **threeDSecureVersion**string The protocol version of the 3DS challenge. **Example: **`2.1.0` **threeDSecureFlow**string The flow used for 3DS authentication. | Enum Value | Description | | ----------------------- | ----------------------------------------------------------------------------------------------------- | | CHALLENGE | Authentication requiring additional shopper interaction through biometrics, 2FA, or other SCA methods | | FRICTIONLESS | Background authentication using device fingerprint without additional shopper interaction | | FRICTIONLESS\_CHALLENGE | Complete 3DS flow with additional authentication if initial data collection is insufficient | | DIRECT | Transaction exempt from SCA due to low risk assessment | **Possible values:** \[`CHALLENGE`, `FRICTIONLESS`, `FRICTIONLESS_CHALLENGE`, `DIRECT`] **Example: **`CHALLENGE` **expiration**int64 Time at which the card will expire. Measured in seconds since the Unix epoch. **Example: **`2048544000` **last4**string The last four digits of the card. **Example: **`0004` **fingerprint**string Unique identifier for the card number. Used to detect duplicate payment methods across customers. Not present for tokenized cards. **Example: **`7f2afde1566286c5fb126bb7e79bef549755cce6033dc429013c46d1365ff0e9` **tokenizationMethod**string The digital wallet used to tokenize the card. **Possible values:** \[`applePay`, `googlePay`, `clickToPay`] **Example: **`applePay` **cardholderName**string The name of the cardholder. **Example: **`John Doe` **cardholderEmail**string The email of the cardholder. **Example: **`email@example.com` **bizum** object Details about the Bizum account used as payment method at the time of the transaction. **phoneNumber**string Phone number in E.164 format used to pay with `bizum`. **Example: **`null` **paypal** object Details from Paypal order used as payment method at the time of the transaction. **orderId**string The Paypal's order ID. **Example: **`7XP21983KL5672104` **payerId**string The Paypal's payer ID. **Example: **`QWRTNBFHZXLPD` **email**string The Paypal's payer email. **Example: **`john.doe@example.com` **name**string The Paypal's payer name. **Example: **`John Doe` **mbway** object Details from MBWay order used as payment method at the time of the transaction. **phoneNumber**string Phone number in E.164 format used to pay with `mbway`. **Example: **`null` **trustly** object Details from Trustly order used as payment method at the time of the transaction. **customerId**string The Trustly's customer ID. **Example: **`null` **sepa** object Details from SEPA order used as payment method at the time of the transaction. **accountholderAddress**string The address of the account holder. **Example: **`null` **accountholderEmail**string The email of the account holder. **Example: **`null` **accountholderName**string The name of the account holder. **Example: **`null` **countryCode**string The country code of the account holder. **Example: **`null` **bankAddress**string The address of the bank. **Example: **`null` **bankCode**string The code of the bank. **Example: **`null` **bankName**string The name of the bank. **Example: **`null` **bic**string The BIC of the bank. **Example: **`null` **last4**string The last 4 digits of the IBAN. **Example: **`null` **fingerprint**string Unique identifier for the IBAN. Used to detect duplicate payment methods across customers. **Example: **`7f2afde1566286c5fb126bb7e79bef549755cce6033dc429013c46d1365ff0e9` **klarna** object Details from Klarna order used as payment method at the time of the transaction. **billingCategory**string | Enum Value | Description | | ------------------- | ----------------------------------------------- | | PAY\_LATER | Pay after delivery within a specified timeframe | | PAY\_NOW | Immediate payment at time of purchase | | SLICE\_IT | Split payment into installments | | SLICE\_IT\_BY\_CARD | Split payment into installments using a card | | PAY\_IN\_PARTS | Pay in equal installments (interest-free) | **Possible values:** \[`PAY_LATER`, `PAY_NOW`, `SLICE_IT`, `SLICE_IT_BY_CARD`, `PAY_IN_PARTS`] **Example: **`PAY_LATER` **authPaymentMethod**string | Enum Value | Description | | ---------------------- | ----------------------------------------- | | invoice | Traditional invoice payment | | fixed\_amount | Payment with a predetermined fixed amount | | pix | Brazilian instant payment system | | base\_account | Payment from a basic account | | deferred\_interest | Payment with delayed interest charges | | direct\_debit | Direct bank account debit | | direct\_bank\_transfer | Immediate bank transfer | | b2b\_invoice | Business-to-business invoice payment | | card | Credit or debit card payment | | slice\_it\_by\_card | Installment payment using a card | **Possible values:** \[`invoice`, `fixed_amount`, `pix`, `base_account`, `deferred_interest`, `direct_debit`, `direct_bank_transfer`, `b2b_invoice`, `card`, `slice_it_by_card`] **Example: **`card` **sequence** object This field needs to be sent in order to mark the beginning of a sequence of payments (recurring/subscriptions, installments, and so). Specific configurations can be set in the inside properties (`recurring`). **type**stringrequired **Possible values:** \[`recurring`] **Example: **`recurring` **recurring** object Specific configurations for recurring payments. Will only be used when `sequence`.`type` is `recurring`. **expiry**string Date after which no further recurring payments will be performed. Must be formatted as `YYYYMMDD`. **Default value: **`*(The payment method or card expiration)*` **Example: **`20210630` **frequency**int32 The minimum number of **days** between the different recurring payments. **Default value: **`25` **Example: **`30` **sequenceId**Payment-SequenceId A permanent identifier that refers to the initial payment of a sequence of payments. This value needs to be sent in the path for `RECURRING` payments. **Example: **`62b23b9f3627cc38b08ff471ccd313ad` **storeId**Payment-StoreId A unique identifier of the Store. If specified the payment is attached to this Store. **Example: **`e5f28150d9e8974c58ab5ec9c4a880f8734dcf05` **pointOfSaleId**Payment-PointOfSaleId A unique identifier of the Point of Sale. If specified the payment is attached to this Point of Sale. If there is a QR code attached to the same Point of Sale, this payment will be available by scanning the QR code. **Example: **`fb269cccfa0cc021f5d0b8eb1421646c696213e1` **metadata**object A set of key-value pairs that you can attach to a resource. This can be useful for storing additional information about the resource in a structured format. **Example: **`{"systemId":"12345"}` **nextAction** object If present, this property tells you what actions you need to take in order for your customer to fulfill a payment using the provided source. **type**string * `CONFIRM` - Your customer needs to be redirected to a [hosted payment page](https://docs.monei.com/integrations/use-prebuilt-payment-page/) or confirm payment using [payment token](https://docs.monei.com/integrations/build-custom-checkout/#3-confirm-the-payment-client-side). The **redirectUrl** will point to the hosted payment page. * `FRICTIONLESS_CHALLENGE` - Your customer needs to be redirected to the frictionless 3d secure challenge page provided by the bank. The **redirectUrl** will point to the frictionless 3d secure challenge page provided by the bank. * `CHALLENGE` - Your customer needs to be redirected to the 3d secure challenge page provided by the bank. The **redirectUrl** will point to the 3d secure challenge page provided by the bank. * `COMPLETE` - The payment is completed. The **redirectUrl** will be the **completeUrl** if it was provided when the payment was created. * `BIZUM_CHALLENGE` - Your customer will be redirected to the Bizum hosted payment page. **Possible values:** \[`CONFIRM`, `CHALLENGE`, `FRICTIONLESS_CHALLENGE`, `BIZUM_CHALLENGE`, `COMPLETE`] **Example: **`CONFIRM` **mustRedirect**boolean If `true` you have to redirect your customer to the **redirectUrl** to continue payment process. **Example: **`false` **redirectUrl**string Redirect your customer to this url to continue payment process. **Example: **`https://secure.monei.com/payments/af6029f80f5fc73a8ad2753eea0b1be0` **createdAt**int64 Time at which the resource was created. Measured in seconds since the Unix epoch. **Example: **`1636366897` **updatedAt**int64 Time at which the resource updated last time. Measured in seconds since the Unix epoch. **Example: **`1636366897` Payment ``` { "id": "af6029f80f5fc73a8ad2753eea0b1be0", "amount": 110, "currency": "EUR", "orderId": "14379133960355", "description": "Test Shop - #84370745531439", "accountId": "aa9333ba-82de-400c-9ae7-087b9f8d2242", "authorizationCode": "475816", "livemode": false, "status": "PENDING", "statusCode": "E000", "statusMessage": "Transaction approved", "customer": { "email": "john.doe@example.com", "name": "John Doe", "phone": null }, "shop": { "name": "Test Shop", "country": "ES" }, "billingDetails": { "name": "John Doe", "email": "john.doe@example.com", "phone": null, "company": null, "taxId": null, "address": { "country": "ES", "city": "Málaga", "line1": "Fake Street 123", "line2": null, "zip": "1234", "state": "Málaga" } }, "shippingDetails": { "name": "John Doe", "email": "john.doe@example.com", "phone": null, "company": null, "taxId": null, "address": { "country": "ES", "city": "Málaga", "line1": "Fake Street 123", "line2": null, "zip": "1234", "state": "Málaga" } }, "refundedAmount": null, "lastRefundAmount": null, "lastRefundReason": null, "cancellationReason": null, "sessionDetails": { "ip": "100.100.200.100", "countryCode": "ES", "lang": "es", "deviceType": "desktop", "deviceModel": null, "browser": "Chrome", "browserVersion": "83.0.4103.116", "os": "Mac OS", "osVersion": "10.15.4", "source": "MONEI/PHP", "sourceVersion": "0.1.2", "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) ...", "browserAccept": "text/html,application/xhtml+xml,application/json", "browserColorDepth": "24", "browserScreenHeight": "1152", "browserScreenWidth": "2048", "browserTimezoneOffset": "-120" }, "traceDetails": { "ip": "100.100.200.100", "countryCode": "ES", "lang": "es", "deviceType": "desktop", "deviceModel": null, "browser": "Chrome", "browserVersion": "83.0.4103.116", "os": "Mac OS", "osVersion": "10.15.4", "source": "MONEI/PHP", "sourceVersion": "0.1.2", "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) ...", "browserAccept": "text/html,application/xhtml+xml,application/json", "browserColorDepth": "24", "browserScreenHeight": "1152", "browserScreenWidth": "2048", "browserTimezoneOffset": "-120", "userId": null, "userEmail": "user@example.com" }, "paymentToken": "7cc38b08ff471ccd313ad62b23b9f362b107560b", "paymentMethod": { "method": "card", "card": { "country": "ES", "brand": "visa", "type": "credit", "threeDSecure": false, "threeDSecureVersion": "2.1.0", "threeDSecureFlow": "CHALLENGE", "expiration": 2048544000, "last4": "0004", "fingerprint": "7f2afde1566286c5fb126bb7e79bef549755cce6033dc429013c46d1365ff0e9", "tokenizationMethod": "applePay", "cardholderName": "John Doe", "cardholderEmail": "email@example.com" }, "bizum": { "phoneNumber": null }, "paypal": { "orderId": "7XP21983KL5672104", "payerId": "QWRTNBFHZXLPD", "email": "john.doe@example.com", "name": "John Doe" }, "mbway": { "phoneNumber": null }, "trustly": { "customerId": null }, "sepa": { "accountholderAddress": null, "accountholderEmail": null, "accountholderName": null, "countryCode": null, "bankAddress": null, "bankCode": null, "bankName": null, "bic": null, "last4": null, "fingerprint": "7f2afde1566286c5fb126bb7e79bef549755cce6033dc429013c46d1365ff0e9" }, "klarna": { "billingCategory": "PAY_LATER", "authPaymentMethod": "card" } }, "sequence": { "type": "recurring", "recurring": { "expiry": "20210630", "frequency": 30 } }, "sequenceId": "62b23b9f3627cc38b08ff471ccd313ad", "storeId": "e5f28150d9e8974c58ab5ec9c4a880f8734dcf05", "pointOfSaleId": "fb269cccfa0cc021f5d0b8eb1421646c696213e1", "metadata": { "systemId": "12345" }, "nextAction": { "type": "CONFIRM", "mustRedirect": false, "redirectUrl": "https://secure.monei.com/payments/af6029f80f5fc73a8ad2753eea0b1be0" }, "createdAt": 1636366897, "updatedAt": 1636366897 } ``` --- # PaymentMethods-Amount The amount of the payment in the smallest currency unit. For example, 10 EUR = 1000 cents. Only present when querying by paymentId. **integer**PaymentMethods-Amount The amount of the payment in the smallest currency unit. For example, 10 EUR = 1000 cents. Only present when querying by paymentId. **Example: **`10` PaymentMethods-Amount ``` 10 ``` --- # PaymentMethods-Currency Three-letter ISO currency code, in uppercase. Only present when querying by paymentId. **string**PaymentMethods-Currency Three-letter ISO currency code, in uppercase. Only present when querying by paymentId. **Example: **`EUR` PaymentMethods-Currency ``` "EUR" ``` --- # PaymentMethods-MerchantName The name of the merchant **string**PaymentMethods-MerchantName The name of the merchant **Example: **`MONEI` PaymentMethods-MerchantName ``` "MONEI" ``` --- # PaymentMethods-MerchantUrl The URL of the merchant's website **string**PaymentMethods-MerchantUrl The URL of the merchant's website **Example: **`https://monei.com/` PaymentMethods-MerchantUrl ``` "https://monei.com/" ``` --- # PaymentMethods-Metadata Additional configuration details for each payment method. **alipay** object **countries**string\[] List of countries where the payment method is available **Example: **`["CN"]` **bancontact** object **countries**string\[] List of countries where the payment method is available **Example: **`["BE"]` **bizum** object **countries**string\[] List of countries where the payment method is available **Example: **`["ES"]` **blik** object **countries**string\[] List of countries where the payment method is available **Example: **`["PL"]` **card** object **brands**string\[] List of card brands supported **Example: **`["visa","mastercard"]` **eps** object **countries**string\[] List of countries where the payment method is available **Example: **`["AT"]` **iDeal** object **countries**string\[] List of countries where the payment method is available **Example: **`["NL"]` **mbway** object **countries**string\[] List of countries where the payment method is available **Example: **`["PT"]` **multibanco** object **countries**string\[] List of countries where the payment method is available **Example: **`["PT"]` **sofort** object **countries**string\[] List of countries where the payment method is available **Example: **`["AT","BE","DE","ES","IT","NL","CH","PL"]` **trustly** object **countries**string\[] List of countries where the payment method is available **Example: **`["DE","DK","EE","ES","FI","GB","LT","LV","NL","NO","PL","SE","SK"]` **sepa** object **countries**string\[] List of countries where the payment method is available **Example: **`["AT","BE","BG","HR","CY","CZ","DK","EE","FI","FR","DE","GR","HU","IE","IT","LV","LT","LU","MT","NL","PL","PT","RO","SK","SI","ES","SE","IS","LI","NO","AD","SM","MC","VA","PF","TF","GI","GG","IM","JE","BL","PM","CH","GB","WF"]` **klarna** object **countries**string\[] List of countries where the payment method is available **Example: **`["AT","BE","CH","DE","DK","ES","FI","FR","GB","IT","NL","NO","SE"]` **giropay** object **countries**string\[] List of countries where the payment method is available **Example: **`["DE"]` **googlePay** object **merchantId**string Google Pay merchant ID **Example: **`12345678901234567890` **cvcRequired**boolean Whether CVC is required for Google Pay transactions **Example: **`false` **applePay** object **merchantId**string Apple Pay merchant ID **Example: **`merchant.com.monei` **clickToPay** object **tokenSupport**boolean Whether token support is enabled **Example: **`true` **preselected**boolean Whether the method is preselected **Example: **`false` **visa** object **srciDpaId**string **Example: **`f47ac10b-58cc-4372-a567-0e02b2c3d479` **srcInitiatorId**string **Example: **`550e8400-e29b-41d4-a716-446655440000` **mastercard** object **srciDpaId**string **Example: **`6ba7b810-9dad-11d1-80b4-00c04fd430c8` **srcInitiatorId**string **Example: **`a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11` **discover** object **srciDpaId**string **Example: **`71f0c4d5-9947-4d1c-9cb3-d6a3f7c4e701` **srcInitiatorId**string **Example: **`c2d06c25-9ddb-4a5e-9d5a-3ff1c8d98467` PaymentMethods-Metadata ``` { "alipay": { "countries": [ "CN" ] }, "bancontact": { "countries": [ "BE" ] }, "bizum": { "countries": [ "ES" ] }, "blik": { "countries": [ "PL" ] }, "card": { "brands": [ "visa", "mastercard" ] }, "eps": { "countries": [ "AT" ] }, "iDeal": { "countries": [ "NL" ] }, "mbway": { "countries": [ "PT" ] }, "multibanco": { "countries": [ "PT" ] }, "sofort": { "countries": [ "AT", "BE", "DE", "ES", "IT", "NL", "CH", "PL" ] }, "trustly": { "countries": [ "DE", "DK", "EE", "ES", "FI", "GB", "LT", "LV", "NL", "NO", "PL", "SE", "SK" ] }, "sepa": { "countries": [ "AT", "BE", "BG", "HR", "CY", "CZ", "DK", "EE", "FI", "FR", "DE", "GR", "HU", "IE", "IT", "LV", "LT", "LU", "MT", "NL", "PL", "PT", "RO", "SK", "SI", "ES", "SE", "IS", "LI", "NO", "AD", "SM", "MC", "VA", "PF", "TF", "GI", "GG", "IM", "JE", "BL", "PM", "CH", "GB", "WF" ] }, "klarna": { "countries": [ "AT", "BE", "CH", "DE", "DK", "ES", "FI", "FR", "GB", "IT", "NL", "NO", "SE" ] }, "giropay": { "countries": [ "DE" ] }, "googlePay": { "merchantId": "12345678901234567890", "cvcRequired": false }, "applePay": { "merchantId": "merchant.com.monei" }, "clickToPay": { "tokenSupport": true, "preselected": false, "visa": { "srciDpaId": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "srcInitiatorId": "550e8400-e29b-41d4-a716-446655440000" }, "mastercard": { "srciDpaId": "6ba7b810-9dad-11d1-80b4-00c04fd430c8", "srcInitiatorId": "a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11" }, "discover": { "srciDpaId": "71f0c4d5-9947-4d1c-9cb3-d6a3f7c4e701", "srcInitiatorId": "c2d06c25-9ddb-4a5e-9d5a-3ff1c8d98467" } } } ``` --- # PaymentMethods-Methods An array of available payment methods for the account or payment. Possible values include: * `alipay` - Alipay * `applePay` - Apple Pay * `bancontact` - Bancontact * `bizum` - Bizum * `blik` - BLIK * `card` - Credit or debit card * `cardPresent` - Card present (physical POS) * `clickToPay` - Click to Pay * `eps` - EPS * `giropay` - Giropay * `googlePay` - Google Pay * `iDeal` - iDEAL * `klarna` - Klarna * `mbway` - MB WAY * `multibanco` - Multibanco * `paypal` - PayPal * `sepa` - SEPA Direct Debit * `sofort` - Sofort * `trustly` - Trustly * Array \[ ****string **Possible values:** \[`alipay`, `applePay`, `bancontact`, `bizum`, `blik`, `card`, `cardPresent`, `clickToPay`, `eps`, `giropay`, `googlePay`, `iDeal`, `klarna`, `mbway`, `multibanco`, `paypal`, `sepa`, `sofort`, `trustly`] * ] PaymentMethods-Methods ``` [ "bizum", "applePay", "googlePay", "alipay", "bancontact", "blik", "eps", "iDeal", "mbway", "multibanco", "sofort", "trustly", "sepa", "klarna", "giropay", "card" ] ``` --- # PaymentMethods **livemode**Livemoderequired Has the value `true` if the resource exists in live mode or the value `false` if the resource exists in test mode. **Example: **`false` **paymentMethods**string\[]required An array of available payment methods for the account or payment. Possible values include: * `alipay` - Alipay * `applePay` - Apple Pay * `bancontact` - Bancontact * `bizum` - Bizum * `blik` - BLIK * `card` - Credit or debit card * `cardPresent` - Card present (physical POS) * `clickToPay` - Click to Pay * `eps` - EPS * `giropay` - Giropay * `googlePay` - Google Pay * `iDeal` - iDEAL * `klarna` - Klarna * `mbway` - MB WAY * `multibanco` - Multibanco * `paypal` - PayPal * `sepa` - SEPA Direct Debit * `sofort` - Sofort * `trustly` - Trustly **Possible values:** \[`alipay`, `applePay`, `bancontact`, `bizum`, `blik`, `card`, `cardPresent`, `clickToPay`, `eps`, `giropay`, `googlePay`, `iDeal`, `klarna`, `mbway`, `multibanco`, `paypal`, `sepa`, `sofort`, `trustly`] **Example: **`["bizum","applePay","googlePay","alipay","bancontact","blik","eps","iDeal","mbway","multibanco","sofort","trustly","sepa","klarna","giropay","card"]` **metadata** objectrequired Additional configuration details for each payment method. **alipay** object **countries**string\[] List of countries where the payment method is available **Example: **`["CN"]` **bancontact** object **countries**string\[] List of countries where the payment method is available **Example: **`["BE"]` **bizum** object **countries**string\[] List of countries where the payment method is available **Example: **`["ES"]` **blik** object **countries**string\[] List of countries where the payment method is available **Example: **`["PL"]` **card** object **brands**string\[] List of card brands supported **Example: **`["visa","mastercard"]` **eps** object **countries**string\[] List of countries where the payment method is available **Example: **`["AT"]` **iDeal** object **countries**string\[] List of countries where the payment method is available **Example: **`["NL"]` **mbway** object **countries**string\[] List of countries where the payment method is available **Example: **`["PT"]` **multibanco** object **countries**string\[] List of countries where the payment method is available **Example: **`["PT"]` **sofort** object **countries**string\[] List of countries where the payment method is available **Example: **`["AT","BE","DE","ES","IT","NL","CH","PL"]` **trustly** object **countries**string\[] List of countries where the payment method is available **Example: **`["DE","DK","EE","ES","FI","GB","LT","LV","NL","NO","PL","SE","SK"]` **sepa** object **countries**string\[] List of countries where the payment method is available **Example: **`["AT","BE","BG","HR","CY","CZ","DK","EE","FI","FR","DE","GR","HU","IE","IT","LV","LT","LU","MT","NL","PL","PT","RO","SK","SI","ES","SE","IS","LI","NO","AD","SM","MC","VA","PF","TF","GI","GG","IM","JE","BL","PM","CH","GB","WF"]` **klarna** object **countries**string\[] List of countries where the payment method is available **Example: **`["AT","BE","CH","DE","DK","ES","FI","FR","GB","IT","NL","NO","SE"]` **giropay** object **countries**string\[] List of countries where the payment method is available **Example: **`["DE"]` **googlePay** object **merchantId**string Google Pay merchant ID **Example: **`12345678901234567890` **cvcRequired**boolean Whether CVC is required for Google Pay transactions **Example: **`false` **applePay** object **merchantId**string Apple Pay merchant ID **Example: **`merchant.com.monei` **clickToPay** object **tokenSupport**boolean Whether token support is enabled **Example: **`true` **preselected**boolean Whether the method is preselected **Example: **`false` **visa** object **srciDpaId**string **Example: **`f47ac10b-58cc-4372-a567-0e02b2c3d479` **srcInitiatorId**string **Example: **`550e8400-e29b-41d4-a716-446655440000` **mastercard** object **srciDpaId**string **Example: **`6ba7b810-9dad-11d1-80b4-00c04fd430c8` **srcInitiatorId**string **Example: **`a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11` **discover** object **srciDpaId**string **Example: **`71f0c4d5-9947-4d1c-9cb3-d6a3f7c4e701` **srcInitiatorId**string **Example: **`c2d06c25-9ddb-4a5e-9d5a-3ff1c8d98467` **merchantName**PaymentMethods-MerchantNamerequired The name of the merchant **Example: **`MONEI` **merchantUrl**PaymentMethods-MerchantUrlrequired The URL of the merchant's website **Example: **`https://monei.com/` **countryCode**Countryrequired Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). **Example: **`ES` **accountId**AccountId MONEI Account identifier. **Example: **`aa9333ba-82de-400c-9ae7-087b9f8d2242` **amount**PaymentMethods-Amount The amount of the payment in the smallest currency unit. For example, 10 EUR = 1000 cents. Only present when querying by paymentId. **Example: **`10` **currency**PaymentMethods-Currency Three-letter ISO currency code, in uppercase. Only present when querying by paymentId. **Example: **`EUR` PaymentMethods ``` { "livemode": false, "paymentMethods": [ "bizum", "applePay", "googlePay", "alipay", "bancontact", "blik", "eps", "iDeal", "mbway", "multibanco", "sofort", "trustly", "sepa", "klarna", "giropay", "card" ], "metadata": { "alipay": { "countries": [ "CN" ] }, "bancontact": { "countries": [ "BE" ] }, "bizum": { "countries": [ "ES" ] }, "blik": { "countries": [ "PL" ] }, "card": { "brands": [ "visa", "mastercard" ] }, "eps": { "countries": [ "AT" ] }, "iDeal": { "countries": [ "NL" ] }, "mbway": { "countries": [ "PT" ] }, "multibanco": { "countries": [ "PT" ] }, "sofort": { "countries": [ "AT", "BE", "DE", "ES", "IT", "NL", "CH", "PL" ] }, "trustly": { "countries": [ "DE", "DK", "EE", "ES", "FI", "GB", "LT", "LV", "NL", "NO", "PL", "SE", "SK" ] }, "sepa": { "countries": [ "AT", "BE", "BG", "HR", "CY", "CZ", "DK", "EE", "FI", "FR", "DE", "GR", "HU", "IE", "IT", "LV", "LT", "LU", "MT", "NL", "PL", "PT", "RO", "SK", "SI", "ES", "SE", "IS", "LI", "NO", "AD", "SM", "MC", "VA", "PF", "TF", "GI", "GG", "IM", "JE", "BL", "PM", "CH", "GB", "WF" ] }, "klarna": { "countries": [ "AT", "BE", "CH", "DE", "DK", "ES", "FI", "FR", "GB", "IT", "NL", "NO", "SE" ] }, "giropay": { "countries": [ "DE" ] }, "googlePay": { "merchantId": "12345678901234567890", "cvcRequired": false }, "applePay": { "merchantId": "merchant.com.monei" }, "clickToPay": { "tokenSupport": true, "preselected": false, "visa": { "srciDpaId": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "srcInitiatorId": "550e8400-e29b-41d4-a716-446655440000" }, "mastercard": { "srciDpaId": "6ba7b810-9dad-11d1-80b4-00c04fd430c8", "srcInitiatorId": "a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11" }, "discover": { "srciDpaId": "71f0c4d5-9947-4d1c-9cb3-d6a3f7c4e701", "srcInitiatorId": "c2d06c25-9ddb-4a5e-9d5a-3ff1c8d98467" } } }, "merchantName": "MONEI", "merchantUrl": "https://monei.com/", "countryCode": "ES", "accountId": "aa9333ba-82de-400c-9ae7-087b9f8d2242", "amount": 10, "currency": "EUR" } ``` --- # RecurringPaymentRequest **orderId**Payment-OrderIdrequired An order ID from your system. A unique identifier that can be used to reconcile the payment with your internal system. **Example: **`14379133960355` **amount**int32 The amount to collected by this subsequent payment. A positive integer representing how much to charge in the smallest currency unit (e.g., 100 cents to charge 1.00 USD). **Example: **`110` **transactionType**Payment-TransactionType Same as the `transactionType` parameter from [create payment](https://docs.monei.com/apis/rest/payments-create/). If not sent, it will default in the same transaction type used in the initial payment. | Enum Value | Description | | ---------- | ---------------------------------------------------------------------------- | | SALE | Automatically captures funds when the customer authorizes the payment | | AUTH | Places a hold on funds without immediate capture, allowing for later capture | | PAYOUT | Sends funds to the customer | | VERIF | Verifies the payment method without placing a hold or capturing funds | **Possible values:** \[`SALE`, `AUTH`, `PAYOUT`, `VERIF`] **Default value: **`(same as initial payment)` **Example: **`SALE` **description**Payment-Description An arbitrary string attached to the payment. Often useful for displaying to users. **Example: **`Test Shop - #84370745531439` **customer** object **email**string The customer's email address. **Example: **`john.doe@example.com` **name**string The customer's full name or business name. **Example: **`John Doe` **phone**string The customer's phone number in E.164 format. **Example: **`null` **billingDetails** object Billing information associated with the payment method at the time of the transaction. **name**string The customer's billing full name. **Example: **`John Doe` **email**string The customer's billing email address. **Example: **`john.doe@example.com` **phone**string The customer's billing phone number in E.164 format. **Example: **`null` **company**string Billing company name. **Example: **`null` **taxId**string Company tax ID. **Example: **`null` **address** object **country**Country Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). **Example: **`ES` **city**string City, district, suburb, town, or village. **Example: **`Málaga` **line1**string Address line 1 (e.g., street, PO Box, or company name). **Example: **`Fake Street 123` **line2**string Address line 2 (e.g., apartment, suite, unit, or building). **Example: **`null` **zip**string ZIP or postal code. **Example: **`1234` **state**string State, county, province, or region. **Example: **`Málaga` **shippingDetails** object Shipping information associated with the payment. **name**string The shipping customer's full name. **Example: **`John Doe` **email**string The shipping customer's email address. **Example: **`john.doe@example.com` **phone**string The shipping customer's phone number in E.164 format. **Example: **`null` **company**string Name of the company where the shipment is going. **Example: **`null` **taxId**string Company tax ID. **Example: **`null` **address** object **country**Country Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). **Example: **`ES` **city**string City, district, suburb, town, or village. **Example: **`Málaga` **line1**string Address line 1 (e.g., street, PO Box, or company name). **Example: **`Fake Street 123` **line2**string Address line 2 (e.g., apartment, suite, unit, or building). **Example: **`null` **zip**string ZIP or postal code. **Example: **`1234` **state**string State, county, province, or region. **Example: **`Málaga` **callbackUrl**Payment-CallbackUrl The URL to which a payment result should be sent asynchronously. **Example: **`https://example.com/checkout/callback` **metadata**object A set of key-value pairs that you can attach to a resource. This can be useful for storing additional information about the resource in a structured format. **Example: **`{"systemId":"12345"}` RecurringPaymentRequest ``` { "orderId": "14379133960355", "amount": 110, "transactionType": "SALE", "description": "Test Shop - #84370745531439", "customer": { "email": "john.doe@example.com", "name": "John Doe", "phone": null }, "billingDetails": { "name": "John Doe", "email": "john.doe@example.com", "phone": null, "company": null, "taxId": null, "address": { "country": "ES", "city": "Málaga", "line1": "Fake Street 123", "line2": null, "zip": "1234", "state": "Málaga" } }, "shippingDetails": { "name": "John Doe", "email": "john.doe@example.com", "phone": null, "company": null, "taxId": null, "address": { "country": "ES", "city": "Málaga", "line1": "Fake Street 123", "line2": null, "zip": "1234", "state": "Málaga" } }, "callbackUrl": "https://example.com/checkout/callback", "metadata": { "systemId": "12345" } } ``` --- # RefundPaymentRequest **amount**int32 The amount to refund, which must be less than or equal to the original amount. **Example: **`110` **refundReason**Payment-RefundReason The reason for refunding the Payment. **Possible values:** \[`duplicated`, `fraudulent`, `requested_by_customer`] **Example: **`null` RefundPaymentRequest ``` { "amount": 110, "refundReason": null } ``` --- # RegisterApplePayDomainRequest **domainName**DomainNamerequired The domain name to register for Apple Pay. **Example: **`example.com` RegisterApplePayDomainRequest ``` { "domainName": "example.com" } ``` --- # SendPaymentLinkRequest **customerEmail**string The customer will receive payment link on this email address. **Example: **`john.doe@example.com` **customerPhone**string Phone number in E.164 format. The customer will receive payment link on this phone number. **Example: **`+34500000000` **channel**Payment-MessageChannel The channel used to send the payment message. | Enum Value | Description | | ---------- | --------------------------------- | | EMAIL | Send message via email | | WHATSAPP | Send message via WhatsApp | | SMS | Send message via SMS text message | **Possible values:** \[`EMAIL`, `WHATSAPP`, `SMS`] **Example: **`EMAIL` **language**Payment-MessageLanguage The language of message sent to the customer. If not provided the default customer language is used if available. | Enum Value | Description | | ---------- | ----------- | | en | English | | es | Spanish | | ca | Catalan | | pt | Portuguese | | de | German | | it | Italian | | fr | French | **Possible values:** \[`en`, `es`, `ca`, `pt`, `de`, `it`, `fr`] **Example: **`en` SendPaymentLinkRequest ``` { "customerEmail": "john.doe@example.com", "customerPhone": "+34500000000", "channel": "EMAIL", "language": "en" } ``` --- # SendPaymentReceiptRequest **customerEmail**string The customer will receive payment receipt on this email address. **Example: **`john.doe@example.com` **customerPhone**string Phone number in E.164 format. The customer will receive payment receipt link on this phone number. **Example: **`+34500000000` **channel**Payment-MessageChannel The channel used to send the payment message. | Enum Value | Description | | ---------- | --------------------------------- | | EMAIL | Send message via email | | WHATSAPP | Send message via WhatsApp | | SMS | Send message via SMS text message | **Possible values:** \[`EMAIL`, `WHATSAPP`, `SMS`] **Example: **`EMAIL` **language**Payment-MessageLanguage The language of message sent to the customer. If not provided the default customer language is used if available. | Enum Value | Description | | ---------- | ----------- | | en | English | | es | Spanish | | ca | Catalan | | pt | Portuguese | | de | German | | it | Italian | | fr | French | **Possible values:** \[`en`, `es`, `ca`, `pt`, `de`, `it`, `fr`] **Example: **`en` SendPaymentReceiptRequest ``` { "customerEmail": "john.doe@example.com", "customerPhone": "+34500000000", "channel": "EMAIL", "language": "en" } ``` --- # SendPaymentRequestRequest **phoneNumber**stringrequired Phone number in E.164 format. The customer will receive payment link on this phone number. **Example: **`+34500000000` **language**Payment-MessageLanguage The language of message sent to the customer. If not provided the default customer language is used if available. | Enum Value | Description | | ---------- | ----------- | | en | English | | es | Spanish | | ca | Catalan | | pt | Portuguese | | de | German | | it | Italian | | fr | French | **Possible values:** \[`en`, `es`, `ca`, `pt`, `de`, `it`, `fr`] **Example: **`en` SendPaymentRequestRequest ``` { "phoneNumber": "+34500000000", "language": "en" } ``` --- # SendSubscriptionLinkRequest **customerEmail**email Customer email to send the subscription link to **customerPhone**string Customer phone number to send the subscription link to **channel**string Channel to use for sending the subscription link | Enum Value | Description | | ---------- | --------------------------------- | | EMAIL | Send message via email | | WHATSAPP | Send message via WhatsApp | | SMS | Send message via SMS text message | **Possible values:** \[`EMAIL`, `WHATSAPP`, `SMS`] **language**string Language to use for the subscription link message SendSubscriptionLinkRequest ``` { "customerEmail": "user@example.com", "customerPhone": "string", "channel": "EMAIL", "language": "string" } ``` --- # SendSubscriptionStatusRequest **customerEmail**email Customer email to send the subscription status to **customerPhone**string Customer phone number to send the subscription status to **channel**string Channel to use for sending the subscription status | Enum Value | Description | | ---------- | --------------------------------- | | EMAIL | Send message via email | | WHATSAPP | Send message via WhatsApp | | SMS | Send message via SMS text message | **Possible values:** \[`EMAIL`, `WHATSAPP`, `SMS`] **language**string Language to use for the subscription status message SendSubscriptionStatusRequest ``` { "customerEmail": "user@example.com", "customerPhone": "string", "channel": "EMAIL", "language": "string" } ``` --- # ServiceUnavailableError **status**stringrequired Error type identifier **Example: **`ServiceUnavailableError` **statusCode**int32required HTTP status code **Example: **`503` **message**stringrequired Human-readable error message **Example: **`Upstream service is unavailable` **requestId**stringrequired Unique identifier for the request **Example: **`df011689-bd3e-4953-95ca-c7bbdacaf6f8` **requestTime**date-timerequired Timestamp when the request was processed **Example: **`2025-03-05T10:25:52Z` ServiceUnavailableError ``` { "status": "ServiceUnavailableError", "statusCode": 503, "message": "Upstream service is unavailable", "requestId": "df011689-bd3e-4953-95ca-c7bbdacaf6f8", "requestTime": "2025-03-05T10:25:52Z" } ``` --- # Source The source component from where the operation was generated (mostly for our SDK's). **string**Source The source component from where the operation was generated (mostly for our SDK's). **Example: **`MONEI/PHP` Source ``` "MONEI/PHP" ``` --- # SourceVersion The source component version from where the operation was generated (mostly for our SDK's). **string**SourceVersion The source component version from where the operation was generated (mostly for our SDK's). **Example: **`0.1.2` SourceVersion ``` "0.1.2" ``` --- # Subscription-CallbackUrl The URL will be called each time subscription status changes. You will receive a subscription object in the body of the request. **string**Subscription-CallbackUrl The URL will be called each time subscription status changes. You will receive a subscription object in the body of the request. **Example: **`https://example.com/subscriptions/callback` Subscription-CallbackUrl ``` "https://example.com/subscriptions/callback" ``` --- # Subscription-CancelAtPeriodEnd If true, the subscription will be canceled at the end of the current period. **boolean**Subscription-CancelAtPeriodEnd If true, the subscription will be canceled at the end of the current period. **Example: **`false` Subscription-CancelAtPeriodEnd ``` false ``` --- # Subscription-CurrentPeriodEnd The end date of the current subscription period. Measured in seconds since the Unix epoch. **number**int64 The end date of the current subscription period. Measured in seconds since the Unix epoch. **Example: **`1636366897` Subscription-CurrentPeriodEnd ``` 1636366897 ``` --- # Subscription-CurrentPeriodStart The start date of the current subscription period. Measured in seconds since the Unix epoch. **number**int64 The start date of the current subscription period. Measured in seconds since the Unix epoch. **Example: **`1636366897` Subscription-CurrentPeriodStart ``` 1636366897 ``` --- # Subscription-Description An arbitrary string attached to the subscription. Often useful for displaying to users. **string**Subscription-Description An arbitrary string attached to the subscription. Often useful for displaying to users. **Example: **`MoonMail Monthly Lite` Subscription-Description ``` "MoonMail Monthly Lite" ``` --- # Subscription-Id Unique identifier for the subscription. **string**Subscription-Id Unique identifier for the subscription. **Example: **`575bcd84-09fc-4a6e-8c4c-f88b8eb90bfa` Subscription-Id ``` "575bcd84-09fc-4a6e-8c4c-f88b8eb90bfa" ``` --- # Subscription-Interval Subscription interval. The `minute` and `hour` intervals are only available in test mode. **string**Subscription-Interval Subscription interval. The `minute` and `hour` intervals are only available in test mode. | Enum Value | Description | | ---------- | ------------------ | | minute | Minutely | | hour | Hourly | | day | Daily | | week | Weekly | | month | Monthly | | quarter | Every three months | | year | Yearly | **Possible values:** \[`minute`, `hour`, `day`, `week`, `month`, `quarter`, `year`] **Example: **`month` Subscription-Interval ``` "month" ``` --- # Subscription-IntervalCount Number of intervals between subscription payments. **integer**int32 Number of intervals between subscription payments. **Example: **`1` Subscription-IntervalCount ``` 1 ``` --- # Subscription-LastPayment **id**Payment-Id Unique identifier for the payment. **Example: **`af6029f80f5fc73a8ad2753eea0b1be0` **status**Payment-Status The status of the payment. | Enum Value | Description | | ------------------- | ----------------------------------------------------------------------------- | | SUCCEEDED | The payment has been successfully processed and funds have been captured | | PENDING | The payment is being processed and awaiting completion | | FAILED | The payment attempt was unsuccessful | | CANCELED | The payment was canceled before completion | | REFUNDED | The full payment amount has been refunded | | PARTIALLY\_REFUNDED | Only a portion of the payment amount has been refunded | | AUTHORIZED | The payment has been authorized but funds have not been captured yet | | EXPIRED | The payment has expired without being completed | | PENDING\_PROCESSING | The payment was submitted to the processor and is awaiting an acknowledgement | | PAID\_OUT | Funds for this payment have been settled to the merchant's bank account | **Possible values:** \[`SUCCEEDED`, `PENDING`, `FAILED`, `CANCELED`, `REFUNDED`, `PARTIALLY_REFUNDED`, `AUTHORIZED`, `EXPIRED`, `PENDING_PROCESSING`, `PAID_OUT`] **Example: **`PENDING` **statusCode**Payment-StatusCode Payment status code. **Example: **`E000` **statusMessage**Payment-StatusMessage Human readable status message, can be displayed to a user. **Example: **`Transaction approved` Subscription-LastPayment ``` { "id": "af6029f80f5fc73a8ad2753eea0b1be0", "status": "PENDING", "statusCode": "E000", "statusMessage": "Transaction approved" } ``` --- # Subscription-NextPaymentAt The date when the next payment will be made. **integer**int64 The date when the next payment will be made. **Example: **`1636366897` Subscription-NextPaymentAt ``` 1636366897 ``` --- # Subscription-PauseAtPeriodEnd If true, the subscription will be paused at the end of the current period. **boolean**Subscription-PauseAtPeriodEnd If true, the subscription will be paused at the end of the current period. **Example: **`false` Subscription-PauseAtPeriodEnd ``` false ``` --- # Subscription-PauseIntervalCount Number of intervals when subscription will be paused before it activates again. **integer**int32 Number of intervals when subscription will be paused before it activates again. **Example: **`1` Subscription-PauseIntervalCount ``` 1 ``` --- # Subscription-PaymentCallbackUrl The URL will be called each time subscription creates a new payments. You will receive the payment object in the body of the request. **string**Subscription-PaymentCallbackUrl The URL will be called each time subscription creates a new payments. You will receive the payment object in the body of the request. **Example: **`https://example.com/payments/callback` Subscription-PaymentCallbackUrl ``` "https://example.com/payments/callback" ``` --- # Subscription-PaymentMethod Details about the payment method at the time of the transaction. **method**string Subscription method type. | Enum Value | Description | | ---------- | ----------- | | card | Card | | bizum | Bizum | **Possible values:** \[`card`, `bizum`] **Example: **`card` **card** object Details about the card used as payment method at the time of the transaction. **country**Country Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). **Example: **`ES` **brand**string Card brand. | Enum Value | Description | | ---------- | ---------------------------------- | | visa | Visa credit or debit card | | mastercard | Mastercard credit or debit card | | diners | Diners Club credit card | | amex | American Express credit card | | jcb | Japan Credit Bureau card | | unionpay | UnionPay card from China | | discover | Discover | | unknown | Card brand could not be determined | **Possible values:** \[`visa`, `mastercard`, `diners`, `amex`, `jcb`, `unionpay`, `discover`, `unknown`] **Example: **`visa` **type**string Card type `debit` or `credit`. **Possible values:** \[`debit`, `credit`] **Example: **`credit` **threeDSecure**boolean Whether this transaction used 3D Secure authentication. **Example: **`false` **threeDSecureVersion**string The protocol version of the 3DS challenge. **Example: **`2.1.0` **threeDSecureFlow**string The flow used for 3DS authentication. | Enum Value | Description | | ----------------------- | ----------------------------------------------------------------------------------------------------- | | CHALLENGE | Authentication requiring additional shopper interaction through biometrics, 2FA, or other SCA methods | | FRICTIONLESS | Background authentication using device fingerprint without additional shopper interaction | | FRICTIONLESS\_CHALLENGE | Complete 3DS flow with additional authentication if initial data collection is insufficient | | DIRECT | Transaction exempt from SCA due to low risk assessment | **Possible values:** \[`CHALLENGE`, `FRICTIONLESS`, `FRICTIONLESS_CHALLENGE`, `DIRECT`] **Example: **`CHALLENGE` **expiration**int64 Time at which the card will expire. Measured in seconds since the Unix epoch. **Example: **`2048544000` **last4**string The last four digits of the card. **Example: **`0004` **fingerprint**string Unique identifier for the card number. Used to detect duplicate payment methods across customers. Not present for tokenized cards. **Example: **`7f2afde1566286c5fb126bb7e79bef549755cce6033dc429013c46d1365ff0e9` **tokenizationMethod**string The digital wallet used to tokenize the card. **Possible values:** \[`applePay`, `googlePay`, `clickToPay`] **Example: **`applePay` **cardholderName**string The name of the cardholder. **Example: **`John Doe` **cardholderEmail**string The email of the cardholder. **Example: **`email@example.com` **bizum** object Details about the Bizum account used as payment method at the time of the transaction. **phoneNumber**string Phone number in E.164 format used to pay with `bizum`. **Example: **`null` Subscription-PaymentMethod ``` { "method": "card", "card": { "country": "ES", "brand": "visa", "type": "credit", "threeDSecure": false, "threeDSecureVersion": "2.1.0", "threeDSecureFlow": "CHALLENGE", "expiration": 2048544000, "last4": "0004", "fingerprint": "7f2afde1566286c5fb126bb7e79bef549755cce6033dc429013c46d1365ff0e9", "tokenizationMethod": "applePay", "cardholderName": "John Doe", "cardholderEmail": "email@example.com" }, "bizum": { "phoneNumber": null } } ``` --- # Subscription-PaymentMethodCard Details about the card used as payment method at the time of the transaction. **country**Country Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). **Example: **`ES` **brand**string Card brand. | Enum Value | Description | | ---------- | ---------------- | | visa | Visa | | mastercard | Mastercard | | diners | Diners Club | | amex | American Express | | jcb | JCB | | unionpay | UnionPay | | unknown | Unknown | **Possible values:** \[`visa`, `mastercard`, `diners`, `amex`, `jcb`, `unionpay`, `unknown`] **Example: **`visa` **type**string Card type `debit` or `credit`. | Enum Value | Description | | ---------- | ----------- | | debit | Debit | | credit | Credit | **Possible values:** \[`debit`, `credit`] **Example: **`credit` **threeDSecure**boolean Wether this transaction used 3D Secure authentication. **Example: **`false` **threeDSecureVersion**string The protocol version of the 3DS challenge. **Example: **`2.1.0` **expiration**int64 Time at which the card will expire. Measured in seconds since the Unix epoch. **Example: **`2048544000` **last4**string The last four digits of the card. **Example: **`0004` **fingerprint**string Unique identifier for the card number. Used to detect duplicate payment methods across customers. Not present for tokenized cards. **Example: **`7f2afde1566286c5fb126bb7e79bef549755cce6033dc429013c46d1365ff0e9` Subscription-PaymentMethodCard ``` { "country": "ES", "brand": "visa", "type": "credit", "threeDSecure": false, "threeDSecureVersion": "2.1.0", "expiration": 2048544000, "last4": "0004", "fingerprint": "7f2afde1566286c5fb126bb7e79bef549755cce6033dc429013c46d1365ff0e9" } ``` --- # Subscription-PaymentMethods List of payment methods allowed for subscriptions. * Array \[ ****string * ] Subscription-PaymentMethods ``` [ "card", "bizum" ] ``` --- # Subscription-RetryCount Number of retries left for the subscription. **integer**int32 Number of retries left for the subscription. **Example: **`1` Subscription-RetryCount ``` 1 ``` --- # Subscription-RetrySchedule Defines a custom schedule for retrying failed subscription payments. Each entry in the array specifies how long to wait before attempting the next payment retry. If not specified, the system's default retry schedule will be used. * Array \[ **interval**stringrequired The unit of time to wait before the retry attempt. | Enum Value | Description | | ---------- | ----------- | | day | Daily | | week | Weekly | | month | Monthly | | year | Yearly | **Possible values:** \[`day`, `week`, `month`, `year`] **Example: **`day` **intervalCount**int32required The number of intervals to wait before the retry attempt. **Possible values:** `>= 1` and `<= 31` **Example: **`3` * ] Subscription-RetrySchedule ``` [ { "interval": "day", "intervalCount": 1 }, { "interval": "day", "intervalCount": 3 }, { "interval": "week", "intervalCount": 1 } ] ``` --- # Subscription-SkipIntervalCount The number of intervals during which the subscription billing cycle will be skipped without altering the subscription status. This is useful when payment for a specific period is received through different methods. **integer**int32 The number of intervals during which the subscription billing cycle will be skipped without altering the subscription status. This is useful when payment for a specific period is received through different methods. **Example: **`1` Subscription-SkipIntervalCount ``` 1 ``` --- # Subscription-Status The status of the subscription. **string**Subscription-Status The status of the subscription. | Enum Value | Description | | ---------- | -------------------------------------------------------------------------------------------------- | | PENDING | The subscription has been created but is waiting for initial payment or activation | | EXPIRED | The subscription has reached its end date or maximum number of attempts without successful payment | | TRIALING | The subscription is in trial period before the first payment is required | | ACTIVE | The subscription is currently active and payments are being processed normally | | PAST\_DUE | The most recent payment attempt failed but the subscription will retry according to schedule | | PAUSED | The subscription is temporarily suspended and will resume based on pause settings | | CANCELED | The subscription has been permanently terminated and will not process further payments | **Possible values:** \[`PENDING`, `EXPIRED`, `TRIALING`, `ACTIVE`, `PAST_DUE`, `PAUSED`, `CANCELED`] **Example: **`PENDING` Subscription-Status ``` "PENDING" ``` --- # Subscription-TrialPeriodDays Number of days the trial period lasts. **integer**int32 Number of days the trial period lasts. **Example: **`7` Subscription-TrialPeriodDays ``` 7 ``` --- # Subscription-TrialPeriodEnd The end date of the trial period. Measured in seconds since the Unix epoch. **number**int64 The end date of the trial period. Measured in seconds since the Unix epoch. **Example: **`1636366897` Subscription-TrialPeriodEnd ``` 1636366897 ``` --- # Subscription **id**Subscription-Idrequired Unique identifier for the subscription. **Example: **`575bcd84-09fc-4a6e-8c4c-f88b8eb90bfa` **amount**int32required Amount intended to be collected by this payment. A positive integer representing how much to charge in the smallest currency unit (e.g., 100 cents to charge 1.00 USD). **Example: **`110` **currency**Payment-Currency Three-letter [ISO currency code](https://en.wikipedia.org/wiki/ISO_4217), in uppercase. Must be a supported currency. **Example: **`EUR` **allowedPaymentMethods**string\[] List of payment methods allowed for subscriptions. | Enum Value | Description | | ---------- | ----------- | | card | Card | | bizum | Bizum | **Example: **`["card","bizum"]` **description**Subscription-Description An arbitrary string attached to the subscription. Often useful for displaying to users. **Example: **`MoonMail Monthly Lite` **accountId**AccountIdrequired MONEI Account identifier. **Example: **`aa9333ba-82de-400c-9ae7-087b9f8d2242` **livemode**Livemoderequired Has the value `true` if the resource exists in live mode or the value `false` if the resource exists in test mode. **Example: **`false` **status**Subscription-Statusrequired The status of the subscription. | Enum Value | Description | | ---------- | -------------------------------------------------------------------------------------------------- | | PENDING | The subscription has been created but is waiting for initial payment or activation | | EXPIRED | The subscription has reached its end date or maximum number of attempts without successful payment | | TRIALING | The subscription is in trial period before the first payment is required | | ACTIVE | The subscription is currently active and payments are being processed normally | | PAST\_DUE | The most recent payment attempt failed but the subscription will retry according to schedule | | PAUSED | The subscription is temporarily suspended and will resume based on pause settings | | CANCELED | The subscription has been permanently terminated and will not process further payments | **Possible values:** \[`PENDING`, `EXPIRED`, `TRIALING`, `ACTIVE`, `PAST_DUE`, `PAUSED`, `CANCELED`] **Example: **`PENDING` **customer** object **email**string The customer's email address. **Example: **`john.doe@example.com` **name**string The customer's full name or business name. **Example: **`John Doe` **phone**string The customer's phone number in E.164 format. **Example: **`null` **billingDetails** object Billing information associated with the payment method at the time of the transaction. **name**string The customer's billing full name. **Example: **`John Doe` **email**string The customer's billing email address. **Example: **`john.doe@example.com` **phone**string The customer's billing phone number in E.164 format. **Example: **`null` **company**string Billing company name. **Example: **`null` **taxId**string Company tax ID. **Example: **`null` **address** object **country**Country Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). **Example: **`ES` **city**string City, district, suburb, town, or village. **Example: **`Málaga` **line1**string Address line 1 (e.g., street, PO Box, or company name). **Example: **`Fake Street 123` **line2**string Address line 2 (e.g., apartment, suite, unit, or building). **Example: **`null` **zip**string ZIP or postal code. **Example: **`1234` **state**string State, county, province, or region. **Example: **`Málaga` **shippingDetails** object Shipping information associated with the payment. **name**string The shipping customer's full name. **Example: **`John Doe` **email**string The shipping customer's email address. **Example: **`john.doe@example.com` **phone**string The shipping customer's phone number in E.164 format. **Example: **`null` **company**string Name of the company where the shipment is going. **Example: **`null` **taxId**string Company tax ID. **Example: **`null` **address** object **country**Country Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). **Example: **`ES` **city**string City, district, suburb, town, or village. **Example: **`Málaga` **line1**string Address line 1 (e.g., street, PO Box, or company name). **Example: **`Fake Street 123` **line2**string Address line 2 (e.g., apartment, suite, unit, or building). **Example: **`null` **zip**string ZIP or postal code. **Example: **`1234` **state**string State, county, province, or region. **Example: **`Málaga` **interval**Subscription-Intervalrequired Subscription interval. The `minute` and `hour` intervals are only available in test mode. | Enum Value | Description | | ---------- | ------------------ | | minute | Minutely | | hour | Hourly | | day | Daily | | week | Weekly | | month | Monthly | | quarter | Every three months | | year | Yearly | **Possible values:** \[`minute`, `hour`, `day`, `week`, `month`, `quarter`, `year`] **Example: **`month` **intervalCount**int32required Number of intervals between subscription payments. **Example: **`1` **pauseIntervalCount**int32 Number of intervals when subscription will be paused before it activates again. **Example: **`1` **skipIntervalCount**int32 The number of intervals during which the subscription billing cycle will be skipped without altering the subscription status. This is useful when payment for a specific period is received through different methods. **Example: **`1` **lastOrderId**Payment-OrderId An order ID from your system. A unique identifier that can be used to reconcile the payment with your internal system. **Example: **`14379133960355` **lastPayment** object **id**Payment-Id Unique identifier for the payment. **Example: **`af6029f80f5fc73a8ad2753eea0b1be0` **status**Payment-Status The status of the payment. | Enum Value | Description | | ------------------- | ----------------------------------------------------------------------------- | | SUCCEEDED | The payment has been successfully processed and funds have been captured | | PENDING | The payment is being processed and awaiting completion | | FAILED | The payment attempt was unsuccessful | | CANCELED | The payment was canceled before completion | | REFUNDED | The full payment amount has been refunded | | PARTIALLY\_REFUNDED | Only a portion of the payment amount has been refunded | | AUTHORIZED | The payment has been authorized but funds have not been captured yet | | EXPIRED | The payment has expired without being completed | | PENDING\_PROCESSING | The payment was submitted to the processor and is awaiting an acknowledgement | | PAID\_OUT | Funds for this payment have been settled to the merchant's bank account | **Possible values:** \[`SUCCEEDED`, `PENDING`, `FAILED`, `CANCELED`, `REFUNDED`, `PARTIALLY_REFUNDED`, `AUTHORIZED`, `EXPIRED`, `PENDING_PROCESSING`, `PAID_OUT`] **Example: **`PENDING` **statusCode**Payment-StatusCode Payment status code. **Example: **`E000` **statusMessage**Payment-StatusMessage Human readable status message, can be displayed to a user. **Example: **`Transaction approved` **paymentMethod** object Details about the payment method at the time of the transaction. **method**string Subscription method type. | Enum Value | Description | | ---------- | ----------- | | card | Card | | bizum | Bizum | **Possible values:** \[`card`, `bizum`] **Example: **`card` **card** object Details about the card used as payment method at the time of the transaction. **country**Country Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). **Example: **`ES` **brand**string Card brand. | Enum Value | Description | | ---------- | ---------------------------------- | | visa | Visa credit or debit card | | mastercard | Mastercard credit or debit card | | diners | Diners Club credit card | | amex | American Express credit card | | jcb | Japan Credit Bureau card | | unionpay | UnionPay card from China | | discover | Discover | | unknown | Card brand could not be determined | **Possible values:** \[`visa`, `mastercard`, `diners`, `amex`, `jcb`, `unionpay`, `discover`, `unknown`] **Example: **`visa` **type**string Card type `debit` or `credit`. **Possible values:** \[`debit`, `credit`] **Example: **`credit` **threeDSecure**boolean Whether this transaction used 3D Secure authentication. **Example: **`false` **threeDSecureVersion**string The protocol version of the 3DS challenge. **Example: **`2.1.0` **threeDSecureFlow**string The flow used for 3DS authentication. | Enum Value | Description | | ----------------------- | ----------------------------------------------------------------------------------------------------- | | CHALLENGE | Authentication requiring additional shopper interaction through biometrics, 2FA, or other SCA methods | | FRICTIONLESS | Background authentication using device fingerprint without additional shopper interaction | | FRICTIONLESS\_CHALLENGE | Complete 3DS flow with additional authentication if initial data collection is insufficient | | DIRECT | Transaction exempt from SCA due to low risk assessment | **Possible values:** \[`CHALLENGE`, `FRICTIONLESS`, `FRICTIONLESS_CHALLENGE`, `DIRECT`] **Example: **`CHALLENGE` **expiration**int64 Time at which the card will expire. Measured in seconds since the Unix epoch. **Example: **`2048544000` **last4**string The last four digits of the card. **Example: **`0004` **fingerprint**string Unique identifier for the card number. Used to detect duplicate payment methods across customers. Not present for tokenized cards. **Example: **`7f2afde1566286c5fb126bb7e79bef549755cce6033dc429013c46d1365ff0e9` **tokenizationMethod**string The digital wallet used to tokenize the card. **Possible values:** \[`applePay`, `googlePay`, `clickToPay`] **Example: **`applePay` **cardholderName**string The name of the cardholder. **Example: **`John Doe` **cardholderEmail**string The email of the cardholder. **Example: **`email@example.com` **bizum** object Details about the Bizum account used as payment method at the time of the transaction. **phoneNumber**string Phone number in E.164 format used to pay with `bizum`. **Example: **`null` **currentPeriodStart**int64 The start date of the current subscription period. Measured in seconds since the Unix epoch. **Example: **`1636366897` **currentPeriodEnd**int64 The end date of the current subscription period. Measured in seconds since the Unix epoch. **Example: **`1636366897` **trialPeriodEnd**int64 The end date of the trial period. Measured in seconds since the Unix epoch. **Example: **`1636366897` **nextPaymentAt**int64 The date when the next payment will be made. **Example: **`1636366897` **retryCount**int32 Number of retries left for the subscription. **Example: **`1` **retrySchedule** object\[] Defines a custom schedule for retrying failed subscription payments. Each entry in the array specifies how long to wait before attempting the next payment retry. If not specified, the system's default retry schedule will be used. * Array \[ **interval**stringrequired The unit of time to wait before the retry attempt. | Enum Value | Description | | ---------- | ----------- | | day | Daily | | week | Weekly | | month | Monthly | | year | Yearly | **Possible values:** \[`day`, `week`, `month`, `year`] **Example: **`day` **intervalCount**int32required The number of intervals to wait before the retry attempt. **Possible values:** `>= 1` and `<= 31` **Example: **`3` * ] **cancelAtPeriodEnd**Subscription-CancelAtPeriodEnd If true, the subscription will be canceled at the end of the current period. **Example: **`false` **pauseAtPeriodEnd**Subscription-PauseAtPeriodEnd If true, the subscription will be paused at the end of the current period. **Example: **`false` **traceDetails** Payment-TraceDetails Information related to the browsing session of the user who initiated the payment. **ip**IP The IP address where the operation originated. **Example: **`100.100.200.100` **countryCode**Country Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). **Example: **`ES` **lang**Lang Two-letter language code ([ISO 639-1](https://en.wikipedia.org/wiki/ISO_639-1)). **Example: **`es` **deviceType**DeviceType Device type, could be `desktop`, `mobile`, `smartTV`, `tablet`. **Example: **`desktop` **deviceModel**DeviceModel Information about the device used for the browser session (e.g., `iPhone`). **Example: **`null` **browser**Browser The browser used in this browser session (e.g., `Mobile Safari`). **Example: **`Chrome` **browserVersion**BrowserVersion The version for the browser session (e.g., `13.1.1`). **Example: **`83.0.4103.116` **os**Os Operation system (e.g., `iOS`). **Example: **`Mac OS` **osVersion**OsVersion Operation system version (e.g., `13.5.1`). **Example: **`10.15.4` **source**Source The source component from where the operation was generated (mostly for our SDK's). **Example: **`MONEI/PHP` **sourceVersion**SourceVersion The source component version from where the operation was generated (mostly for our SDK's). **Example: **`0.1.2` **userAgent**UserAgent Full user agent string of the browser session. **Example: **`Mozilla/5.0 (Windows NT 10.0; Win64; x64) ...` **browserAccept**BrowserAccept Browser accept header. **Example: **`text/html,application/xhtml+xml,application/json` **browserColorDepth**BrowserColorDepth The color depth of the browser session (e.g., `24`). **Example: **`24` **browserScreenHeight**BrowserScreenHeight The screen height of the browser session (e.g., `1152`). **Example: **`1152` **browserScreenWidth**BrowserScreenWidth The screen width of the browser session (e.g., `2048`). **Example: **`2048` **browserTimezoneOffset**BrowserTimezoneOffset The timezone offset of the browser session (e.g., `-120`). **Example: **`-120` **userId**string The ID of the user that started the operation. **Example: **`null` **userEmail**string The email of the user that started the operation. **Example: **`user@example.com` **sequenceId**Payment-SequenceId A permanent identifier that refers to the initial payment of a sequence of payments. This value needs to be sent in the path for `RECURRING` payments. **Example: **`62b23b9f3627cc38b08ff471ccd313ad` **callbackUrl**Subscription-CallbackUrl The URL will be called each time subscription status changes. You will receive a subscription object in the body of the request. **Example: **`https://example.com/subscriptions/callback` **paymentCallbackUrl**Subscription-PaymentCallbackUrl The URL will be called each time subscription creates a new payments. You will receive the payment object in the body of the request. **Example: **`https://example.com/payments/callback` **metadata**object A set of key-value pairs that you can attach to a resource. This can be useful for storing additional information about the resource in a structured format. **Example: **`{"systemId":"12345"}` **createdAt**int64 Time at which the resource was created. Measured in seconds since the Unix epoch. **Example: **`1636366897` **updatedAt**int64 Time at which the resource updated last time. Measured in seconds since the Unix epoch. **Example: **`1636366897` Subscription ``` { "id": "575bcd84-09fc-4a6e-8c4c-f88b8eb90bfa", "amount": 110, "currency": "EUR", "allowedPaymentMethods": [ "card", "bizum" ], "description": "MoonMail Monthly Lite", "accountId": "aa9333ba-82de-400c-9ae7-087b9f8d2242", "livemode": false, "status": "PENDING", "customer": { "email": "john.doe@example.com", "name": "John Doe", "phone": null }, "billingDetails": { "name": "John Doe", "email": "john.doe@example.com", "phone": null, "company": null, "taxId": null, "address": { "country": "ES", "city": "Málaga", "line1": "Fake Street 123", "line2": null, "zip": "1234", "state": "Málaga" } }, "shippingDetails": { "name": "John Doe", "email": "john.doe@example.com", "phone": null, "company": null, "taxId": null, "address": { "country": "ES", "city": "Málaga", "line1": "Fake Street 123", "line2": null, "zip": "1234", "state": "Málaga" } }, "interval": "month", "intervalCount": 1, "pauseIntervalCount": 1, "skipIntervalCount": 1, "lastOrderId": "14379133960355", "lastPayment": { "id": "af6029f80f5fc73a8ad2753eea0b1be0", "status": "PENDING", "statusCode": "E000", "statusMessage": "Transaction approved" }, "paymentMethod": { "method": "card", "card": { "country": "ES", "brand": "visa", "type": "credit", "threeDSecure": false, "threeDSecureVersion": "2.1.0", "threeDSecureFlow": "CHALLENGE", "expiration": 2048544000, "last4": "0004", "fingerprint": "7f2afde1566286c5fb126bb7e79bef549755cce6033dc429013c46d1365ff0e9", "tokenizationMethod": "applePay", "cardholderName": "John Doe", "cardholderEmail": "email@example.com" }, "bizum": { "phoneNumber": null } }, "currentPeriodStart": 1636366897, "currentPeriodEnd": 1636366897, "trialPeriodEnd": 1636366897, "nextPaymentAt": 1636366897, "retryCount": 1, "retrySchedule": [ { "interval": "day", "intervalCount": 1 }, { "interval": "day", "intervalCount": 3 }, { "interval": "week", "intervalCount": 1 } ], "cancelAtPeriodEnd": false, "pauseAtPeriodEnd": false, "traceDetails": { "ip": "100.100.200.100", "countryCode": "ES", "lang": "es", "deviceType": "desktop", "deviceModel": null, "browser": "Chrome", "browserVersion": "83.0.4103.116", "os": "Mac OS", "osVersion": "10.15.4", "source": "MONEI/PHP", "sourceVersion": "0.1.2", "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) ...", "browserAccept": "text/html,application/xhtml+xml,application/json", "browserColorDepth": "24", "browserScreenHeight": "1152", "browserScreenWidth": "2048", "browserTimezoneOffset": "-120", "userId": null, "userEmail": "user@example.com" }, "sequenceId": "62b23b9f3627cc38b08ff471ccd313ad", "callbackUrl": "https://example.com/subscriptions/callback", "paymentCallbackUrl": "https://example.com/payments/callback", "metadata": { "systemId": "12345" }, "createdAt": 1636366897, "updatedAt": 1636366897 } ``` --- # UnauthorizedError **status**stringrequired Error type identifier **Example: **`UnauthorizedError` **statusCode**int32required HTTP status code **Example: **`401` **message**stringrequired Human-readable error message **Example: **`Unauthorized access` **requestId**stringrequired Unique identifier for the request **Example: **`df011689-bd3e-4953-95ca-c7bbdacaf6f8` **requestTime**date-timerequired Timestamp when the request was processed **Example: **`2025-03-05T10:25:52Z` UnauthorizedError ``` { "status": "UnauthorizedError", "statusCode": 401, "message": "Unauthorized access", "requestId": "df011689-bd3e-4953-95ca-c7bbdacaf6f8", "requestTime": "2025-03-05T10:25:52Z" } ``` --- # UnprocessableEntityError **status**stringrequired Error type identifier **Example: **`UnprocessableEntityError` **statusCode**int32required HTTP status code **Example: **`422` **message**stringrequired Human-readable error message **Example: **`Unprocessable entity` **requestId**stringrequired Unique identifier for the request **Example: **`df011689-bd3e-4953-95ca-c7bbdacaf6f8` **requestTime**date-timerequired Timestamp when the request was processed **Example: **`2025-03-05T10:25:52Z` UnprocessableEntityError ``` { "status": "UnprocessableEntityError", "statusCode": 422, "message": "Unprocessable entity", "requestId": "df011689-bd3e-4953-95ca-c7bbdacaf6f8", "requestTime": "2025-03-05T10:25:52Z" } ``` --- # UpdateApplePayCertificateRequest **active**booleanrequired Set to true to enable or false to disable the certificate. **Example: **`true` UpdateApplePayCertificateRequest ``` { "active": true } ``` --- # UpdatedAt Time at which the resource updated last time. Measured in seconds since the Unix epoch. **integer**int64 Time at which the resource updated last time. Measured in seconds since the Unix epoch. **Example: **`1636366897` UpdatedAt ``` 1636366897 ``` --- # UpdateSubscriptionRequest **amount**int32 Amount intended to be collected by this payment. A positive integer representing how much to charge in the smallest currency unit (e.g., 100 cents to charge 1.00 USD). **Example: **`110` **interval**Subscription-Interval Subscription interval. The `minute` and `hour` intervals are only available in test mode. | Enum Value | Description | | ---------- | ------------------ | | minute | Minutely | | hour | Hourly | | day | Daily | | week | Weekly | | month | Monthly | | quarter | Every three months | | year | Yearly | **Possible values:** \[`minute`, `hour`, `day`, `week`, `month`, `quarter`, `year`] **Example: **`month` **intervalCount**int32 Number of intervals between subscription payments. **Example: **`1` **allowedPaymentMethods**string\[] List of payment methods allowed for subscriptions. | Enum Value | Description | | ---------- | ----------- | | card | Card | | bizum | Bizum | **Example: **`["card","bizum"]` **description**Subscription-Description An arbitrary string attached to the subscription. Often useful for displaying to users. **Example: **`MoonMail Monthly Lite` **customer** object **email**string The customer's email address. **Example: **`john.doe@example.com` **name**string The customer's full name or business name. **Example: **`John Doe` **phone**string The customer's phone number in E.164 format. **Example: **`null` **billingDetails** object Billing information associated with the payment method at the time of the transaction. **name**string The customer's billing full name. **Example: **`John Doe` **email**string The customer's billing email address. **Example: **`john.doe@example.com` **phone**string The customer's billing phone number in E.164 format. **Example: **`null` **company**string Billing company name. **Example: **`null` **taxId**string Company tax ID. **Example: **`null` **address** object **country**Country Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). **Example: **`ES` **city**string City, district, suburb, town, or village. **Example: **`Málaga` **line1**string Address line 1 (e.g., street, PO Box, or company name). **Example: **`Fake Street 123` **line2**string Address line 2 (e.g., apartment, suite, unit, or building). **Example: **`null` **zip**string ZIP or postal code. **Example: **`1234` **state**string State, county, province, or region. **Example: **`Málaga` **shippingDetails** object Shipping information associated with the payment. **name**string The shipping customer's full name. **Example: **`John Doe` **email**string The shipping customer's email address. **Example: **`john.doe@example.com` **phone**string The shipping customer's phone number in E.164 format. **Example: **`null` **company**string Name of the company where the shipment is going. **Example: **`null` **taxId**string Company tax ID. **Example: **`null` **address** object **country**Country Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). **Example: **`ES` **city**string City, district, suburb, town, or village. **Example: **`Málaga` **line1**string Address line 1 (e.g., street, PO Box, or company name). **Example: **`Fake Street 123` **line2**string Address line 2 (e.g., apartment, suite, unit, or building). **Example: **`null` **zip**string ZIP or postal code. **Example: **`1234` **state**string State, county, province, or region. **Example: **`Málaga` **trialPeriodEnd**int64 The end date of the trial period. Measured in seconds since the Unix epoch. **Example: **`1636366897` **callbackUrl**Subscription-CallbackUrl The URL will be called each time subscription status changes. You will receive a subscription object in the body of the request. **Example: **`https://example.com/subscriptions/callback` **paymentCallbackUrl**Subscription-PaymentCallbackUrl The URL will be called each time subscription creates a new payments. You will receive the payment object in the body of the request. **Example: **`https://example.com/payments/callback` **pauseAtPeriodEnd**Subscription-PauseAtPeriodEnd If true, the subscription will be paused at the end of the current period. **Example: **`false` **cancelAtPeriodEnd**Subscription-CancelAtPeriodEnd If true, the subscription will be canceled at the end of the current period. **Example: **`false` **pauseIntervalCount**int32 Number of intervals when subscription will be paused before it activates again. **Example: **`1` **skipIntervalCount**int32 The number of intervals during which the subscription billing cycle will be skipped without altering the subscription status. This is useful when payment for a specific period is received through different methods. **Example: **`1` **retrySchedule** object\[] Defines a custom schedule for retrying failed subscription payments. Each entry in the array specifies how long to wait before attempting the next payment retry. If not specified, the system's default retry schedule will be used. * Array \[ **interval**stringrequired The unit of time to wait before the retry attempt. | Enum Value | Description | | ---------- | ----------- | | day | Daily | | week | Weekly | | month | Monthly | | year | Yearly | **Possible values:** \[`day`, `week`, `month`, `year`] **Example: **`day` **intervalCount**int32required The number of intervals to wait before the retry attempt. **Possible values:** `>= 1` and `<= 31` **Example: **`3` * ] **metadata**object A set of key-value pairs that you can attach to a resource. This can be useful for storing additional information about the resource in a structured format. **Example: **`{"systemId":"12345"}` UpdateSubscriptionRequest ``` { "amount": 110, "interval": "month", "intervalCount": 1, "allowedPaymentMethods": [ "card", "bizum" ], "description": "MoonMail Monthly Lite", "customer": { "email": "john.doe@example.com", "name": "John Doe", "phone": null }, "billingDetails": { "name": "John Doe", "email": "john.doe@example.com", "phone": null, "company": null, "taxId": null, "address": { "country": "ES", "city": "Málaga", "line1": "Fake Street 123", "line2": null, "zip": "1234", "state": "Málaga" } }, "shippingDetails": { "name": "John Doe", "email": "john.doe@example.com", "phone": null, "company": null, "taxId": null, "address": { "country": "ES", "city": "Málaga", "line1": "Fake Street 123", "line2": null, "zip": "1234", "state": "Málaga" } }, "trialPeriodEnd": 1636366897, "callbackUrl": "https://example.com/subscriptions/callback", "paymentCallbackUrl": "https://example.com/payments/callback", "pauseAtPeriodEnd": false, "cancelAtPeriodEnd": false, "pauseIntervalCount": 1, "skipIntervalCount": 1, "retrySchedule": [ { "interval": "day", "intervalCount": 1 }, { "interval": "day", "intervalCount": 3 }, { "interval": "week", "intervalCount": 1 } ], "metadata": { "systemId": "12345" } } ``` --- # UserAgent Full user agent string of the browser session. **string**UserAgent Full user agent string of the browser session. **Example: **`Mozilla/5.0 (Windows NT 10.0; Win64; x64) ...` UserAgent ``` "Mozilla/5.0 (Windows NT 10.0; Win64; x64) ..." ``` --- # ValidateBizumPhoneRequest **accountId**AccountIdrequired MONEI Account identifier. **Example: **`aa9333ba-82de-400c-9ae7-087b9f8d2242` **paymentId**Payment-Id Unique identifier for the payment. **Example: **`af6029f80f5fc73a8ad2753eea0b1be0` **phoneNumber**stringrequired Phone number in E.164 format. **Example: **`+34500000000` ValidateBizumPhoneRequest ``` { "accountId": "aa9333ba-82de-400c-9ae7-087b9f8d2242", "paymentId": "af6029f80f5fc73a8ad2753eea0b1be0", "phoneNumber": "+34500000000" } ``` --- # Activate Subscription ``` POST /subscriptions/:id/activate ``` Activates a subscription by attaching a payment method and initiating the billing cycle. **Activation Process**: 1. This endpoint transitions a `PENDING` subscription to `ACTIVE` status 2. An initial payment is created to validate the payment method: * For regular subscriptions: First billing cycle payment is processed immediately * For trial subscriptions: A zero-amount payment is created to verify the payment method **Payment Method Updates**: If the subscription is already active, this endpoint can be used to update the payment method. The update process creates a zero-amount payment to verify the new payment method works correctly. **Important Notes**: * Subscription billing begins immediately upon successful activation (unless in trial period) * The payment method provided will be used for all future recurring charges * Activation failures (due to invalid payment method) will keep the subscription in `PENDING` status * You can specify `allowedPaymentMethods` to restrict which payment methods (e.g., `card`, `bizum`) are accepted for the subscription ## Request[​](#request "Direct link to request") ## Responses[​](#responses "Direct link to Responses") * 200 * 400 * 401 * 404 * 422 * 500 * 503 A payment object The request is incorrect or could not be processed Unauthorized error. Please check your auth credentials The specified resource was not found The request was well-formed but could not be processed due to semantic errors Unexpected server error The service is temporarily unavailable --- # Cancel Subscription ``` POST /subscriptions/:id/cancel ``` Cancels an active subscription, permanently stopping the billing cycle. **Cancellation Effects**: * The subscription status changes to `CANCELED` * No further charges will be processed * Access to subscription services typically ends immediately or at period end (depending on your business rules) **Important Notes**: * Cancellation is permanent and cannot be undone * To restart service, a new subscription must be created * Consider using `pauseAtPeriodEnd` or `cancelAtPeriodEnd` for softer transitions Use this endpoint when a customer wishes to completely terminate their subscription. ## Request[​](#request "Direct link to request") ## Responses[​](#responses "Direct link to Responses") * 200 * 400 * 401 * 404 * 422 * 500 * 503 A subscription object The request is incorrect or could not be processed Unauthorized error. Please check your auth credentials The specified resource was not found The request was well-formed but could not be processed due to semantic errors Unexpected server error The service is temporarily unavailable --- # Create Subscription ``` POST /subscriptions ``` Creates a new subscription with the specified parameters. **Subscription Lifecycle**: 1. When first created, the subscription has a `PENDING` status 2. To initiate billing, you must call the [activate endpoint](https://docs.monei.com/apis/rest/subscriptions-activate/) with payment details 3. Once activated, the subscription will automatically bill according to the configured interval **Key Configuration Parameters**: * **Billing settings**: Amount, currency, interval (daily, weekly, monthly, yearly) * **Schedule customization**: Interval count, trial period duration * **Allowed payment methods**: An array of strings specifying which payment methods are allowed for this subscription (e.g., `card`, `bizum`) * **Customer information**: Contact details, billing and shipping addresses * **Communication**: Callback URLs for webhook notifications about subscription events **Best Practices**: * Set clear, descriptive names for subscriptions to help with identification * Configure appropriate webhook notifications to monitor subscription status changes * Consider offering trial periods to increase customer conversion rates * Use metadata to store additional information relevant to your business logic ## Request[​](#request "Direct link to request") ## Responses[​](#responses "Direct link to Responses") * 200 * 400 * 401 * 404 * 422 * 500 * 503 A subscription object The request is incorrect or could not be processed Unauthorized error. Please check your auth credentials The specified resource was not found The request was well-formed but could not be processed due to semantic errors Unexpected server error The service is temporarily unavailable --- # Get Subscription ``` GET /subscriptions/:id ``` Retrieves the complete details of an existing subscription by its unique ID. This endpoint returns comprehensive information about the subscription, including: * Current status and lifecycle details (active, paused, canceled) * Billing configuration (amount, currency, interval) * Schedule information (current period, next payment date) * Customer and payment method details * Payment history (including last payment status) * Trial period information (if applicable) Use this endpoint to check subscription status, verify billing details, or retrieve information needed for customer support inquiries. ## Request[​](#request "Direct link to request") ## Responses[​](#responses "Direct link to Responses") * 200 * 400 * 401 * 404 * 422 * 500 * 503 A subscription object The request is incorrect or could not be processed Unauthorized error. Please check your auth credentials The specified resource was not found The request was well-formed but could not be processed due to semantic errors Unexpected server error The service is temporarily unavailable --- # Pause Subscription ``` POST /subscriptions/:id/pause ``` Pauses an active subscription, temporarily halting the billing cycle. **Pause Effects**: * Billing is immediately suspended * The subscription status changes to `PAUSED` * No charges will be processed while the subscription remains paused * The current billing period end date remains unchanged **Use Cases**: * Temporary service interruptions * Customer vacation or absence periods * Account maintenance or dispute resolution To resume billing, use the [resume endpoint](https://docs.monei.com/apis/rest/subscriptions-resume/). ## Request[​](#request "Direct link to request") ## Responses[​](#responses "Direct link to Responses") * 200 * 400 * 401 * 404 * 422 * 500 * 503 A subscription object The request is incorrect or could not be processed Unauthorized error. Please check your auth credentials The specified resource was not found The request was well-formed but could not be processed due to semantic errors Unexpected server error The service is temporarily unavailable --- # Resume Subscription ``` POST /subscriptions/:id/resume ``` Resumes a previously paused subscription, reactivating the billing cycle. **Resume Effects**: * Billing is immediately reactivated * The subscription status changes from `PAUSED` to `ACTIVE` * The next billing date is recalculated based on the current date * Regular charging schedule resumes according to the subscription interval **Important Notes**: * No immediate charge is created when resuming (billing continues on next scheduled date) * Any pause duration is added to the current billing period, maintaining the expected number of billing cycles * If a significant time has passed, verify that the payment method is still valid ## Request[​](#request "Direct link to request") ## Responses[​](#responses "Direct link to Responses") * 200 * 400 * 401 * 404 * 422 * 500 * 503 A subscription object The request is incorrect or could not be processed Unauthorized error. Please check your auth credentials The specified resource was not found The request was well-formed but could not be processed due to semantic errors Unexpected server error The service is temporarily unavailable --- # Send Subscription Link ``` POST /subscriptions/:id/link ``` Sends a subscription activation link to the customer through their preferred communication channel. **This API can only be used for subscriptions with the following status:** * Pending **Delivery channels are automatically selected based on available customer information:** * If customer email is available: Link is sent via email * If customer phone is available: Link is sent via WhatsApp * If WhatsApp delivery fails: Link is sent via SMS as a fallback The subscription activation link allows customers to complete their subscription setup by providing payment details on the secure MONEI payment page. If no customer contact information is provided, the system will use the details stored in the subscription record. ## Request[​](#request "Direct link to request") ## Responses[​](#responses "Direct link to Responses") * 200 * 400 * 401 * 404 * 422 * 500 * 503 A subscription object The request is incorrect or could not be processed Unauthorized error. Please check your auth credentials The specified resource was not found The request was well-formed but could not be processed due to semantic errors Unexpected server error The service is temporarily unavailable --- # Send Subscription Status ``` POST /subscriptions/:id/status ``` Sends subscription status information to the customer through their preferred communication channel. **This API can only be used for subscriptions with the following statuses:** * Active * Trialing * Past due **Delivery channels are automatically selected based on available customer information:** * If customer email is available: Status is sent via email * If customer phone is available: Status is sent via WhatsApp * If WhatsApp delivery fails: Status is sent via SMS as a fallback The status notification includes subscription details such as current status, upcoming payments, and recent changes. If no customer contact information is provided, the system will use the details stored in the subscription record. **Email notifications include contextual action links based on subscription status:** * For past due subscriptions: A link to reactivate the subscription * For active and trialing subscriptions: A link to update the payment method You can specify the customer's email or phone number, the preferred communication channel (email or SMS), and the language for the message. ## Request[​](#request "Direct link to request") ## Responses[​](#responses "Direct link to Responses") * 200 * 400 * 401 * 404 * 422 * 500 * 503 A subscription object The request is incorrect or could not be processed Unauthorized error. Please check your auth credentials The specified resource was not found The request was well-formed but could not be processed due to semantic errors Unexpected server error The service is temporarily unavailable --- # Update Subscription ``` PUT /subscriptions/:id ``` Updates the configuration of an existing subscription. **Modifiable Parameters**: * Billing information (amount, description, allowedPaymentMethods) * Customer details (contact information, billing/shipping addresses) * Subscription settings (cancelAtPeriodEnd, pauseAtPeriodEnd, skipIntervalCount) * Metadata (for your internal tracking) **Update Effects**: * Amount changes apply to the next billing cycle * Customer information updates take effect immediately * Setting `cancelAtPeriodEnd` to true will end the subscription after the current period * Setting `pauseAtPeriodEnd` to true will pause billing after the current period * Setting `skipIntervalCount` skips billing for the specified number of intervals without changing subscription status **Note**: Some fundamental properties cannot be changed once a subscription is created, including currency and billing interval. To modify these, you would need to cancel the existing subscription and create a new one. ## Request[​](#request "Direct link to request") ## Responses[​](#responses "Direct link to Responses") * 200 * 400 * 401 * 404 * 422 * 500 * 503 A subscription object The request is incorrect or could not be processed Unauthorized error. Please check your auth credentials The specified resource was not found The request was well-formed but could not be processed due to semantic errors Unexpected server error The service is temporarily unavailable --- # Subscriptions The Subscriptions API provides a powerful solution for managing recurring billing and subscription-based business models. ## Key Features[​](#key-features "Direct link to Key Features") ### Flexible Billing Options[​](#flexible-billing-options "Direct link to Flexible Billing Options") * **Multiple billing intervals**: Daily, weekly, monthly, or yearly billing cycles * **Custom intervals**: Configure non-standard periods using intervalCount (e.g., every 3 months) * **Trial periods**: Offer free trials before the first billing cycle begins * **Variable amounts**: Update subscription amounts for pricing changes or upgrades ### Complete Lifecycle Management[​](#complete-lifecycle-management "Direct link to Complete Lifecycle Management") * **Create subscriptions**: Set up recurring billing plans with customizable parameters * **Activate subscriptions**: Begin billing cycles with customer payment information * **Pause/Resume**: Temporarily halt billing without cancellation * **Update subscriptions**: Modify pricing, billing details, or subscription parameters * **Cancel subscriptions**: End recurring billing permanently or at period end ### Customer-Friendly Features[​](#customer-friendly-features "Direct link to Customer-Friendly Features") * **Automated recurring payments**: No manual action required for subsequent billing * **Consistent billing dates**: Predictable billing on the same day of each period * **Payment retry mechanism**: Automatic retries for failed payments * **Customer control**: Enable customers to manage their own subscriptions ### Integration Benefits[​](#integration-benefits "Direct link to Integration Benefits") * **Webhook notifications**: Get real-time updates on subscription status changes * **Detailed reporting**: Track subscription metrics and performance * **Simplified compliance**: Handle recurring billing requirements automatically * **Reduced churn**: Automatic billing helps prevent missed payments ## Testing[​](#testing "Direct link to Testing") ### Test Mode Limitations[​](#test-mode-limitations "Direct link to Test Mode Limitations") * **Active subscription limit**: In test mode, you can have only three active subscriptions at any time * **Automatic cancellation**: All subscriptions are automatically canceled after twelve payments (except when using the 5565 test card) ### Test Mode Intervals[​](#test-mode-intervals "Direct link to Test Mode Intervals") * **Minute and hour intervals**: Only available in test mode for rapid testing of subscription cycles ### Testing Failed Payments[​](#testing-failed-payments "Direct link to Testing Failed Payments") For testing subscription payment failures, use a test card with the following characteristics: * **Test card ending in 5565**: Use test card that ending in 5565 (see [Test card numbers](https://docs.monei.com/testing/#test-card-numbers)) * **Payment behavior**: * The first payment for the subscription will be successful * All subsequent payments will fail * After the first failed payment, the subscription status changes to `Past due` * After three consecutive failed payments, the subscription will be automatically cancelled ## [📄️Create Subscription](https://docs.monei.com/apis/rest/subscriptions-create/.md) [Creates a new subscription with the specified parameters.](https://docs.monei.com/apis/rest/subscriptions-create/.md) ## [📄️Get Subscription](https://docs.monei.com/apis/rest/subscriptions-get/.md) [Retrieves the complete details of an existing subscription by its unique ID.](https://docs.monei.com/apis/rest/subscriptions-get/.md) ## [📄️Update Subscription](https://docs.monei.com/apis/rest/subscriptions-update/.md) [Updates the configuration of an existing subscription.](https://docs.monei.com/apis/rest/subscriptions-update/.md) ## [📄️Activate Subscription](https://docs.monei.com/apis/rest/subscriptions-activate/.md) [Activates a subscription by attaching a payment method and initiating the billing cycle.](https://docs.monei.com/apis/rest/subscriptions-activate/.md) ## [📄️Cancel Subscription](https://docs.monei.com/apis/rest/subscriptions-cancel/.md) [Cancels an active subscription, permanently stopping the billing cycle.](https://docs.monei.com/apis/rest/subscriptions-cancel/.md) ## [📄️Pause Subscription](https://docs.monei.com/apis/rest/subscriptions-pause/.md) [Pauses an active subscription, temporarily halting the billing cycle.](https://docs.monei.com/apis/rest/subscriptions-pause/.md) ## [📄️Resume Subscription](https://docs.monei.com/apis/rest/subscriptions-resume/.md) [Resumes a previously paused subscription, reactivating the billing cycle.](https://docs.monei.com/apis/rest/subscriptions-resume/.md) ## [📄️Send Subscription Link](https://docs.monei.com/apis/rest/subscriptions-send-link/.md) [Sends a subscription activation link to the customer through their preferred communication channel.](https://docs.monei.com/apis/rest/subscriptions-send-link/.md) ## [📄️Send Subscription Status](https://docs.monei.com/apis/rest/subscriptions-send-status/.md) [Sends subscription status information to the customer through their preferred communication channel.](https://docs.monei.com/apis/rest/subscriptions-send-status/.md) --- # Hotels Channel Managers ## Before you begin[​](#before-you-begin "Direct link to Before you begin") This document outlines the process of payment card tokenization, where card information is received, tokenized, and the tokens are returned for secure payment processing. The integration involves making a request to MONEI's endpoint, specifying the channel manager for retrieving this information. Payment card tokenization is a secure process where card information is replaced with tokens for enhanced security during payment transactions. This document details the tokenization process, supported channel managers, and provides integration guidelines. ## Tokenization Process Overview[​](#tokenization-process-overview "Direct link to Tokenization Process Overview") The payment card tokenization for our side involves the following key steps: 1. **Request Channel Manager Information:** Make a request to our endpoint, specifying the desired channel manager to retrieve the cards information. 2. **Receive Card Information:** As a PCI-compliant company, the system receives card information securely. 3. **Tokenization:** The received card information is tokenized, and a response containing the tokens is generated. 4. **Return Tokens:** The generated tokens are returned to the requesting entity for secure payment processing. ## Integration[​](#integration "Direct link to Integration") important You will have to add your [MONEI API Key](http://localhost:3000/api/#section/Authentication) on your request header in order to authenticate the request. You can enable **test mode and we will use Siteminder and Channex preprod URLs**, you can enable it on your dashboard. ### [Siteminder](https://www.siteminder.com/)[​](#siteminder "Direct link to siteminder") Siteminder is a widely used channel management system. We support payment card tokenization through the following API endpoint: **Endpoint:** `https://api.monei.com/v1/partner/tokens` **Method:** `POST` #### Request:[​](#request "Direct link to Request:") ``` { "accountId": "", "hotelCode": "", "sessionId": "", "channelManagerType": "SITEMINDER", "siteminderName": "", "username": "", "password": "", "echoToken": "" } ``` * **accountId** `string` - Unique identifier representing the **account ID from MONEI which the payment will be transfered**. It is a UUID (Universal Unique Identifier). * **hotelCode** `string` - Code that uniquely identifies the hotel. **This is provided from Siteminder** * **sessionId** `string` - A universally unique identifier (UUID) representing the session. * **channelManagerType** `string` - Indicates the **name of channel manager**. It is a String with two possible values: `SITEMINDER` or `CHANNEX`. In this case we're going to use `SITEMINDER`. * **siteminderName** `string` - The name of your account with Siteminder. * **username** `string` - The username used for authentication. **This is provided from Siteminder**. * **password** `string` - The password associated with the provided username, for authentication purposes. **This is provided from Siteminder**. * **echoToken** `string` - Globally unique identifier for the request, **value will be returned as an EchoToken in the response**. note When acting as a [**proxy for Siteminder**](https://siteminder.atlassian.net/wiki/spaces/PMSXCHANGEV2/pages/1875838050/PMS+Tokenization+in+SiteMinder), the same response is returned as if directly interacting with them, with the addition of the `` field containing the **payment token information**. #### Response:[​](#response "Direct link to Response:") ``` 298b7c3bc2951ca0513e0e07d495b33ddf29d7ae 1843430400 credit 4414 MC Joan Sanfeliu ``` * ``: This is a container element that **encapsulates the Monei response** information. * ``: **MONEI's created token of booking card information**. This token is typically used in [subsequent transactions](https://docs.monei.com/apis/rest/payments-create/.md) instead of the actual card details for security reasons. * ``: Indicates the **expiration date** of the payment token. * ``: Specifies the type of the payment method, in this case, "credit." It indicates that the tokenized information is related to a credit card. * ``: Represents the **last four digits** of the card number. * ``: Denotes the **brand or card network** associated with the card. In this example, "MC" likely stands for MasterCard. * ``: Provides the name of the cardholder associated with the card, this field contains the\*\* name of the person to whom the card belongs\*\*. These elements collectively provide details about a tokenized payment method, allowing for secure and privacy-enhanced transactions without exposing sensitive card information. ### [Channex](https://channex.io/)[​](#channex "Direct link to channex") Channex is another channel management system that seamlessly integrates with the tokenization process. **We expose the same endpoint, but changing the channelManagerType parameter to `CHANNEX`**: **Endpoint:** `https://api.monei.com/v1/partner/tokens` **Method:** `POST` #### Request:[​](#request-1 "Direct link to Request:") ``` { "accountId": "", "sessionId": "", "channelManagerType": "CHANNEX", "channexId": "", "propertyId": "" } ``` * **accountId** `string` - Unique identifier representing the **account ID from MONEI which the payment will be transfered**. It is a UUID (Universal Unique Identifier). * **sessionId** `string` - A universally unique identifier (UUID) representing the session. * **channelManagerType** `string` - Indicates the **name of channel manager**. It is a String with two possible values: `SITEMINDER` or `CHANNEX`. In this case we're going to use `CHANNEX`. * **channexId** `string` - [Channex API key](https://docs.channex.io/application-documentation/api-key-access). * **propertyId** `string` - **Optional**. The ID of the property you want to filter by, if not provided will return all the [Booking Revision Feed](https://docs.channex.io/api-v.1-documentation/bookings-collection#booking-revisions-feed). #### Response:[​](#response-1 "Direct link to Response:") ``` [ { "paymentToken": "b27b97a729ab9cefa8765eccf25d636b13f887cc", "expireAt": 2678401, "paymentMethod": { "method": "card", "card": { "country": "US", "last4": "8164", "bank": "Wex Bank", "bin": "53463306", "cardholderName": "Joan Sanfeliu", "expiration": 1767225600, "type": "credit", "brand": "mastercard" } }, "attributes": { "id": "cbc57822-912c-4663-a9e5-3930b7539958", "meta": { "ruid": "Ykc2RlIyh9YUA66gHNu0pFCmOkmrTcr9qWngFe1gY4xjUlSmD+RVGXDjWrLMNL75u7DwI7i7eM9Vu047Nzj/TuNw+WkXmHOFc=" }, "status": "new", "currency": "GBP", "amount": "615.00", All the rest of the channex response without card number exposed ... } } ] ``` * `payment_token`: **MONEI's created token of booking card information**. This token is typically used in [subsequent transactions](https://docs.monei.com/apis/rest/payments-create/.md) instead of the actual card details for security reasons. * `expireAt`: Indicates the **expiration date** of the payment token. * `paymentMethod`: Indicates **more information** about the payment method that the user used on his booking. --- # Adobe Commerce (Magento 2) MONEI Payments for Adobe Commerce (Magento 2) allows you to seamlessly integrate MONEI's payment processing capabilities into your Magento store. This official module provides a secure, reliable, and user-friendly payment experience for your customers. [Live demo](https://magento2-demo.monei.com/) ## Before you begin[​](#before-you-begin "Direct link to Before you begin") To test your integration: * Use your [test mode](https://docs.monei.com/testing/.md) API Key. You can find them in [MONEI Dashboard → Settings → API Access](https://dashboard.monei.com/settings/api) * You can check the status of a test payment in your [MONEI Dashboard → Payments](https://dashboard.monei.com/payments) (in test mode). ## Install[​](#install "Direct link to Install") * Using composer (recommended) * From the raw package You can install MONEI Adobe Commerce Extension using composer by adding it to your composer file using following command: Go to your Adobe Commerce (Magento 2) root directory and run the following commands: 1. Add the package to your Magento installation: ``` composer require monei/module-monei-payment ``` 2. Enable the module: ``` bin/magento module:enable Monei_MoneiPayment ``` 3. Run the following commands to upgrade and compile the module: ``` bin/magento setup:upgrade bin/magento setup:di:compile bin/magento setup:static-content:deploy bin/magento cache:clean ``` Go to your Adobe Commerce (Magento 2) root directory. 1. Download the latest release from the [GitHub repository](https://github.com/MONEI/MONEI-AdobeCommerce-Magento2/releases) 2. Extract the contents to your `app/code/Monei/MoneiPayment` directory 3. Install the MONEI PHP SDK: ``` composer require monei/monei-php-sdk:^2.6 ``` 4. Go to your Adobe Commerce (Magento 2) root directory and run: ``` bin/magento module:enable Monei_MoneiPayment bin/magento setup:upgrade bin/magento setup:di:compile bin/magento setup:static-content:deploy bin/magento cache:clean ``` Alternatively, you can use this one-line command to download and extract the latest release: ``` curl -L https://github.com/MONEI/MONEI-AdobeCommerce-Magento2/releases/latest/download/monei-module-monei-payment.zip -o monei.zip && \ mkdir -p app/code/Monei/MoneiPayment && \ unzip monei.zip -d app/code/Monei/MoneiPayment && \ rm monei.zip ``` ## Configure[​](#configure "Direct link to Configure") To configure the extension you have to go to **Stores → Configuration→ Payment Methods (under Sales section) → MONEI** ![Configure MONEI Adobe Commerce](/assets/images/configure-magento-0-b412ddb6188c101361e865f26d8e0a75.png) Enter your API Key. You can find your API Key in [MONEI Dashboard → Settings → API Access](https://dashboard.monei.com/settings/api). For more information on how to configure the extension, please refer to the [MONEI Adobe Commerce Extension documentation](https://github.com/MONEI/MONEI-AdobeCommerce-Magento2/blob/main/README.md). ## Before you go live[​](#before-you-go-live "Direct link to Before you go live") * Make sure that you are using [live (production) mode](https://docs.monei.com/testing/.md) API Key. * Make sure that you have at least one active [payment method](https://dashboard.monei.com/settings/payment-methods) --- # commercetools To accept payments through MONEI in your commercetools Composable Commerce project, install the MONEI payment connector from the [Connect marketplace](https://docs.commercetools.com/connect/connectors). The connector supports Bizum, card payments, Apple Pay, Google Pay, and SEPA Direct Debit. ## Before you begin[​](#before-you-begin "Direct link to Before you begin") To test your integration: * Use your [test mode](https://docs.monei.com/testing/.md) API Key. You can find it in [MONEI Dashboard → Settings → API Access](https://dashboard.monei.com/settings/api). * You can check the status of a test payment in your [MONEI Dashboard → Payments](https://dashboard.monei.com/payments) (in test mode). You will also need: * A [commercetools Composable Commerce](https://commercetools.com) project * An [API Client](https://docs.commercetools.com/merchant-center/developer-settings#api-clients) with the following scopes: `manage_payments`, `manage_orders`, `view_sessions`, `view_api_clients`, `manage_checkout_payment_intents`, `introspect_oauth_tokens`, `manage_types`, `view_types` ## Install[​](#install "Direct link to Install") 1. In the [commercetools Merchant Center](https://mc.commercetools.com), go to **Connect → Marketplace** 2. Search for **MONEI** 3. Click **Install** on the MONEI Payment Connector 4. Select the **Region** where your commercetools project is hosted (e.g., `europe-west1.gcp`) Alternatively, you can deploy the connector directly from the [GitHub repository](https://github.com/MONEI/connect-payment-integration-monei) using the commercetools [Connect CLI](https://docs.commercetools.com/connect/cli). ## Configure[​](#configure "Direct link to Configure") After installing the connector, configure it with your MONEI credentials: | Variable | Description | Required | | ------------------------------------ | -------------------------------------------------------------------------------------------------------- | -------- | | **MONEI\_API\_KEY** | Your MONEI API Key from [Dashboard → Settings → API Access](https://dashboard.monei.com/settings/api) | Yes | | **MONEI\_ACCOUNT\_ID** | Your MONEI Account ID from [Dashboard → Settings → API Access](https://dashboard.monei.com/settings/api) | Yes | | **MONEI\_WEBHOOK\_SECRET** | Webhook signing secret for verifying notifications | Yes | | **MONEI\_ENVIRONMENT** | `test` or `live` | Yes | | **MONEI\_PAYMENT\_METHODS\_ENABLED** | Comma-separated list of payment methods to enable (e.g., `bizum,card,applePay,googlePay`) | No | tip Start with `MONEI_ENVIRONMENT=test` and switch to `live` only after you have verified your integration. ### Configure webhooks[​](#configure-webhooks "Direct link to Configure webhooks") The connector automatically handles webhook notifications from MONEI. To set up webhooks: 1. Go to [MONEI Dashboard → Settings → Webhooks](https://dashboard.monei.com/settings/webhooks) 2. Add a new webhook endpoint with the URL provided after deploying the connector 3. Copy the generated HMAC signing key and set it as `MONEI_WEBHOOK_SECRET` in your connector configuration ## Supported payment methods[​](#supported-payment-methods "Direct link to Supported payment methods") | Method | Description | | --------------------- | -------------------------------------------------------------------- | | **Card** | Visa, Mastercard, and other card networks via multi-acquirer routing | | **Bizum** | Spain's mobile payment method with 28M+ users | | **Apple Pay** | Digital wallet payments on Safari and iOS devices | | **Google Pay** | Digital wallet payments on supported browsers | | **SEPA Direct Debit** | Bank direct debit payments across the SEPA zone | To enable payment methods, configure them in your [MONEI Dashboard → Settings → Payment Methods](https://dashboard.monei.com/settings/payment-methods) and include them in the `MONEI_PAYMENT_METHODS_ENABLED` connector variable. ## Using with commercetools Checkout[​](#using-with-commercetools-checkout "Direct link to Using with commercetools Checkout") The MONEI connector is fully compatible with [commercetools Checkout](https://docs.commercetools.com/checkout). Once installed: 1. Go to **Merchant Center → Checkout → Applications** 2. Add a new application or edit an existing one 3. Select the **MONEI** connector for your payment integrations 4. Choose which payment methods to display and configure their order The connector supports both **web components** (individual payment method UI) and **drop-in** (all methods in one component) integration types. ## Before you go live[​](#before-you-go-live "Direct link to Before you go live") * Make sure that you are using [live (production) mode](https://docs.monei.com/testing/.md) API Key * Make sure that you have at least one active [payment method](https://dashboard.monei.com/settings/payment-methods) * Update the `MONEI_ENVIRONMENT` connector variable to `live` * Verify that webhooks are correctly configured and receiving notifications * Test the full payment flow including capture, refund, and cancellation --- # PrestaShop To accept payments through MONEI in your PrestaShop store you simply need to install and configure MONEI PrestaShop Module. [Live demo](https://prestashop-demo.monei.com/) ## Before you begin[​](#before-you-begin "Direct link to Before you begin") To test your integration: * Use your [test mode](https://docs.monei.com/testing/.md) API Key. You can find them in [MONEI Dashboard → Settings → API Access](https://dashboard.monei.com/settings/api) * You can check the status of a test payment in your [MONEI Dashboard → Payments](https://dashboard.monei.com/payments) (in test mode). ## Install[​](#install "Direct link to Install") * Download the latest version of the [MONEI PrestaShop module](https://github.com/MONEI/MONEI-PrestaShop/releases/latest/download/monei.zip) * Go to your PrestaShop admin panel * Navigate to **Modules → Module Manager** * Click on **Upload a module** * Select the downloaded `monei.zip` file ![Configure MONEI PrestaShop](/assets/images/configure-prestashop-0-3a4c2ea73553c2db32389837f73c7849.png) ## Configure[​](#configure "Direct link to Configure") Go to **PrestaShop → Payment → Payment Methods → MONEI → Configure** ![Configure Card Payments](/assets/images/configure-prestashop-1-839c442b2e12c43d01cc736a1629dded.png) Enter your API Key. You can find your API Key in [MONEI Dashboard → Settings → API Access](https://dashboard.monei.com/settings/api). ## Before you go live[​](#before-you-go-live "Direct link to Before you go live") * Make sure that you are using [live (production) mode](https://docs.monei.com/testing/.md) API Key. * Make sure that you have at least one active [payment method](https://dashboard.monei.com/settings/payment-methods) --- # Salesforce Commerce Cloud To accept payments through MONEI in your SalesForce Commerce Cloud store you simply need to install and configure the MONEI SalesForce Plugin. ## Before you begin[​](#before-you-begin "Direct link to Before you begin") To test your integration: * Use your [test mode](https://docs.monei.com/testing/.md) Account ID and Password. You can find them in [MONEI Dashboard → Settings](https://dashboard.monei.com/settings) * You can check the status of a test payment in your [MONEI Dashboard → Payments](https://dashboard.monei.com/payments) (in test mode). ## Install[​](#install "Direct link to Install") Search for **MONEI SalesForce** Plugin in your SalesForce Commerce Cloud site. Alternatively you can [download the GitHub repo of the same.](https://github.com/MONEI/MONEI-Salesforce-Commerce-Cloud) ## Configure[​](#configure "Direct link to Configure") Enter your Account ID and Password. You can find your Account ID and Password in [MONEI Dashboard → Settings](https://dashboard.monei.com/settings) and click "Activate". ## Before you go live[​](#before-you-go-live "Direct link to Before you go live") * Make sure that you are using [live (production) mode](https://docs.monei.com/testing/.md) Account ID and Password. * Make sure that you have at least one active [payment method](https://dashboard.monei.com/settings/payment-methods) --- # Hide Payment Methods by Country You can hide specific payment methods on your Shopify checkout page based on the customer's country location. This is useful when you have region-specific payment methods like MONEI Bizum (Spain) or MONEI Multibanco (Portugal) that should only be shown to customers in those countries. ## Overview[​](#overview "Direct link to Overview") When you have multiple MONEI payment methods installed, you can use conditional logic to show only the relevant payment methods to customers based on their country. The approach depends on your Shopify plan: * **Shopify Plus**: Use Checkout Blocks (official Shopify app) * **Other Plans for Shopify**: Use Puco or ETP Sort Hide Payment Methods (third-party apps) ## Shopify Plus: Using Checkout Blocks[​](#shopify-plus-using-checkout-blocks "Direct link to Shopify Plus: Using Checkout Blocks") Checkout Blocks is the official Shopify app for customizing checkout experiences and includes conditional payment method functionality. ### Installation[​](#installation "Direct link to Installation") 1. Go to [**Shopify App Store**](https://apps.shopify.com/) 2. Search for "Checkout Blocks" 3. Install the official app by Shopify 4. Configure your conditional rules following the [official Shopify documentation](https://help.shopify.com/en/manual/checkout-settings/checkout-blocks/customizations/payment-methods) Alternatively, install it from [Shopify's apps page](https://apps.shopify.com/partners/shopify) ### Quick Download[​](#quick-download "Direct link to Quick Download") Download the pre-configured JSON files to import directly into Checkout Blocks: [📥 Download Bizum Rule](https://docs.monei.com/checkout-bizum-rule.json) [📥 Download MB Rule](https://docs.monei.com/checkout-mb-rule.json) How to use downloaded JSON files 1. Download the JSON file(s) you need 2. Go to **Apps → Checkout Blocks → Functions** 3. Click **Create function → Payment/Hide → Import from file** 4. Upload the downloaded JSON file 5. Review and activate the function ### Create rule: Hide Bizum[​](#create-rule-hide-bizum "Direct link to Create rule: Hide Bizum") **Use Case:** Hide MONEI Bizum for customers outside Spain or Andorra **Steps:** 1. Go to **Apps → Checkout Blocks → Functions** 2. Click on **Create function → Payment/Hide → Create from blank template** 3. Create the rule: * **Function title:** Hide Bizum if not Spain/Andorra * **Type:** Advanced rules editor * **Hidden payment methods:** Add method * **Contains:** Bizum * **Add rule:** Shipping country is not * **Select a country:** Andorra, Spain 4. Save the rule 5. Change status to **Active** **The function can also be imported using this JSON file:** ![Hide Bizum](/assets/images/checkout-bizum-rule-a5b4d059e9ca2060b1d989dcfc78a992.png) ### Create rule: Hide Multibanco and MBWay[​](#create-rule-hide-multibanco-and-mbway "Direct link to Create rule: Hide Multibanco and MBWay") **Use Case:** Hide MONEI Multibanco and MONEI MBWay for customers outside Portugal **Steps:** 1. Go to **Apps → Checkout Blocks → Functions** 2. Click on **Create function → Payment/Hide → Create from blank template** 3. Create the rule: * **Function title:** Hide MB if not Portugal * **Type:** Advanced rules editor * **Hidden payment methods:** Add method * **Contains:** Multibanco * **Add rule:** Shipping country is not * **Select a country:** Portugal * **Hidden payment methods:** Add method * **Contains:** MBWay * **Add rule:** Shipping country is not * **Select a country:** Portugal 4. Save the rule 5. Change status to **Active** **The function can also be imported using this JSON file:** ![Hide Multibanco and MBWay](/assets/images/checkout-mb-rule-b4f9746188712ab87e8f00403da257c8.png) ## Other Plans for Shopify: Puco Checkout Rules[​](#other-plans-for-shopify-puco-checkout-rules "Direct link to Other Plans for Shopify: Puco Checkout Rules") Puco is a third-party app specifically designed for conditional payment method management that works on all Shopify plans. It has a free plan that allows for one checkout rule and a paid one that allows infinite rules ### Installation[​](#installation-1 "Direct link to Installation") 1. Go to [**Shopify App Store**](https://apps.shopify.com/) 2. Search for "Puco Checkout Rules" 3. Install the app 4. Set up your conditional rules Alternatively, install it from [Puco.io's Shopify partner page](https://apps.shopify.com/partners/puco) ### Setup: Hide Bizum[​](#setup-hide-bizum "Direct link to Setup: Hide Bizum") **Use Case:** Hide MONEI Bizum for customers outside Spain or Andorra **Steps:** 1. Go to **Apps → Puco Checkout Rules → Payment** 2. Create a new rule: * **Customization title:** Hide Bizum if not Spain/Andorra * **Based on:** * **Condition:** Country Code * **Operator:** does not contain * **Country list:** Es, Ad * **Customization type:** Hide payment methods * **Select payment methods to hide:** Pay with Bizum 3. Save the rule ![Hide Bizum](/assets/images/puco-bizum-rule-e4e8d52c014ff62192af6c40a0c2c861.png) ### Setup: Hide Multibanco and MONEI MBWay[​](#setup-hide-multibanco-and-monei-mbway "Direct link to Setup: Hide Multibanco and MONEI MBWay") **Use Case:** Hide MONEI Multibanco and MONEI MBWay for customers outside Portugal **Steps:** 1. Go to **Apps → Puco Checkout Rules → Payment** 2. Create a new rule: * **Customization title:** Hide MB if not Portugal * **Based on:** * **Condition:** Country Code * **Operator:** does not contain * **Country list:** Pt * **Customization type:** Hide payment methods * **Select payment methods to hide:** MBWay, Multibanco (add both manually) 3. Save the rule ![Hide Multibanco and MBWay](/assets/images/puco-mb-rule-af110b8922b14d8f541e87253e523ce6.png) ## Other Plans for Shopify: ETP Sort Hide Payment Methods[​](#other-plans-for-shopify-etp-sort-hide-payment-methods "Direct link to Other Plans for Shopify: ETP Sort Hide Payment Methods") ETP Sort Hide Payment Methods is a third-party app specifically designed for conditional payment method management that works on all Shopify plans. ### Installation[​](#installation-2 "Direct link to Installation") 1. Go to [**Shopify App Store**](https://apps.shopify.com/) 2. Search for "ETP Hide Sort Payment Methods" 3. Install the app 4. Set up your conditional rules Alternatively, install it from [E-TRADE PARTNER's Shopify partner page](https://apps.shopify.com/partners/e-trade-partner-p-s-a) ### Setup: Hide Bizum[​](#setup-hide-bizum-1 "Direct link to Setup: Hide Bizum") **Use Case:** Hide MONEI Bizum for customers outside Spain or Andorra **Steps:** 1. Go to **Apps → Hide & Sort Payments** 2. Create new: * **General settings:** * **Status:** Active * **Customization name:** Hide Bizum if not Spain/Andorra * **When do you want this customization to work?:** When certain conditions are met * **Which condition set would you like to use?:** Address conditions * **Conditions:** * **When...:** Country * **Operator:** is not one of * **Country list:** Spain, Andorra * **Customization actions:** * **Action:** Hide specific payment method(s) * **Operator:** which name(s) contains/contain * **Values:** Bizum 3. Save the rule ![Hide Bizum](/assets/images/etp-bizum-rule-9f1f6aed57fb1796731b7fffb0b0eee4.png) ### Setup: Hide Multibanco and MONEI MBWay[​](#setup-hide-multibanco-and-monei-mbway-1 "Direct link to Setup: Hide Multibanco and MONEI MBWay") **Use Case:** Hide MONEI Multibanco and MONEI MBWay for customers outside Portugal **Steps:** 1. Go to **Apps → Hide & Sort Payments** 2. Create new: * **General settings:** * **Status:** Active * **Customization name:** Hide MB if not Portugal * **When do you want this customization to work?:** When certain conditions are met * **Which condition set would you like to use?:** Address conditions * **Conditions:** * **When...:** Country * **Operator:** is not one of * **Country list:** Portugal * **Customization actions:** * **Action:** Hide specific payment method(s) * **Operator:** which name(s) contains/contain * **Values:** Multibanco, MBWay 3. Save the rule ![Hide Multibanco and MBWay](/assets/images/etp-mb-rule-07de1bdca48c3d1d5e0a5ea27366b8e0.png) --- # MONEI Bizum To accept Bizum payments through MONEI in your Shopify store you simply need to install and configure MONEI Pay · Bizum Shopify App. [](https://monei-demo.myshopify.com/) [Live demo](https://monei-demo.myshopify.com/) Password: `demo` ## Before you begin[​](#before-you-begin "Direct link to Before you begin") Before installing, make sure that: * **The payment method is enabled** in your [MONEI Dashboard → Profile (top-right) → Settings → Payment configuration → Payment methods](https://dashboard.monei.com/settings/payment-methods) (Bizum). * **You are in the correct mode**: The app connects to the **test or live mode** you are currently using in the MONEI dashboard. Use the mode switcher in the dashboard header to [switch between test and live mode](https://docs.monei.com/testing/.md), then install the app when you are already in the mode you want. If you are not yet approved for live, you can switch to test mode to try out the apps. To verify test payments, check [MONEI Dashboard → Payments](https://dashboard.monei.com/payments) (switch to test mode to see test payments). ## Install[​](#install "Direct link to Install") [](https://accounts.shopify.com/store-login?no_redirect=true\&redirect=%2Fadmin%2Fsettings%2Fpayments%2Falternative-providers%2F1540097) [Install app](https://accounts.shopify.com/store-login?no_redirect=true\&redirect=%2Fadmin%2Fsettings%2Fpayments%2Falternative-providers%2F1540097) ### Installation steps[​](#installation-steps "Direct link to Installation steps") 1. Click the link above to install the app directly. 2. You will be redirected to the **MONEI dashboard**. Log in if you are not already logged in. On the **Connect** screen for Bizum, complete the connection. ![Connect MONEI Pay · Bizum](/assets/images/connect-1513f419d14db74126c22f378ab5131c.png) 3. You will then be redirected to **Shopify → Settings → Payments**. Click **Activate** to enable the payment method. ![Activate MONEI Pay · Bizum](/assets/images/activate-c353ab63a04b2bb994207ff7fcf2bf49.png) ## Configure[​](#configure "Direct link to Configure") ### Accessing configuration from the dashboard[​](#accessing-configuration-from-the-dashboard "Direct link to Accessing configuration from the dashboard") Go to **Profile (top-right) → Settings → Integrations → Shopify** and click **Configure**. ![MONEI Shopify apps list](/assets/images/integrations-apps-list-eba3a2adf60fc46de65346c199fa28a0.png) This opens the list of MONEI apps installed in your **current** test or live mode (use the mode switcher to see apps in the other mode). From the list: * **Actions → Configure** — opens the configuration screen for that app (switch between test and live mode, or add and manage stores per country). * **Actions → Open in Shopify** — opens the Shopify activation screen for that app. ![MONEI app configuration screen](/assets/images/integrations-app-configuration-0ff83a5ec1bc81a90f44eaa6ccbd5130.png) ### Accessing from Shopify Admin[​](#accessing-from-shopify-admin "Direct link to Accessing from Shopify Admin") You can also open the MONEI integration from Shopify: * **Settings → Apps → MONEI Pay · Bizum** → **Open App**, or * **Settings → Payments → MONEI Pay · Bizum** → **More actions** → **Manage** ## Before you go live[​](#before-you-go-live "Direct link to Before you go live") * Switch to [live (production) mode](https://docs.monei.com/testing/.md) in the MONEI dashboard and ensure the app is configured for live mode. * Ensure Bizum is activated as a [payment method](https://dashboard.monei.com/settings/payment-methods) (Profile → Settings → Payment configuration) in your MONEI account. ## How to find the Shopify Order[​](#how-to-find-the-shopify-order "Direct link to How to find the Shopify Order") To find the order in Shopify Admin use the Order ID from MONEI Dashboard ![Find MONEI Payment](/assets/images/find-order-id-62a737a72ff51e52a96cdcbab6375d90.png) Enter the following query in Shopify Admin -> Orders `receipt.payment_id:{{ MONEI_ORDER_ID }}` ![Find MONEI Payment in Shopify](/assets/images/search-order-443a0cf4056af9d7e4e526d10e766515.png) You can find the MONEI Order ID in the **Information from the gateway** section in the Shopify order. ![Find Payment in MONEI](/assets/images/order-details-59f75f804c9ca0822b37127a15928d00.png) --- # MONEI MB Way To accept MB Way payments through MONEI in your Shopify store you simply need to install and configure MONEI MB Way Shopify App. [](https://monei-demo.myshopify.com/) [Live demo](https://monei-demo.myshopify.com/) Password: `demo` ## Before you begin[​](#before-you-begin "Direct link to Before you begin") Before installing, make sure that: * **The payment method is enabled** in your [MONEI Dashboard → Profile (top-right) → Settings → Payment configuration → Payment methods](https://dashboard.monei.com/settings/payment-methods) (MB Way). * **You are in the correct mode**: The app connects to the **test or live mode** you are currently using in the MONEI dashboard. Use the mode switcher in the dashboard header to [switch between test and live mode](https://docs.monei.com/testing/.md), then install the app when you are already in the mode you want. If you are not yet approved for live, you can switch to test mode to try out the apps. To verify test payments, check [MONEI Dashboard → Payments](https://dashboard.monei.com/payments) (switch to test mode to see test payments). ## Install[​](#install "Direct link to Install") [](https://accounts.shopify.com/store-login?no_redirect=true\&redirect=%2Fadmin%2Fsettings%2Fpayments%2Falternative-providers%2F90669057) [Install app](https://accounts.shopify.com/store-login?no_redirect=true\&redirect=%2Fadmin%2Fsettings%2Fpayments%2Falternative-providers%2F90669057) ### Installation steps[​](#installation-steps "Direct link to Installation steps") 1. Click the link above to install the app directly. 2. You will be redirected to the **MONEI dashboard**. Log in if you are not already logged in. On the **Connect** screen for MB Way, complete the connection. ![Connect MONEI MB Way](/assets/images/connect-ff718df8e8ab31329c1babac867963f3.png) 3. You will then be redirected to **Shopify → Settings → Payments**. Click **Activate** to enable the payment method. ![Activate MONEI MB Way](/assets/images/activate-f33054a25d305a756c0859d86bf9fda9.png) ## Configure[​](#configure "Direct link to Configure") ### Accessing configuration from the dashboard[​](#accessing-configuration-from-the-dashboard "Direct link to Accessing configuration from the dashboard") Go to **Profile (top-right) → Settings → Integrations → Shopify** and click **Configure**. ![MONEI Shopify apps list](/assets/images/integrations-apps-list-eba3a2adf60fc46de65346c199fa28a0.png) This opens the list of MONEI apps installed in your **current** test or live mode (use the mode switcher to see apps in the other mode). From the list: * **Actions → Configure** — opens the configuration screen for that app (switch between test and live mode, or add and manage stores per country). * **Actions → Open in Shopify** — opens the Shopify activation screen for that app. ![MONEI app configuration screen](/assets/images/integrations-app-configuration-0ff83a5ec1bc81a90f44eaa6ccbd5130.png) ### Accessing from Shopify Admin[​](#accessing-from-shopify-admin "Direct link to Accessing from Shopify Admin") You can also open the MONEI integration from Shopify: * **Settings → Apps → MONEI MB Way** → **Open App**, or * **Settings → Payments → MONEI MB Way** → **More actions** → **Manage** ## Before you go live[​](#before-you-go-live "Direct link to Before you go live") * Switch to [live (production) mode](https://docs.monei.com/testing/.md) in the MONEI dashboard and ensure the app is configured for live mode. * Ensure MB Way is activated as a [payment method](https://dashboard.monei.com/settings/payment-methods) (Profile → Settings → Payment configuration) in your MONEI account. ## How to find the Shopify Order[​](#how-to-find-the-shopify-order "Direct link to How to find the Shopify Order") To find the order in Shopify Admin use the Order ID from MONEI Dashboard ![Find MONEI Payment](/assets/images/find-order-id-62a737a72ff51e52a96cdcbab6375d90.png) Enter the following query in Shopify Admin -> Orders `receipt.payment_id:{{ MONEI_ORDER_ID }}` ![Find MONEI Payment in Shopify](/assets/images/search-order-443a0cf4056af9d7e4e526d10e766515.png) You can find the MONEI Order ID in the **Information from the gateway** section in the Shopify order. ![Find Payment in MONEI](/assets/images/order-details-59f75f804c9ca0822b37127a15928d00.png) --- # MONEI Multibanco To accept Multibanco payments through MONEI in your Shopify store you simply need to install and configure MONEI Multibanco Shopify App. [](https://monei-demo.myshopify.com/) [Live demo](https://monei-demo.myshopify.com/) Password: `demo` ## Before you begin[​](#before-you-begin "Direct link to Before you begin") Before installing, make sure that: * **The payment method is enabled** in your [MONEI Dashboard → Profile (top-right) → Settings → Payment configuration → Payment methods](https://dashboard.monei.com/settings/payment-methods) (Multibanco). * **You are in the correct mode**: The app connects to the **test or live mode** you are currently using in the MONEI dashboard. Use the mode switcher in the dashboard header to [switch between test and live mode](https://docs.monei.com/testing/.md), then install the app when you are already in the mode you want. If you are not yet approved for live, you can switch to test mode to try out the apps. To verify test payments, check [MONEI Dashboard → Payments](https://dashboard.monei.com/payments) (switch to test mode to see test payments). ## Install[​](#install "Direct link to Install") [](https://accounts.shopify.com/store-login?no_redirect=true\&redirect=%2Fadmin%2Fsettings%2Fpayments%2Falternative-providers%2F90701825) [Install app](https://accounts.shopify.com/store-login?no_redirect=true\&redirect=%2Fadmin%2Fsettings%2Fpayments%2Falternative-providers%2F90701825) ### Installation steps[​](#installation-steps "Direct link to Installation steps") 1. Click the link above to install the app directly. 2. You will be redirected to the **MONEI dashboard**. Log in if you are not already logged in. On the **Connect** screen for Multibanco, complete the connection. ![Connect MONEI Multibanco](/assets/images/connect-8d6c572e9b4f451389a99a0d5c81c951.png) 3. You will then be redirected to **Shopify → Settings → Payments**. Click **Activate** to enable the payment method. ![Activate MONEI Multibanco](/assets/images/activate-c5e3e3881f7141a9ef4de63a3531ea34.png) ## Configure[​](#configure "Direct link to Configure") ### Accessing configuration from the dashboard[​](#accessing-configuration-from-the-dashboard "Direct link to Accessing configuration from the dashboard") Go to **Profile (top-right) → Settings → Integrations → Shopify** and click **Configure**. ![MONEI Shopify apps list](/assets/images/integrations-apps-list-eba3a2adf60fc46de65346c199fa28a0.png) This opens the list of MONEI apps installed in your **current** test or live mode (use the mode switcher to see apps in the other mode). From the list: * **Actions → Configure** — opens the configuration screen for that app (switch between test and live mode, or add and manage stores per country). * **Actions → Open in Shopify** — opens the Shopify activation screen for that app. ![MONEI app configuration screen](/assets/images/integrations-app-configuration-0ff83a5ec1bc81a90f44eaa6ccbd5130.png) ### Accessing from Shopify Admin[​](#accessing-from-shopify-admin "Direct link to Accessing from Shopify Admin") You can also open the MONEI integration from Shopify: * **Settings → Apps → MONEI Multibanco** → **Open App**, or * **Settings → Payments → MONEI Multibanco** → **More actions** → **Manage** ## Before you go live[​](#before-you-go-live "Direct link to Before you go live") * Switch to [live (production) mode](https://docs.monei.com/testing/.md) in the MONEI dashboard and ensure the app is configured for live mode. * Ensure Multibanco is activated as a [payment method](https://dashboard.monei.com/settings/payment-methods) (Profile → Settings → Payment configuration) in your MONEI account. ## How to find the Shopify Order[​](#how-to-find-the-shopify-order "Direct link to How to find the Shopify Order") To find the order in Shopify Admin use the Order ID from MONEI Dashboard ![Find MONEI Payment](/assets/images/find-order-id-62a737a72ff51e52a96cdcbab6375d90.png) Enter the following query in Shopify Admin -> Orders `receipt.payment_id:{{ MONEI_ORDER_ID }}` ![Find MONEI Payment in Shopify](/assets/images/search-order-443a0cf4056af9d7e4e526d10e766515.png) You can find the MONEI Order ID in the **Information from the gateway** section in the Shopify order. ![Find Payment in MONEI](/assets/images/order-details-59f75f804c9ca0822b37127a15928d00.png) --- # MONEI Onsite To accept payments directly on your Shopify store you simply need to install and configure MONEI Onsite Shopify App. [](https://monei-demo.myshopify.com/) [Live demo](https://monei-demo.myshopify.com/) Password: `demo` ## Before you begin[​](#before-you-begin "Direct link to Before you begin") Before installing, make sure that: * **At least one payment method is enabled** in your [MONEI Dashboard → Profile (top-right) → Settings → Payment configuration → Payment methods](https://dashboard.monei.com/settings/payment-methods). * **You are in the correct mode**: The app connects to the **test or live mode** you are currently using in the MONEI dashboard. Use the mode switcher in the dashboard header to [switch between test and live mode](https://docs.monei.com/testing/.md), then install the app when you are already in the mode you want. If you are not yet approved for live, you can switch to test mode to try out the apps. To verify test payments, check [MONEI Dashboard → Payments](https://dashboard.monei.com/payments) (switch to test mode to see test payments). ## Install[​](#install "Direct link to Install") [](https://accounts.shopify.com/store-login?no_redirect=true\&redirect=%2Fadmin%2Fsettings%2Fpayments%2Falternative-providers%2F44761089) [Install app](https://accounts.shopify.com/store-login?no_redirect=true\&redirect=%2Fadmin%2Fsettings%2Fpayments%2Falternative-providers%2F44761089) ### Installation steps[​](#installation-steps "Direct link to Installation steps") 1. Click the link above to install the app directly. 2. You will be redirected to the **MONEI dashboard**. Log in if you are not already logged in. On the **Connect** screen for MONEI Onsite, complete the connection. ![Connect MONEI Onsite](/assets/images/connect-71ebc1695687b43852fe6b0c91a4872a.png) 3. You will then be redirected to **Shopify → Settings → Payments**. Click **Activate** to enable the payment method. ![Activate MONEI Onsite](/assets/images/activate-75ec69e26dea5f4e69e9eaae7807e702.png) ## Configure[​](#configure "Direct link to Configure") ### Accessing configuration from the dashboard[​](#accessing-configuration-from-the-dashboard "Direct link to Accessing configuration from the dashboard") Go to **Profile (top-right) → Settings → Integrations → Shopify** and click **Configure**. ![MONEI Shopify apps list](/assets/images/integrations-apps-list-eba3a2adf60fc46de65346c199fa28a0.png) This opens the list of MONEI apps installed in your **current** test or live mode (use the mode switcher to see apps in the other mode). From the list: * **Actions → Configure** — opens the configuration screen for that app (switch between test and live mode, or add and manage stores per country). * **Actions → Open in Shopify** — opens the Shopify activation screen for that app. ![MONEI app configuration screen](/assets/images/integrations-app-configuration-0ff83a5ec1bc81a90f44eaa6ccbd5130.png) ### Accessing from Shopify Admin[​](#accessing-from-shopify-admin "Direct link to Accessing from Shopify Admin") You can also open the MONEI integration from Shopify: * **Settings → Apps → MONEI Onsite** → **Open App**, or * **Settings → Payments → MONEI Onsite** → **More actions** → **Manage** ## Before you go live[​](#before-you-go-live "Direct link to Before you go live") * Switch to [live (production) mode](https://docs.monei.com/testing/.md) in the MONEI dashboard and ensure the app is configured for live mode. * Ensure you have at least one active [payment method](https://dashboard.monei.com/settings/payment-methods) (Profile → Settings → Payment configuration) in your MONEI account. ## How to find the Shopify Order[​](#how-to-find-the-shopify-order "Direct link to How to find the Shopify Order") To find the order in Shopify Admin use the Order ID from MONEI Dashboard ![Find MONEI Payment](/assets/images/find-order-id-62a737a72ff51e52a96cdcbab6375d90.png) Enter the following query in Shopify Admin -> Orders `receipt.payment_id:{{ MONEI_ORDER_ID }}` ![Find MONEI Payment in Shopify](/assets/images/search-order-443a0cf4056af9d7e4e526d10e766515.png) You can find the MONEI Order ID in the **Information from the gateway** section in the Shopify order. ![Find Payment in MONEI](/assets/images/order-details-59f75f804c9ca0822b37127a15928d00.png) --- # MONEI Payments To accept payments through MONEI in your Shopify store you simply need to install and configure MONEI Payments Shopify App. [](https://monei-demo.myshopify.com/) [Live demo](https://monei-demo.myshopify.com/) Password: `demo` ## Before you begin[​](#before-you-begin "Direct link to Before you begin") Before installing, make sure that: * **At least one payment method is enabled** in your [MONEI Dashboard → Profile (top-right) → Settings → Payment configuration → Payment methods](https://dashboard.monei.com/settings/payment-methods). * **You are in the correct mode**: The app connects to the **test or live mode** you are currently using in the MONEI dashboard. Use the mode switcher in the dashboard header to [switch between test and live mode](https://docs.monei.com/testing/.md), then install the app when you are already in the mode you want. If you are not yet approved for live, you can switch to test mode to try out the apps. To verify test payments, check [MONEI Dashboard → Payments](https://dashboard.monei.com/payments) (switch to test mode to see test payments). ## Install[​](#install "Direct link to Install") [](https://accounts.shopify.com/store-login?no_redirect=true\&redirect=%2Fadmin%2Fsettings%2Fpayments%2Falternative-providers%2F2129921) [Install app](https://accounts.shopify.com/store-login?no_redirect=true\&redirect=%2Fadmin%2Fsettings%2Fpayments%2Falternative-providers%2F2129921) ### Installation steps[​](#installation-steps "Direct link to Installation steps") 1. Click the link above to install the app directly. 2. You will be redirected to the **MONEI dashboard**. Log in if you are not already logged in. On the **Connect** screen for MONEI Payments, complete the connection. ![Connect MONEI Payments](/assets/images/connect-fa22ab2a8698c561095a958fea9ad83b.png) 3. You will then be redirected to **Shopify → Settings → Payments**. Click **Activate** to enable the payment method. ![Activate MONEI Payments](/assets/images/activate-da47e55fa029018ba4e8f3435b79438b.png) ## Configure[​](#configure "Direct link to Configure") ### Accessing configuration from the dashboard[​](#accessing-configuration-from-the-dashboard "Direct link to Accessing configuration from the dashboard") Go to **Profile (top-right) → Settings → Integrations → Shopify** and click **Configure**. ![MONEI Shopify apps list](/assets/images/integrations-apps-list-eba3a2adf60fc46de65346c199fa28a0.png) This opens the list of MONEI apps installed in your **current** test or live mode (use the mode switcher to see apps in the other mode). From the list: * **Actions → Configure** — opens the configuration screen for that app (switch between test and live mode, or add and manage stores per country). * **Actions → Open in Shopify** — opens the Shopify activation screen for that app. ![MONEI app configuration screen](/assets/images/integrations-app-configuration-0ff83a5ec1bc81a90f44eaa6ccbd5130.png) ### Accessing from Shopify Admin[​](#accessing-from-shopify-admin "Direct link to Accessing from Shopify Admin") You can also open the MONEI integration from Shopify: * **Settings → Apps → MONEI Payments** → **Open App**, or * **Settings → Payments → MONEI Payments** → **More actions** → **Manage** ## Before you go live[​](#before-you-go-live "Direct link to Before you go live") * Switch to [live (production) mode](https://docs.monei.com/testing/.md) in the MONEI dashboard and ensure the app is configured for live mode. * Ensure you have at least one active [payment method](https://dashboard.monei.com/settings/payment-methods) (Profile → Settings → Payment configuration) in your MONEI account. ## How to find the Shopify Order[​](#how-to-find-the-shopify-order "Direct link to How to find the Shopify Order") To find the order in Shopify Admin use the Order ID from MONEI Dashboard ![Find MONEI Payment](/assets/images/find-order-id-62a737a72ff51e52a96cdcbab6375d90.png) Enter the following query in Shopify Admin -> Orders `receipt.payment_id:{{ MONEI_ORDER_ID }}` ![Find MONEI Payment in Shopify](/assets/images/search-order-443a0cf4056af9d7e4e526d10e766515.png) You can find the MONEI Order ID in the **Information from the gateway** section in the Shopify order. ![Find Payment in MONEI](/assets/images/order-details-59f75f804c9ca0822b37127a15928d00.png) --- # WIX To accept payments through MONEI in your WIX store you simply need to install MONEI in WIX App Market. ## Before you begin[​](#before-you-begin "Direct link to Before you begin") To test your integration: * Use your [test mode](https://docs.monei.com/testing/.md) API Key. You can find them in [MONEI Dashboard → Settings → API Access](https://dashboard.monei.com/settings/api) * You can check the status of a test payment in your [MONEI Dashboard → Payments](https://dashboard.monei.com/payments) (in test mode). ## Install[​](#install "Direct link to Install") * Go to [Accept Payments](https://www.wix.com/my-account/site-selector/?buttonText=Set%20Up%20Payments\&title=Select%20a%20Site\&autoSelectOnSingleSite=true\&actionUrl=https://www.wix.com/dashboard/%7b%7bmetaSiteId%7d%7d/payments/) on your site's dashboard. note Check your business location at the top right. If incorrect, click the drop-down menu to change it. * Click **See More Payment Options**. * Click **Connect** beside **MONEI**. ![Connect MONEI to WIX](/assets/images/configure-wix-0-6a9f425a67a8250c98102820542dd97f.png) * Enter your API Key. You can find your API Key in [MONEI Dashboard → Settings → API Access](https://dashboard.monei.com/settings/api) and click **Connect** You can also install [MONEI from WIX App Market](https://www.wix.com/market?appMarketParams=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjoie1wicm91dGVcIjpcInRlc3RBcHBcIixcImFwcERlZklkXCI6XCJiZWQyMTg3OS0xMmUyLTQyNjYtYWQyYy01MGM5ZmQ1ODkyMTZcIixcInZlcnNpb25cIjpcIjAuMC4xOTZcIn0iLCJpYXQiOjE2MjgxNTM4NTF9.XfNlLXXNwmN7IrGE4Co5IOCp0Dq6MHDGNZ5Zxkowero). Get more info at [WIX Support Portal](https://support.wix.com/en/article/connecting-monei-as-a-payment-provider). ## Before you go live[​](#before-you-go-live "Direct link to Before you go live") * Make sure that you are using [live (production) mode](https://docs.monei.com/testing/.md) API Key. * Make sure that you have at least one active [payment method](https://dashboard.monei.com/settings/payment-methods) --- # WooCommerce To accept payments through MONEI in your WooCommerce store you simply need to install and configure MONEI WooCommerce Plugin. [Live demo](https://woocommerce-demo.monei.com) ## Before you begin[​](#before-you-begin "Direct link to Before you begin") To test your integration: * Use your [test mode](https://docs.monei.com/testing/.md) API Key. You can find them in [MONEI Dashboard → Settings → API Access](https://dashboard.monei.com/settings/api) * You can check the status of a test payment in your [MONEI Dashboard → Payments](https://dashboard.monei.com/payments) (in test mode). ## Install[​](#install "Direct link to Install") ![Install MONEI WooCommerce](/assets/images/configure-woo-0-2225e48f0e2ae37695063d05f930a8ee.png) [](https://wordpress.org/plugins/monei/) [Download from wordpress.org](https://wordpress.org/plugins/monei/) ## Configure[​](#configure "Direct link to Configure") Go to **WooCommerce → Settings → MONEI Settings** Enter your Account ID and API Key. You can find your Account ID and API Key in [MONEI Dashboard → Settings → API Access](https://dashboard.monei.com/settings/api). ![Configure MONEI WooCommerce](/assets/images/configure-woo-1-7cbac5ff60b4c3092ee478d388e2b0c2.png) Go to **WooCommerce → Settings → Payments** Configure payment methods that you want to accept in your store. ![Configure Card Payments](/assets/images/configure-woo-2-025f30aade6a206acd63266e44598795.png) ## Migration to WooCommerce Blocks[​](#migration-to-woocommerce-blocks "Direct link to Migration to WooCommerce Blocks") Starting from **version 6.0**, our plugin supports [WooCommerce Blocks](https://woocommerce.com/document/woocommerce-blocks/). To enable new user experience, you need to update the checkout page and cart page templates. Go to **Pages**and find the **Checkout** page. Remove old shortcode and add **Checkout** block to the page. ![Configure Checkout Page](/assets/images/configure-woo-3-8a636d28f76456cb8833c97d276006df.png) Go to **Pages** and find the **Cart** page. Remove old shortcode and add **Cart** block to the page. ![Configure Cart Page](/assets/images/configure-woo-4-9a987623e70fc009f8060c63fc792e1e.png) ## Before you go live[​](#before-you-go-live "Direct link to Before you go live") * Make sure that you are using [live (production) mode](https://docs.monei.com/testing/.md) API Key. * Make sure that you have at least one active [payment method](https://dashboard.monei.com/settings/payment-methods) --- # EURM Stablecoin EURM is a stablecoin developed by MONEI, designed to facilitate digital payments by maintaining a 1:1 parity with the euro. Technically, EURM operates on blockchain technology, specifically utilizing Ethereum and Polygon networks, to ensure secure and efficient transactions.  ## Key Technical Features[​](#key-technical-features "Direct link to Key Technical Features") * **Blockchain Integration:** EURM leverages the Ethereum and Polygon blockchains, enabling decentralized and transparent transactions. This integration ensures high security and scalability, accommodating a large volume of transactions with minimal latency.  * **Smart Contracts:** The use of smart contracts automates transaction processes, reducing the need for intermediaries and minimizing the risk of human error. This automation enhances the efficiency and reliability of financial operations. * **Stablecoin Mechanism:** Each EURM token is backed by an equivalent euro held in reserve accounts at reputable Spanish financial institutions, such as BBVA and Caixabank. This backing ensures stability and trustworthiness, making EURM a reliable medium for digital transactions.  * **Regulatory Compliance:** EURM operates under the supervision of the Bank of Spain’s Financial Sandbox, ensuring adherence to regulatory standards and fostering trust among users and financial institutions.  ## Potential Benefits for Financial Institutions:[​](#potential-benefits-for-financial-institutions "Direct link to Potential Benefits for Financial Institutions:") * **Enhanced Transaction Efficiency:** The integration of blockchain technology allows for near-instantaneous transactions, improving the speed and efficiency of payment processing. * **Cost Reduction:** By automating processes through smart contracts, EURM reduces operational costs associated with traditional payment systems. * **Increased Security:** The decentralized nature of blockchain technology provides robust security measures, protecting against fraud and unauthorized transactions. * **Regulatory Alignment:** Operating within the Bank of Spain’s Financial Sandbox ensures that EURM complies with existing financial regulations, facilitating smoother integration with traditional financial systems. note **Collaborating with MONEI to implement EURM can position financial institutions at the forefront of digital payment innovation,** offering clients a secure, efficient, and modern transaction solution. **Here are several key programming-related aspects that detail how EURM functions on a technical level:** ### Smart Contract Architecture[​](#smart-contract-architecture "Direct link to Smart Contract Architecture") * **Language:** EURM’s smart contracts are primarily written in Solidity, the standard language for Ethereum-compatible blockchain development. Solidity enables the creation of complex, immutable, and highly efficient contracts that can process transactions automatically. ### Key Contract Components[​](#key-contract-components "Direct link to Key Contract Components") * **Minting/Burning Logic:** Functions handle minting new EURM tokens when euros are added to the reserve and burning them when euros are withdrawn. This logic ensures that EURM tokens remain fully collateralized by real euros. * **Account Management:** Contracts include features for creating and managing wallet addresses linked to accounts at financial institutions. This allows EURM tokens to map transparently and securely to each user’s unique ID. * **Compliance and Permissions:** Additional contract modules may enforce KYC (Know Your Customer) compliance by restricting token transfers to authorized accounts or ensuring users are verified. This modular structure makes it easier to adapt to changing regulatory requirements. ### Gas Optimization[​](#gas-optimization "Direct link to Gas Optimization") * **Polygon for Lower Costs:** EURM primarily operates on Polygon to minimize gas fees associated with token transfers and smart contract executions, while maintaining Ethereum compatibility. This allows for high transaction volumes with significantly lower costs compared to the Ethereum mainnet. * **Efficient Contract Design:** Smart contracts are optimized to minimize storage usage and computational requirements, as these contribute to gas costs. For example, instead of writing multiple small transactions, contracts batch transactions where possible to reduce network calls. ### Token Standards and Interoperability[​](#token-standards-and-interoperability "Direct link to Token Standards and Interoperability") * **ERC-20 Standard Compliance:** EURM implements the ERC-20 token standard, ensuring compatibility with Ethereum and Polygon ecosystems. This enables seamless integration with compatible wallets, exchanges, and DeFi platforms while maintaining the necessary regulatory compliance features. * **Custom Extensions:** MONEI has likely added extensions to the ERC-20 contract, such as pausing or freezing tokens in compliance cases or enhancing security by restricting the functions that certain accounts can perform (e.g., non-compliant addresses can’t transfer tokens). ### API and SDK for Integration[​](#api-and-sdk-for-integration "Direct link to API and SDK for Integration") * **REST and GraphQL APIs:** MONEI provides a comprehensive REST API that enables developers to interact with EURM services, including balance checks, transaction execution, and history retrieval. The API is designed with security and ease of integration in mind. * **SDKs for Popular Languages:** To simplify integration, MONEI provides Software Development Kits (SDKs) for popular languages like JavaScript, Python, and Java. These SDKs abstract the complex interactions with the Ethereum or Polygon blockchains, allowing developers to integrate EURM with minimal blockchain knowledge. ### Security and Auditing[​](#security-and-auditing "Direct link to Security and Auditing") * **Automated Auditing Tools:** EURM’s smart contracts undergo automated audits using tools like MythX and CertiK, which detect vulnerabilities in smart contract code. This helps prevent issues like reentrancy attacks or integer overflows. * **Manual Code Audits:** Before any major release, EURM’s contracts are manually reviewed by blockchain security experts to ensure they meet the highest security standards. * **Multisig Wallets and Governance:** EURM employs multisignature wallets for handling reserves and approving major contract updates. This adds a layer of security by requiring multiple approvals from trusted individuals before significant actions are taken. ### Data Privacy and Compliance[​](#data-privacy-and-compliance "Direct link to Data Privacy and Compliance") * **Encrypted User Data:** While the blockchain records transactions publicly, EURM employs off-chain solutions for sensitive user data, which is encrypted and stored in secure databases compliant with GDPR and other privacy laws. * **Compliance via Oracles:** Compliance requirements, such as real-time checks of sanctioned addresses, are enforced through oracles that interact with off-chain compliance data. Oracles may prevent transactions from non-compliant addresses and provide automatic alerts for suspicious activities. ### On-Chain and Off-Chain Reconciliation[​](#on-chain-and-off-chain-reconciliation "Direct link to On-Chain and Off-Chain Reconciliation") * **Real-Time Euro Collateral Tracking:** Off-chain systems regularly update and reconcile the euros held in reserve to ensure that each EURM token remains fully backed. These updates are verified by third-party auditors and use secure APIs to record changes in reserve accounts. * **Blockchain-Linked Ledger:** MONEI maintains a distributed ledger that logs all EURM transactions, both on-chain and off-chain. This hybrid approach helps track regulatory data while leveraging blockchain for security and transparency. ### Scalability and Future-Proofing[​](#scalability-and-future-proofing "Direct link to Scalability and Future-Proofing") * **Layer-2 Integration:** EURM primarily utilizes Polygon as its Layer-2 solution, offering scalability and cost-efficiency while maintaining security. The modular architecture allows for potential integration with other scaling solutions if needed in the future. * **Upgradeable Contracts:** Through an upgradable smart contract pattern (e.g., using the OpenZeppelin upgradeable proxy), EURM can adopt improvements or regulatory updates without having to redeploy entirely new contracts, making it adaptable over time. note By implementing these programming principles, **EURM provides a robust, secure, and flexible foundation for digital euro transactions that can adapt to regulatory changes and scaling demands.** This technical infrastructure, combined with MONEI’s expertise, makes EURM a valuable tool for financial institutions looking to enter the digital currency space securely and efficiently. --- # Getting started ### Ways to Integrate[​](#ways-to-integrate "Direct link to Ways to Integrate") Choose the integration method that best suits your needs: * **[Use a prebuilt payment page](https://docs.monei.com/integrations/use-prebuilt-payment-page/.md)** The simplest way to securely collect payments with multiple payment methods. * **[Build a custom checkout](https://docs.monei.com/integrations/build-custom-checkout/.md)** Use MONEI Components to build your custom checkout experience. * **[Payments API](https://docs.monei.com/apis/rest/payments/.md)** Securely perform server-to-server payments. ### Become a Partner (MONEI Connect)[​](#become-a-partner-monei-connect "Direct link to Become a Partner (MONEI Connect)") Enable payment processing for users on your platform or marketplace. * **[Learn about MONEI Connect](https://docs.monei.com/monei-connect/.md)**: Integrate payments directly into your platform for your merchants. ### E-commerce Platforms[​](#e-commerce-platforms "Direct link to E-commerce Platforms") Integrate MONEI with your e-commerce platform: * **[Shopify](https://docs.monei.com/e-commerce/shopify/monei-payments/.md)** * **[WooCommerce](https://docs.monei.com/e-commerce/woocommerce/.md)** * **[Wix](https://docs.monei.com/e-commerce/wix/.md)** * **[Salesforce Commerce Cloud](https://docs.monei.com/e-commerce/salesforce/.md)** * **[Spreedly](https://docs.spreedly.com/payment-gateways/monei/)** * **[Adobe Commerce (Magento 2)](https://docs.monei.com/e-commerce/adobe-commerce/.md)** * **[PrestaShop](https://docs.monei.com/e-commerce/prestashop/.md)** * **[commercetools](https://docs.monei.com/e-commerce/commercetools/.md)** ### Hotel Channel Managers[​](#hotel-channel-managers "Direct link to Hotel Channel Managers") Connect with hotel booking systems: * **[Siteminder](https://docs.monei.com/hotels/siteminder/.md)** * **[Channex](https://docs.monei.com/hotels/channex/.md)** ### AI-Friendly Documentation[​](#ai-friendly-documentation "Direct link to AI-Friendly Documentation") Use our machine-readable documentation with LLMs and AI coding assistants: * **[llms.txt](https://docs.monei.com/llms.txt)** — index of all documentation pages in markdown format * **[llms-full.txt](https://docs.monei.com/llms-full.txt)** — all documentation concatenated into a single file * **[openapi.json](https://docs.monei.com/openapi.json)** — OpenAPI spec with full REST API schemas, parameters, and responses * Use the **"Copy page"** button on any page to copy its content as markdown * Feed the copied markdown to your AI assistant for context-aware help with MONEI integration --- # Ethoca & Verifi Sync To further enhance the security and reliability of payment processes, MONEI offers critical support for integrating [Ethoca](https://www.ethoca.com/) and [Verifi](https://www.verifi.com/) services. These integrations are essential for merchants looking to improve oversight and control of their transaction environments, significantly reducing the risk of chargebacks. By implementing these services, merchants can detect and respond to potential fraud and disputes more effectively and efficiently. The specific details provided by MONEI for this integration are crucial and include the following: * **Merchant Name** - The official name of the business registered with MONEI. * **Merchant ID** - A unique identifier assigned to the merchant by MONEI for transaction tracking and account management. * **VISA Acquirer BIN** - The Bank Identification Number associated with VISA transactions, necessary for processing VISA payments. * **Mastercard Acquirer BIN** - Similarly, the BIN required for processing Mastercard transactions. To obtain this information, please contact . If you have any questions, please contact our [Support Team](https://support.monei.com/hc/requests/new). --- # Managing Multiple Stores With MONEI, you can manage multiple stores within a single account, providing centralized and simplified transaction management. This functionality is particularly valuable for businesses with several points of sale or business units that require detailed control over their operations. ### Creating a Store from the Dashboard[​](#creating-a-store-from-the-dashboard "Direct link to Creating a Store from the Dashboard") You can create new stores directly from the MONEI dashboard. To do this, you should go to [MONEI Dashboard → Settings → Stores](https://dashboard.monei.com/settings/stores). Here, you’ll be able to add important store details, such as the store name, email, phone number, website, and address information. This makes it easier for you to manage and keep track of all your stores from one place. Additionally, your dashboard allows you to search for specific stores, making it quick and efficient to find the data you need and manage store-related transactions. This is especially useful if you’re handling multiple points of sale and need to track each store’s activity individually. Once a store is created, the storeId (a unique identifier crucial for API operations) will be displayed on the store management screen. This identifier is necessary for linking payments to individual stores. Furthermore, you have the capability to update store details or remove stores as needed, ensuring complete flexibility and control over your store configurations. ![Configure Stores](/assets/images/configure-stores-db6ac00672765528ff2c77e6cf8b0100.png) ### Assigning Payments to Stores[​](#assigning-payments-to-stores "Direct link to Assigning Payments to Stores") To link a payment to a specific store, the storeId parameter must be included in the API request when creating a payment. This unique identifier ensures that the transaction is explicitly associated with the designated store, enabling precise financial reporting and analytics. Notably, the storeId only needs to be specified during the payment creation process; subsequent operations such as confirmation, capture, or refund inherit the store association by default. This approach minimizes redundancy and optimizes API interaction by simplifying follow-up transaction requests. note The ability to assign payments using the `storeId` parameter is not available for standard integrations with e-commerce platforms such as Shopify, Prestashop, Wix, and WooCommerce. This option is only applicable in custom implementations. ### Create a payment with storeId on your server[​](#create-a-payment-with-storeid-on-your-server "Direct link to Create a payment with storeId on your server") * cURL * Node.js * PHP POST https\://api.monei.com/v1/payments ``` curl --request POST 'https://api.monei.com/v1/payments' \ --header 'Authorization: pk_test_3c140607778e1217f56ccb8b50540e00' \ --header 'Content-Type: application/json' \ --data-raw '{ "amount": 110, "currency": "EUR", "orderId": "14379133960355", "description": "Test Store - #14379133960355", "storeId": "e5f28150d9e8974c58ab5ec9c4a880f8734dcf05", }' ``` server.js ``` const {Monei, TransactionTypes} = require('@monei-js/node-sdk'); const monei = new Monei('pk_test_36cf3e8a15eff3f5be983562ea6b13ec'); monei.payments.create({ amount: 110, currency: 'EUR', orderId: '14379133960355', description: 'Test Store - #14379133960355', storeId: 'e5f28150d9e8974c58ab5ec9c4a880f8734dcf05' }); ``` server.php ``` $monei = new Monei\MoneiClient('pk_test_36cf3e8a15eff3f5be983562ea6b13ec'); $monei->payments->create([ 'amount' => 110, 'currency' => 'EUR', 'orderId' => '14379133960355', 'description' => 'Test Store - #14379133960355', 'storeId' => 'e5f28150d9e8974c58ab5ec9c4a880f8734dcf05' ]); ``` The following parameters are required: * **amount** `positive integer` - Amount intended to be collected by this payment. A positive integer representing how much to charge in the smallest currency unit (e.g., 100 cents to charge 1.00 USD) * **currency** `string` - Three-letter [ISO currency code](https://en.wikipedia.org/wiki/ISO_4217), in uppercase. Must be a supported currency. * **orderId** `string` - An order ID from your system. A unique identifier that can be used to reconcile the payment with your internal system. * **storeId** `string` - `A unique identifier of the Store. If specified the payment is attached to this Store.` Check all available [request parameters](https://docs.monei.com/apis/rest/payments-create/.md). ### Configuring IBAN for Settlements[​](#configuring-iban-for-settlements "Direct link to Configuring IBAN for Settlements") MONEI offers the possibility of setting up a unique IBAN for each store, allowing payment settlements to be directed to the corresponding bank account. To enable this functionality, you need to contact MONEI's [Support Team](https://support.monei.com/hc/requests/new) for assistance in completing the IBAN configuration. --- # Migrate your tokenized cards to MONEI If you have cards tokenized by your payment processor or in your own database, you can securely migrate them to MONEI. This way, you can use them to create payments and subscriptions without requesting your customers to confirm their card details again. Contact your payment processor to perform PCI-compliant migration. The payment processor should use MONEI Public PGP Key downloaded from to securely encrypt the card details and send them directly to MONEI - . We will need the following information for each card: * **PAN number** - the full card number * **Cardholder name** - optional * **Expiration date** - month and year * **Initial transaction ID** - the identifier returned by the card network when the initial transaction was confirmed by the customer, also known as COF (Credential On File) ID ### Encrypting file with MONEI PGP Key[​](#encrypting-file-with-monei-pgp-key "Direct link to Encrypting file with MONEI PGP Key") If you’re unfamiliar with PGP, see [GPG](http://gnupg.org/) and start by [importing a public key](http://www.gnupg.org/gph/en/manual.html#AEN84). Use the MONEI Public PGP key downloaded from to encrypt sensitive data for PCI-compliant migration. ``` gpg --import pgp-public-key gpg --encrypt --recipient admin@monei.com SENSITIVE_DATA ``` This creates SENSITIVE\_DATA.gpg with the following information: * **Key ID**: `D1EAC68D28C86E2A7DDD360AC6B156F9C06E825A` * **Key type**: `RSA` * **Key size**: `4096 bits` * **Fingerprint**: `D1EA C68D 28C8 6E2A 7DDD 360A C6B1 56F9 C06E 825A` * **User ID**: `MONEI DIGITAL PAYMENTS SL ` Send the encrypted file to . If you have any questions, please contact our [Support Team](https://support.monei.com/hc/requests/new). --- # Payouts (beta) The MONEI Payouts API allows you to send money to individuals via Bizum or Cards. warning The Payouts API is currently in closed beta. To request access, please contact our [Support Team](https://support.monei.com/hc/requests/new). Please note that the Payouts API is not available in the test environment. ## Before you begin[​](#before-you-begin "Direct link to Before you begin") To enable MONEI payouts, it is essential to maintain a positive balance in the merchant account at all times. Additionally, a minimum initial top-up of €5,000 to the merchant account balance is required to fully activate the payout functionality. ## Payouts with Bizum[​](#payouts-with-bizum "Direct link to Payouts with Bizum") Before you start, you need to make sure that you have Bizum enabled in [MONEI Dashboard → Settings → Payment Methods](https://dashboard.monei.com/settings/payment-methods). If you don't have Bizum configured, please contact our [Support Team](https://support.monei.com/hc/requests/new). To test your Bizum payout integration: You can use the [MONEI API endpoint](https://docs.monei.com/apis/rest/bizum/.md) to verify if the phone number is registered with Bizum before sending the money to the end user. Bizum payouts do not require client's confirmation. You only need to know their phone number. ### 1. Create a new payment on your server.[​](#1-create-a-new-payment-on-your-server "Direct link to 1. Create a new payment on your server.") * cURL * Node.js * PHP POST https\://api.monei.com/v1/payments ``` curl --request POST 'https://api.monei.com/v1/payments' \ --header 'Authorization: pk_test_3c140607778e1217f56ccb8b50540e00' \ --header 'Content-Type: application/json' \ --data-raw '{ "amount": 110, "currency": "EUR", "orderId": "14379133960355", "description": "Test Shop - #14379133960355", "transactionType": "PAYOUT", "paymentMethod": { "bizum": { "phoneNumber": "+34500000000" } } }' ``` server.js ``` const {Monei, TransactionTypes} = require('@monei-js/node-sdk'); const monei = new Monei('pk_test_36cf3e8a15eff3f5be983562ea6b13ec'); monei.payments.create({ amount: 110, currency: 'EUR', orderId: '14379133960355', description: 'Test Shop - #14379133960355', transactionType: TransactionTypes.PAYOUT, paymentMethod: { bizum: { phoneNumber: '+34500000000' } } }); ``` server.php ``` $monei = new Monei\MoneiClient('pk_test_36cf3e8a15eff3f5be983562ea6b13ec'); $monei->payments->create([ 'amount' => 110, 'currency' => 'EUR', 'orderId' => '14379133960355', 'description' => 'Test Shop - #14379133960355', 'transactionType' => 'PAYOUT', 'paymentMethod' => [ 'bizum' => [ 'phoneNumber' => '+34500000000' ] ] ]); ``` The following parameters are required: * **amount** `positive integer` - Amount intended to be collected by this payment. A positive integer representing how much to charge in the smallest currency unit (e.g., 100 cents to charge 1.00 USD) * **currency** `string` - Three-letter [ISO currency code](https://en.wikipedia.org/wiki/ISO_4217), in uppercase. Must be a supported currency. * **orderId** `string` - An order ID from your system. A unique identifier that can be used to reconcile the payment with your internal system. * **transactionType** `string` - `PAYOUT` * **paymentMethod** `object` - Payment method object. It must contain `bizum` object with `phoneNumber` property. Check all available [request parameters](https://docs.monei.com/apis/rest/payments-create/.md). ### 2. Handle the response[​](#2-handle-the-response "Direct link to 2. Handle the response") Example response: Bizum payouts are executed immediately. If the request is successful, you will receive a `PAID_OUT` status in the response. ``` { "id": "af6029f80f5fc73a8ad2753eea0b1be0", "amount": 110, "currency": "EUR", "orderId": "14379133960355", "description": "Test Shop - #14379133960355", "livemode": true, "status": "PAID_OUT", "statusCode": "E000", "statusMessage": "Transaction approved", "createdAt": 1685430038, "updatedAt": 1685430039, "paymentMethod": { "method": "bizum", "bizum": { "phoneNumber": "+34500000000", "integrationType": "REST" } }, "nextAction": { "type": "COMPLETE", "redirectUrl": "https://secure.monei.com/payments/af6029f80f5fc73a8ad2753eea0b1be0/receipt" } } ``` Check the full list of returned [response parameters](https://docs.monei.com/apis/rest/schemas/payment/.md). Optionally, you can redirect the client to the `nextAction.redirectUrl` to show the payout status or receipt. ## Payouts with Cards[​](#payouts-with-cards "Direct link to Payouts with Cards") Payouts are supported by all our integrations. You can use a prebuilt payment page or build a custom checkout to let your client enter their Card details to receive the payout. Pass the `transactionType` parameter with the value `PAYOUT` to create a payout in the first step of our guides. * [Use a prebuilt payment page](https://docs.monei.com/integrations/use-prebuilt-payment-page/.md) * [Build a custom checkout](https://docs.monei.com/integrations/build-custom-checkout/.md) Payouts are only supported for Cards and Bizum payments so, you need to pass the `allowedPaymentMethods` parameter with the values of `card` or `bizum` (in case you have more payment methods enabled) --- # Save payment method To save a payment method for the future use you need to generate `paymentToken` when you create or confirm the payment and then save it on your server. This process is often called **tokenization**. Tokenization protects sensitive data through a process of replacing the data with a non-sensitive equivalent, known as a token. The token has no external significance or value. It’s a reference — or identifier — that through a tokenization system, maps back to the sensitive data. This process securely collects sensitive card information and prevents data theft. ## 1. Generate payment token[​](#1-generate-payment-token "Direct link to 1. Generate payment token") ### When you create a payment `Server-side`[​](#when-you-create-a-payment-server-side "Direct link to when-you-create-a-payment-server-side") * cURL * Node.js * PHP POST https\://api.monei.com/v1/payments ``` curl --request POST 'https://api.monei.com/v1/payments' \ --header 'Authorization: pk_test_3c140607778e1217f56ccb8b50540e00' \ --header 'Content-Type: application/json' \ --data-raw '{ "amount": 110, "currency": "EUR", "orderId": "14379133960355", "generatePaymentToken": true, "callbackUrl": "https://example.com/checkout/callback", "completeUrl": "https://example.com/checkout/complete" }' ``` server.js ``` const {Monei} = require('@monei-js/node-sdk'); const monei = new Monei('pk_test_36cf3e8a15eff3f5be983562ea6b13ec'); monei.payments.create({ amount: 110, currency: 'EUR', orderId: '14379133960355', generatePaymentToken: true, callbackUrl: 'https://example.com/checkout/callback', completeUrl: 'https://example.com/checkout/complete' }); ``` server.php ``` $monei = new Monei\MoneiClient('pk_test_36cf3e8a15eff3f5be983562ea6b13ec'); $monei->payments->create([ 'amount' => 110, 'currency' => 'EUR' 'orderId' => '14379133960355', 'generatePaymentToken' => true, 'callbackUrl' => 'https://example.com/checkout/callback', 'completeUrl' => 'https://example.com/checkout/complete' ]); ``` Check all available [request parameters](https://docs.monei.com/apis/rest/.md). note To retrieve the payment token for future use without charging your customer, create a payment with the following parameters: ``` { "amount": 0, "currency": "EUR", "orderId": "14379133960355", "transactionType": "VERIF", "generatePaymentToken": true, "callbackUrl": "https://example.com/checkout/callback", "completeUrl": "https://example.com/checkout/complete" } ``` ### When you confirm a payment `Server-side`[​](#when-you-confirm-a-payment-server-side "Direct link to when-you-confirm-a-payment-server-side") * cURL * Node.js * PHP POST https\://api.monei.com/v1/payments/:id/confirm ``` curl --request POST 'https://api.monei.com/v1/payments/26d1f09c42bb59a29b06e280f9553cd5/confirm' \ --header 'Authorization: pk_test_3c140607778e1217f56ccb8b50540e00' \ --header 'Content-Type: application/json' \ --data-raw '{ "paymentToken": "7cc38b08ff471ccd313ad62b23b9f362b107560b", "generatePaymentToken": true }' ``` server.js ``` const {Monei} = require('@monei-js/node-sdk'); const monei = new Monei('pk_test_36cf3e8a15eff3f5be983562ea6b13ec'); monei.payments.confirm({ paymentToken: '7cc38b08ff471ccd313ad62b23b9f362b107560b', generatePaymentToken: true }); ``` server.php ``` $monei = new Monei\MoneiClient('pk_test_36cf3e8a15eff3f5be983562ea6b13ec'); $monei->payments->confirm( '832b77d1a4b372349a7ae0bb1b2af059', [ 'paymentToken' => '7cc38b08ff471ccd313ad62b23b9f362b107560b', 'generatePaymentToken' => true ] ); ``` Check all available [request parameters](https://docs.monei.com/apis/rest/payments-confirm/.md). ### When you submit a payment form `Client-side`[​](#when-you-submit-a-payment-form-client-side "Direct link to when-you-submit-a-payment-form-client-side") You can pass `generatePaymentToken: true` when you submit a payment form. This is useful for allowing your customers to select if they want to save payment method for future use. checkout.html ```
``` Check [card payment method](https://docs.monei.com/payment-methods/card/.md) integration for more details. ## 2. Obtain and store payment token[​](#2-obtain-and-store-payment-token "Direct link to 2. Obtain and store payment token") After the payment is completed the customer is redirected to the `completeUrl` with **payment\_id** query parameter, you can obtain permanent `paymentToken` by calling [get payment](https://docs.monei.com/apis/rest/payments-get/.md) endpoint. Store this `paymentToken` in your database along with customer information. Next time the customer does a purchase, [create a payment](https://docs.monei.com/apis/rest/payments-create/.md) with this token to skip payment form. Keep in mind that the customer will still need to complete 3d secure verification. note MONEI will not return **paymentToken** in the HTTP POST request to the **callbackUrl** for security reasons. You have to call [get payment](https://docs.monei.com/apis/rest/payments-get/.md) endpoint to retrieve the token. Generated **paymentToken** does not expire and should only be used **server-side**. --- # Send cardholder name note Strong CustomerAuthentication and PSD2 normative requires cardholder name to be sent for each transaction. You can send cardholder name when you are confirming your payment on the client or on the server. ### Confirm the payment (monei.js) `Client-side`[​](#confirm-the-payment-moneijs-client-side "Direct link to confirm-the-payment-moneijs-client-side") client.js ``` // Confirm the payment function moneiTokenHandler(token) { return monei .confirmPayment({ paymentId: '{{payment_id}}', paymentToken: token, paymentMethod: {card: {cardholderName: 'JOHN DOE'}} }) .then(function (result) { // At this moment you can show a customer the payment result // But you should always rely on the result passed to the callback endpoint on your server // to update the order status console.log(result); }) .catch(function (error) { console.log(error); }); } ``` ### Confirm the payment (html form) `Client-side`[​](#confirm-the-payment-html-form-client-side "Direct link to confirm-the-payment-html-form-client-side") checkout.html ```
``` ### Confirm the payment `Server-side`[​](#confirm-the-payment-server-side "Direct link to confirm-the-payment-server-side") * cURL * Node.js * PHP POST https\://api.monei.com/v1/payments/{id}/confirm ``` curl --request POST 'https://api.monei.com/v1/payments/832b77d1a4b372349a7ae0bb1b2af059/confirm' \ --header 'Authorization: pk_test_3c140607778e1217f56ccb8b50540e00' \ --header 'Content-Type: application/json' \ --data-raw '{ "paymentToken": "7cc38b08ff471ccd313ad62b23b9f362b107560b", "paymentMethod": { "card": { "cardholderName": "JOHN DOE" } } }' ``` server.js ``` const {Monei} = require('@monei-js/node-sdk'); const monei = new Monei('pk_test_36cf3e8a15eff3f5be983562ea6b13ec'); monei.payments.confirm('832b77d1a4b372349a7ae0bb1b2af059', { paymentToken: '7cc38b08ff471ccd313ad62b23b9f362b107560b', paymentMethod: { card: { cardholderName: 'JOHN DOE' } } }); ``` server.php ``` $monei = new Monei\MoneiClient('pk_test_36cf3e8a15eff3f5be983562ea6b13ec'); $monei->payments->confirm( '832b77d1a4b372349a7ae0bb1b2af059', [ 'paymentToken' => '7cc38b08ff471ccd313ad62b23b9f362b107560b', 'paymentMethod' => [ 'card' => [ 'cardholderName' => 'JOHN DOE' ] ] ] ]); ``` --- # Verify signature The `MONEI-Signature` header included in each signed request contains a timestamp and one or more signatures. The timestamp is prefixed by `t=`, and each signature is prefixed by a scheme. Schemes start with `v`, followed by an integer. Currently, the only valid live signature scheme is `v1`. ``` MONEI-Signature: t=1492774577,v1=5257a869e7ecebeda32affa62cdca3fa51cad7e77a0e56ff536d0ce8e108d8bd ``` MONEI generates signatures using a hash-based message authentication code ([HMAC](https://en.wikipedia.org/wiki/HMAC)) with [SHA-256](https://en.wikipedia.org/wiki/SHA-2). To prevent [downgrade attacks](https://en.wikipedia.org/wiki/Downgrade_attack), you should ignore all schemes that are not `v1`. ## Verifying signatures using our official libraries[​](#verifying-signatures-using-our-official-libraries "Direct link to Verifying signatures using our official libraries") Use one of our official libraries to verify signatures. You perform the verification by providing the request payload and the `MONEI-Signature` header. If verification fails, MONEI returns an error. * Node.js * PHP * Python server.js ``` import express from 'express'; import {Monei, PaymentStatus} from '@monei-js/node-sdk'; // Set your api key. Remember to switch to your live api key in production! // See your api key here: https://dashboard.monei.com/settings/api const monei = new Monei('YOUR_API_KEY'); // This example uses Express to receive webhooks const app = express(); // Endpoint to handle MONEI webhooks app.post('/checkout/callback', express.raw({type: 'application/json'}), (req, res) => { const signature = req.headers['MONEI-Signature']; try { // Verify the signature using the raw request body and the header const payment = monei.verifySignature(req.body.toString(), signature); // Optional: Log the received payment status console.log(`Webhook received for Payment ID: ${payment.id}, Status: ${payment.status}`); // Update your order status based on the payment status if (payment.status === PaymentStatus.SUCCEEDED) { // Payment successful - fulfill the order console.log(`Payment ${payment.id} succeeded. Fulfilling order...`); // Update your database, send confirmation email, etc. } else if (payment.status === PaymentStatus.FAILED) { // Payment failed - notify the customer console.log(`Payment ${payment.id} failed. Notifying customer...`); // Log the failure, update your database, etc. } else if (payment.status === PaymentStatus.AUTHORIZED) { // Payment is authorized but not yet captured console.log(`Payment ${payment.id} authorized. Capture if needed.`); // You might want to capture it later using monei.payments.capture() } else if (payment.status === PaymentStatus.CANCELED) { // Payment was canceled by the user or system console.log(`Payment ${payment.id} was canceled.`); // Update your database accordingly } else { // Handle other potential statuses if necessary console.log(`Unhandled payment status: ${payment.status} for Payment ${payment.id}`); } // Acknowledge receipt of the webhook with a 200 OK status res.status(200).json({received: true}); } catch (error) { // Handle signature verification failure console.error('Invalid webhook signature:', error.message); // Respond with 401 Unauthorized if the signature is invalid res.status(401).json({error: 'Invalid signature'}); } }); // Start the server app.listen(3000, () => { console.log(`Server listening on port 3000`); }); ``` server.php ``` verifySignature($rawBody, $signature); // Optional: Log the received payment status error_log('Webhook received for Payment ID: ' . $payment->getId() . ', Status: ' . $payment->getStatus()); // Update your order status based on the payment status if ($payment->getStatus() === PaymentStatus::SUCCEEDED) { // Payment successful - fulfill the order error_log('Payment ' . $payment->getId() . ' succeeded. Fulfilling order...'); // Update your database, send confirmation email, etc. } else if ($payment->getStatus() === PaymentStatus::FAILED) { // Payment failed - notify the customer error_log('Payment ' . $payment->getId() . ' failed. Notifying customer...'); // Log the failure, update your database, etc. } else if ($payment->getStatus() === PaymentStatus::AUTHORIZED) { // Payment is authorized but not yet captured error_log('Payment ' . $payment->getId() . ' authorized. Capture if needed.'); // You can capture it later using $monei->payments->capture(...) } else if ($payment->getStatus() === PaymentStatus::CANCELED) { // Payment was canceled error_log('Payment ' . $payment->getId() . ' was canceled.'); // Update your database accordingly } else { // Handle other potential statuses if necessary error_log('Unhandled payment status: ' . $payment->getStatus() . ' for Payment ' . $payment->getId()); } // Acknowledge receipt of the webhook with a 200 OK status http_response_code(200); header('Content-Type: application/json'); // Ensure JSON header echo json_encode(['received' => true]); } catch (ApiException $e) { // Handle signature verification failure (ApiException specifically) error_log('Invalid webhook signature: ' . $e->getMessage()); http_response_code(401); // Respond with 401 Unauthorized header('Content-Type: application/json'); // Ensure JSON header echo json_encode(['error' => 'Invalid signature']); exit(); // Stop script execution after sending error response } catch (Exception $e) { // Handle any other unexpected errors during processing error_log('Webhook processing error: ' . $e->getMessage()); http_response_code(500); // Respond with 500 Internal Server Error header('Content-Type: application/json'); echo json_encode(['error' => 'Internal server error']); exit(); } ?> ``` server.py ``` import os import Monei from Monei.errors import SignatureVerificationError from flask import Flask, request, abort, jsonify # Replace YOUR_API_KEY with your actual MONEI API key monei_client = Monei.MoneiClient(api_key="YOUR_API_KEY") app = Flask(__name__) # Update route and function name @app.route('/checkout/callback', methods=['POST']) def callback(): signature = request.headers.get('MONEI-Signature') # Use correct header key # Check if signature header exists (optional but good practice) if not signature: print("MONEI-Signature header missing") return jsonify({'error': 'Missing MONEI-Signature header'}), 400 try: # Verify the signature using raw request data (bytes) payment = monei_client.verify_signature(request.data, signature) # Optional: Log the received payment status payment_id = payment.get('id') payment_status = payment.get('status') print(f"Webhook received for Payment ID: {payment_id}, Status: {payment_status}") # Update your order status based on the payment status if payment_status == 'SUCCEEDED': # Payment successful - fulfill the order print(f"Payment {payment_id} succeeded. Fulfilling order...") # Update your database, send confirmation email, etc. pass # Placeholder from user snippet elif payment_status == 'FAILED': # Payment failed - notify the customer print(f"Payment {payment_id} failed. Notifying customer...") # Log the failure, update your database, etc. pass # Placeholder from user snippet elif payment_status == 'AUTHORIZED': # Payment is authorized but not yet captured print(f"Payment {payment_id} authorized. Capture if needed.") # You can capture it later pass # Placeholder from user snippet elif payment_status == 'CANCELED': # Payment was canceled print(f"Payment {payment_id} was canceled.") pass # Placeholder from user snippet else: print(f"Unhandled payment status: {payment_status} for Payment {payment_id}") # Acknowledge receipt of the webhook return jsonify({'received': True}), 200 except SignatureVerificationError as e: # Catch specific signature error print(f"Invalid webhook signature: {e}") # Return 401 Unauthorized as requested return jsonify({'error': 'Invalid signature'}), 401 except Exception as e: # Catch other potential errors during processing print(f"Webhook processing error: {e}") # Return 500 Internal Server Error for other issues return jsonify({'error': 'Internal server error'}), 500 if __name__ == '__main__': app.run(port=3000) ``` ## Verifying signatures manually[​](#verifying-signatures-manually "Direct link to Verifying signatures manually") ### Step 1: Extract the timestamp and the signature from the header[​](#step-1-extract-the-timestamp-and-the-signature-from-the-header "Direct link to Step 1: Extract the timestamp and the signature from the header") Split the header, using the `,` character as the separator, to get a list of elements. Then split each element, using the `=` character as the separator, to get a prefix and value pair. The value for the prefix `t` corresponds to the timestamp, and `v1` corresponds to the signature (or signatures). You can discard all other elements. ### Step 2: Prepare the `signed_payload` string[​](#step-2-prepare-the-signed_payload-string "Direct link to step-2-prepare-the-signed_payload-string") The `signed_payload` string is created by concatenating: * The timestamp (as a string) * The character `.` * The actual JSON payload (i.e., the request body) ### Step 3: Determine the expected signature[​](#step-3-determine-the-expected-signature "Direct link to Step 3: Determine the expected signature") Compute an HMAC with the SHA256 hash function. Use your account's API Key as the key, and use the `signed_payload` string as the message. You can get your accounts password in [MONEI Dashboard → Settings → API](https://dashboard.monei.com/settings/api). ### Step 4: Compare the signatures[​](#step-4-compare-the-signatures "Direct link to Step 4: Compare the signatures") Compare the signature in the header to the expected signature. For an equality match, compute the difference between the current timestamp and the received timestamp, then decide if the difference is within your tolerance. To protect against timing attacks, use a constant-time string comparison to compare the expected signature to the received signature. --- # Channex [Channex](https://channex.io/) is a channel management system that integrates with the same MONEI tokenization endpoint. Unlike Siteminder, Channex returns a JSON response with the booking data and MONEI payment tokens. ## Request[​](#request "Direct link to Request") **Endpoint:** `POST https://api.monei.com/v1/partner/tokens` ``` { "accountId": "", "sessionId": "", "channelManagerType": "CHANNEX", "channexId": "", "propertyId": "" } ``` ### Parameters[​](#parameters "Direct link to Parameters") | Parameter | Type | Required | Description | | -------------------- | ------ | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `accountId` | String | Yes | Your MONEI account ID (UUID) — the account the payment will be transferred to | | `sessionId` | String | Yes | UUID identifying the session | | `channelManagerType` | String | Yes | Must be `CHANNEX` | | `channexId` | String | Yes | Your [Channex API key](https://docs.channex.io/application-documentation/api-key-access) | | `propertyId` | String | No | Filter by property ID. If omitted, returns all [Booking Revision Feed](https://docs.channex.io/api-v.1-documentation/bookings-collection#booking-revisions-feed) entries. | ## Response[​](#response "Direct link to Response") ``` [ { "paymentToken": "b27b97a729ab9cefa8765eccf25d636b13f887cc", "expireAt": 2678401, "paymentMethod": { "method": "card", "card": { "country": "US", "last4": "8164", "bank": "Wex Bank", "bin": "53463306", "cardholderName": "Joan Sanfeliu", "expiration": 1767225600, "type": "credit", "brand": "mastercard" } }, "attributes": { "id": "cbc57822-912c-4663-a9e5-3930b7539958", "meta": { "ruid": "Ykc2RlIyh9YUA66gHNu0pFCmOkmrTcr9qWngFe1gY4xjUlSmD+RVGXDjWrLMNL75u7DwI7i7eM9Vu047Nzj/TuNw+WkXmHOFc=" }, "status": "new", "currency": "GBP", "amount": "615.00" } } ] ``` ### Response Fields[​](#response-fields "Direct link to Response Fields") | Field | Description | | ----------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | | `paymentToken` | MONEI token for the booking's card. Use in [payment creation](https://docs.monei.com/apis/rest/payments-create/.md) instead of raw card data. | | `expireAt` | Token expiration (Unix timestamp) | | `paymentMethod.card.country` | Card issuing country | | `paymentMethod.card.last4` | Last four digits of the card number | | `paymentMethod.card.bank` | Issuing bank name | | `paymentMethod.card.bin` | Bank identification number | | `paymentMethod.card.cardholderName` | Name of the cardholder | | `paymentMethod.card.expiration` | Card expiration date (Unix timestamp) | | `paymentMethod.card.type` | Card type (e.g. `credit`, `debit`) | | `paymentMethod.card.brand` | Card network (e.g. `mastercard`, `visa`) | | `attributes` | Full Channex booking data (without exposed card numbers) | --- # Hotels Channel Managers MONEI integrates with hotel channel managers to securely tokenize payment card information from booking reservations. Card data is received, tokenized, and tokens are returned for secure payment processing — your system never handles raw card numbers. ## How It Works[​](#how-it-works "Direct link to How It Works") 1. Your **backend** sends a tokenization request specifying the channel manager 2. MONEI retrieves card information from the channel manager as a **PCI-compliant** intermediary 3. Card data is **tokenized** — raw card numbers are never exposed to your system 4. Tokens are returned for use in [payment creation](https://docs.monei.com/apis/rest/payments-create/.md) ## Authentication[​](#authentication "Direct link to Authentication") Add your [MONEI API Key](https://dashboard.monei.com/settings/api) to the request header: ``` Authorization: YOUR_API_KEY ``` ## Endpoint[​](#endpoint "Direct link to Endpoint") **URL:** `https://api.monei.com/v1/partner/tokens` **Method:** `POST` ## Common Parameters[​](#common-parameters "Direct link to Common Parameters") | Parameter | Type | Required | Description | | -------------------- | ------ | -------- | ------------------------------ | | `accountId` | String | Yes | Your MONEI account ID (UUID) | | `sessionId` | String | Yes | A UUID identifying the session | | `channelManagerType` | String | Yes | `SITEMINDER` or `CHANNEX` | Additional parameters vary by channel manager — see the specific integration guides below. ## Test Mode[​](#test-mode "Direct link to Test Mode") Enable **test mode** in your [MONEI dashboard](https://dashboard.monei.com/) to use Siteminder and Channex preprod URLs during development. ## Supported Channel Managers[​](#supported-channel-managers "Direct link to Supported Channel Managers") | Channel Manager | Response Format | Documentation | | ----------------------------------------- | --------------- | ----------------------------------------------------------------- | | [Siteminder](https://www.siteminder.com/) | XML (SOAP) | [Integration guide](https://docs.monei.com/hotels/siteminder/.md) | | [Channex](https://channex.io/) | JSON | [Integration guide](https://docs.monei.com/hotels/channex/.md) | ## Before You Begin[​](#before-you-begin "Direct link to Before You Begin") 1. Create a [MONEI account](https://dashboard.monei.com/register). 2. Get your [MONEI API Key](https://dashboard.monei.com/settings/api). 3. See the [Siteminder](https://docs.monei.com/hotels/siteminder/.md) or [Channex](https://docs.monei.com/hotels/channex/.md) integration guide for channel-specific setup. --- # Siteminder [Siteminder](https://www.siteminder.com/) is a widely used channel management system. MONEI acts as a [proxy for Siteminder](https://siteminder.atlassian.net/wiki/spaces/PMSXCHANGEV2/pages/1875838050/PMS+Tokenization+in+SiteMinder), returning the same response you'd get from Siteminder directly, with an additional `` field containing the payment token. ## Request[​](#request "Direct link to Request") **Endpoint:** `POST https://api.monei.com/v1/partner/tokens` ``` { "accountId": "", "hotelCode": "", "sessionId": "", "channelManagerType": "SITEMINDER", "siteminderName": "", "username": "", "password": "", "echoToken": "" } ``` ### Parameters[​](#parameters "Direct link to Parameters") | Parameter | Type | Required | Description | | -------------------- | ------ | -------- | ----------------------------------------------------------------------------- | | `accountId` | String | Yes | Your MONEI account ID (UUID) — the account the payment will be transferred to | | `hotelCode` | String | Yes | Hotel identifier — provided by Siteminder | | `sessionId` | String | Yes | UUID identifying the session | | `channelManagerType` | String | Yes | Must be `SITEMINDER` | | `siteminderName` | String | Yes | Your Siteminder account name | | `username` | String | Yes | Authentication username — provided by Siteminder | | `password` | String | Yes | Authentication password — provided by Siteminder | | `echoToken` | String | Yes | UUID for request tracking — returned as `EchoToken` in the response | ## Response[​](#response "Direct link to Response") The response is a SOAP XML envelope matching the standard Siteminder format, with the `` element added inside each reservation: ``` 298b7c3bc2951ca0513e0e07d495b33ddf29d7ae 1843430400 credit 4414 MC Joan Sanfeliu ``` ### MoneiResponse Fields[​](#moneiresponse-fields "Direct link to MoneiResponse Fields") | Field | Description | | ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | | `payment_token` | MONEI token for the booking's card. Use in [payment creation](https://docs.monei.com/apis/rest/payments-create/.md) instead of raw card data. | | `expiration` | Token expiration date (Unix timestamp) | | `type` | Payment method type (e.g. `credit`) | | `last4` | Last four digits of the card number | | `brand` | Card network (e.g. `MC` for Mastercard, `VISA`) | | `cardHolderName` | Name of the cardholder | --- # Build a custom checkout Build your own custom checkout experience using [MONEI Components](https://docs.monei.com/monei-js/overview/.md) to securely collect payment details for various methods directly on your site. ![MONEI Payments Demo](/assets/images/custom-checkout-demo-eee8eb56f146ccd3e664abc174a19e75.png) [](https://payments-demo.monei.com) [Live demo](https://payments-demo.monei.com) [Source code](https://github.com/MONEI/monei-payments-demo) **MONEI Components Key Features:** * Securely collect payment details via iframes hosted by MONEI. * Generate a one-time `paymentToken` for secure server-side processing. * Available for plain JavaScript, React, Vue, Angular, and Svelte. * Support styling, language customization, and multiple payment methods. * Helps meet PCI DSS compliance requirements as sensitive data doesn't touch your server. ## Before You Begin[​](#before-you-begin "Direct link to Before You Begin") * This guide covers integrating various payment method Components. If you prefer a simpler, no-code solution, consider the [Prebuilt Payment Page](https://docs.monei.com/integrations/use-prebuilt-payment-page/.md). * You'll need a MONEI account and your API keys (test or live). Find them in your [MONEI Dashboard](https://dashboard.monei.com/settings/api). * Use your [test mode keys](https://docs.monei.com/testing/.md) for integration testing. * Ensure relevant payment methods are enabled in your account settings. * You can monitor test payments in your [MONEI Dashboard → Payments](https://dashboard.monei.com/payments) (ensure Test Mode is active). ## How It Works[​](#how-it-works "Direct link to How It Works") 1. Your **backend** creates a payment via the MONEI API and receives a `payment.id` 2. The **payment.id** is passed to your client-side checkout page 3. The customer enters payment details in a MONEI Component (secure iframe) 4. `monei.confirmPayment()` sends the tokenized details to MONEI, which handles 3D Secure if needed 5. MONEI sends the final payment status to your **backend** via webhook ## Integration Steps[​](#integration-steps "Direct link to Integration Steps") ### 1. Create Payment (Server-side)[​](#1-create-payment-server-side "Direct link to 1. Create Payment (Server-side)") Create a [Payment](https://docs.monei.com/apis/rest/schemas/payment/.md) on your server with an amount and currency. Always decide the amount on the server side. * cURL * Node.js * PHP * Python POST https\://api.monei.com/v1/payments ``` curl --request POST 'https://api.monei.com/v1/payments' \ --header 'Authorization: YOUR_API_KEY' \ --header 'Content-Type: application/json' \ --data-raw '{ "amount": 110, "currency": "EUR", "orderId": "14379133960355", "description": "Test Shop - #14379133960355", "customer": { "email": "email@example.com" }, "callbackUrl": "https://example.com/checkout/callback" }' ``` (Replace `YOUR_API_KEY` with your actual MONEI API key) server.js ``` import {Monei} from '@monei-js/node-sdk'; // Replace YOUR_API_KEY with your actual MONEI API key const monei = new Monei('YOUR_API_KEY'); const payment = await monei.payments.create({ amount: 110, currency: 'EUR', orderId: '14379133960355', description: 'Test Shop - #14379133960355', customer: { email: 'email@example.com' }, callbackUrl: 'https://example.com/checkout/callback' }); // Pass payment.id to your client-side const paymentId = payment.id; ``` server.php ``` payments->create( new CreatePaymentRequest([ 'amount' => 110, 'currency' => 'EUR', 'order_id' => '14379133960355', 'description' => 'Test Shop - #14379133960355', 'customer' => new PaymentCustomer([ 'email' => 'email@example.com' ]), 'callback_url' => 'https://example.com/checkout/callback' ]) ); // Pass payment ID to your client-side $paymentId = $payment->getId(); ?> ``` server.py ``` import Monei from Monei import CreatePaymentRequest, PaymentCustomer # Replace YOUR_API_KEY with your actual MONEI API key monei = Monei.MoneiClient(api_key="YOUR_API_KEY") payment = monei.payments.create( CreatePaymentRequest( amount=110, currency="EUR", order_id="14379133960355", description="Test Shop - #14379133960355", customer=PaymentCustomer( email="email@example.com" ), callback_url="https://example.com/checkout/callback" ) ) # Pass payment ID to your client-side payment_id = payment.id ``` **Key Parameters:** * **amount** `positive integer`: Amount in the smallest currency unit. * **currency** `string`: Three-letter ISO currency code. * **orderId** `string`: Your unique order identifier. * **callbackUrl** `string`: Your server endpoint for webhook notifications. Check all available [request parameters](https://docs.monei.com/apis/rest/payments-create/.md). The response contains `payment.id`. Pass this securely to your client-side for the next step. ### 2. Add Component to your payment page (Client-side)[​](#2-add-component-to-your-payment-page-client-side "Direct link to 2. Add Component to your payment page (Client-side)") Include `monei.js` on your checkout page by adding the script tag to the `head` of your HTML file. checkout.html ``` Checkout
``` Create an empty DOM node (container) with a unique ID in your checkout page. Then, initialize the Component: client.js ``` // Get paymentId passed securely from your server const paymentId = '{{payment_id}}'; // Replace with actual paymentId // Create an instance of the Card Input Component using the paymentId. const cardElement = monei.CardInput({ paymentId: paymentId // You can add other options like style, onFocus, onChange here // See MONEI Components reference for details }); // Render the Component into the container cardElement.render('#card-element'); // Next step: Confirm the payment (see below) ``` Alternative: initialize with Account ID You can also initialize CardInput with `accountId` + `sessionId` instead of `paymentId` to generate a token **before** creating the payment. This is useful for [express checkout with shipping](https://docs.monei.com/integrations/express-checkout/.md) or [subscription activation](https://docs.monei.com/subscriptions/build-custom-checkout/.md). ``` const cardElement = monei.CardInput({ accountId: 'YOUR_ACCOUNT_ID', sessionId: 'unique_session_id' }); ``` When using this approach, pass the same `sessionId` when creating the payment server-side. See the [MONEI Components reference](https://docs.monei.com/monei-js/reference/.md) for details. ### 3. Confirm the payment (Client-side)[​](#3-confirm-the-payment-client-side "Direct link to 3. Confirm the payment (Client-side)") To complete the payment, you need to confirm it using the `monei.confirmPayment` function. You need to provide the `paymentId` (obtained in Step 1) and a `paymentToken` generated with the Component. client.js ``` // Assumes cardElement is the initialized CardInput component from Step 2 // Function to submit the card input and confirm the payment async function handlePayment() { try { // Generate a payment token from the card input const {token, error} = await cardElement.submit(); if (error) { // Inform the user if there was an error. console.error('Submit error:', error); return; } // Confirm the payment with the generated token const result = await monei.confirmPayment({ paymentId: paymentId, paymentToken: token }); // At this moment you can show a customer the payment result (e.g., redirect) // But you should ALWAYS rely on the result passed to the callback endpoint // on your server (Step 4) to update the final order status. console.log('Payment status (client-side):', result.status); // Example: window.location.href = '/thank-you?paymentId=' + paymentId; } catch (error) { console.error(error); } } // You would typically call handlePayment() when the user clicks your pay button. // Example: document.getElementById('your-pay-button').addEventListener('click', handlePayment); ``` After you confirm the payment, MONEI handles any necessary steps like 3D Secure authentication. Alternative Flow As an alternative process, you can submit the generated `paymentToken` to your server and then [confirm the payment server-side](https://docs.monei.com/apis/rest/payments-confirm/.md). ### 4. Process Webhook Notification (Server-side)[​](#4-process-webhook-notification-server-side "Direct link to 4. Process Webhook Notification (Server-side)") After the client-side interaction and any necessary background processing (like 3D Secure or bank authorization), MONEI sends the final, authoritative payment status via an asynchronous HTTP POST request to the `callbackUrl` you provided in Step 1. The request body contains the full [Payment object](https://docs.monei.com/apis/rest/schemas/payment/.md) in JSON format. This webhook is the **only reliable way** to confirm the definitive payment outcome. **Crucially, you must:** 1. **Verify the `MONEI-Signature` header** included in the request. This confirms the webhook genuinely came from MONEI. See the [Verify Signatures guide](https://docs.monei.com/guides/verify-signature/.md) for implementation details. 2. **Return a `200 OK` HTTP status code** immediately upon receiving the webhook to acknowledge receipt. Any other status code tells MONEI the notification failed. If MONEI doesn't receive a `200 OK`, it will retry sending the webhook. Once the signature is verified, inspect the `status` field in the Payment object (`SUCCEEDED`, `FAILED`, `CANCELED`, etc.) to determine whether to fulfill the order or handle the failure. ## Before you go live[​](#before-you-go-live "Direct link to Before you go live") * Make sure you are using [live (production) mode](https://docs.monei.com/testing/.md) Account ID and API Key. * Make sure you have a [payment method configured and enabled](https://dashboard.monei.com/settings/payment-methods) in live mode. --- # Express Checkout Express checkout lets you collect shipping and billing addresses directly from Apple Pay, Google Pay, or PayPal wallet UIs — no separate address form needed. Available on [`PaymentRequest`](https://docs.monei.com/monei-js/reference/.md#paymentrequest-component) (Apple Pay / Google Pay) and [`PayPal`](https://docs.monei.com/monei-js/reference/.md#paypal-component) components. ## Before you begin[​](#before-you-begin "Direct link to Before you begin") * You'll need a MONEI account and your API keys (test or live). Find them in your [MONEI Dashboard](https://dashboard.monei.com/settings/api). * Use your [test mode keys](https://docs.monei.com/testing/.md) for integration testing. * Apple Pay requires [domain verification](https://docs.monei.com/payment-methods/apple-pay/.md#register-your-domain-with-apple-pay) in both development and production. * Google Pay requires at least one configured [card processor](https://dashboard.monei.com/settings/payment-methods/card). * PayPal requires a connected [PayPal business account](https://dashboard.monei.com/settings/payment-methods). ## How It Works[​](#how-it-works "Direct link to How It Works") 1. The **browser** opens the wallet UI (Apple Pay, Google Pay, or PayPal) with your account ID and initial amount 2. The customer selects shipping/billing options — your callbacks update amounts dynamically 3. After approval, the **token and details** are sent to your backend 4. Your **backend** creates the payment with the token — no pre-created payment needed 5. MONEI sends the final payment status via webhook ## Express checkout with shipping[​](#express-checkout-with-shipping "Direct link to Express checkout with shipping") With shipping, the wallet-authorized amount may differ from the initial amount when shipping costs change. This flow uses the **accountId** approach — no pre-created payment needed. The payment is created server-side after the customer confirms in the wallet UI. ### 1. Include monei.js (Client-side)[​](#1-include-moneijs-client-side "Direct link to 1. Include monei.js (Client-side)") Add the script tag to the `head` of your HTML file. checkout.html ```
``` ### 2. Initialize Component with express checkout (Client-side)[​](#2-initialize-component-with-express-checkout-client-side "Direct link to 2. Initialize Component with express checkout (Client-side)") * Apple Pay / Google Pay * PayPal client.js ``` const paymentRequest = monei.PaymentRequest({ accountId: 'your_account_id', sessionId: 'unique_session_id', amount: 1099, // base amount in minor units (before shipping) currency: 'EUR', requestShipping: true, requestBilling: true, shippingOptions: [ {id: 'standard', label: 'Standard Shipping', amount: 500}, {id: 'express', label: 'Express Shipping', amount: 1200, description: '1-2 business days'} ], onShippingAddressChange(address) { // Called when the customer changes their shipping address. // address contains: country, city, state, zip (no street-level data mid-flow). // Return updated shipping options and/or amount based on the address. if (address.country !== 'ES') { return { shippingOptions: [{id: 'intl', label: 'International', amount: 2000}], amount: 3099 // product (1099) + intl shipping (2000) }; } return {shippingOptions: [{id: 'standard', label: 'Standard', amount: 500}], amount: 1599}; }, onShippingOptionChange(option) { // Called when the customer selects a different shipping option. // Return updated total amount. return {amount: 1099 + option.amount}; }, async onSubmit(result) { // Called when the customer approves the payment in the wallet UI. // Create the payment server-side (see Step 3). await fetch('/create-payment', { method: 'POST', headers: {'Content-Type': 'application/json'}, body: JSON.stringify({ amount: result.finalAmount, currency: 'EUR', sessionId: 'unique_session_id', paymentToken: result.token, billingDetails: result.billingDetails, shippingDetails: result.shippingDetails }) }); }, onError(error) { console.error(error); } }); paymentRequest.render('#payment_request'); ``` client.js ``` const paypal = monei.PayPal({ accountId: 'your_account_id', sessionId: 'unique_session_id', amount: 1099, currency: 'EUR', requestShipping: true, shippingOptions: [ {id: 'standard', label: 'Standard Shipping', amount: 500, selected: true}, {id: 'express', label: 'Express Shipping', amount: 1200} ], onShippingAddressChange(address) { return { shippingOptions: [{id: 'standard', label: 'Standard', amount: 500, selected: true}], amount: 1599 }; }, onShippingOptionChange(option) { return {amount: 1099 + option.amount}; }, async onSubmit(result) { // PayPal always returns payer info (name, email) in billingDetails. // Create the payment server-side (see Step 3). await fetch('/create-payment', { method: 'POST', headers: {'Content-Type': 'application/json'}, body: JSON.stringify({ amount: result.finalAmount, currency: 'EUR', sessionId: 'unique_session_id', paymentToken: result.token, billingDetails: result.billingDetails, shippingDetails: result.shippingDetails }) }); }, onError(error) { console.error(error); } }); paypal.render('#paypal_container'); ``` note PayPal always returns payer information (name, email) regardless of configuration — there is no separate `requestBilling` prop. **Key options:** * **accountId** `string`: Your MONEI account ID. * **sessionId** `string`: A unique session identifier. Must match the `sessionId` passed when [creating the payment server-side](#3-create-payment-server-side). * **amount** `number`: Initial amount in the smallest currency unit (e.g., 1099 = 10.99 EUR). * **requestShipping** `boolean`: Enable shipping address collection in the wallet UI. * **requestBilling** `boolean`: Enable billing address collection (PaymentRequest only — PayPal always returns billing info). * **shippingOptions** [`ShippingOption[]`](https://docs.monei.com/monei-js/reference/.md#shippingoption): Available shipping options. See [`PaymentRequest` options](https://docs.monei.com/monei-js/reference/.md#paymentrequest-options) and [`PayPal` options](https://docs.monei.com/monei-js/reference/.md#paypal-options) for the full list. ### 3. Create Payment (Server-side)[​](#3-create-payment-server-side "Direct link to 3. Create Payment (Server-side)") When the customer confirms in the wallet UI, your `onSubmit` handler sends the result to your server. Create the payment passing the `paymentToken` — this confirms the payment automatically. important You must pass the same `sessionId` used to initialize the component on the frontend. This ensures the token-generating customer matches the paying customer. * cURL * Node.js * PHP * Python POST https\://api.monei.com/v1/payments ``` curl --request POST 'https://api.monei.com/v1/payments' \ --header 'Authorization: YOUR_API_KEY' \ --header 'Content-Type: application/json' \ --data-raw '{ "amount": 1599, "currency": "EUR", "orderId": "14379133960355", "description": "Test Shop - #14379133960355", "sessionId": "unique_session_id", "paymentToken": "token_from_client", "callbackUrl": "https://example.com/checkout/callback", "customer": { "email": "email@example.com" }, "billingDetails": {}, "shippingDetails": {} }' ``` server.js ``` import {Monei} from '@monei-js/node-sdk'; const monei = new Monei('YOUR_API_KEY'); // In your /create-payment route handler: app.post('/create-payment', async (req, res) => { const {amount, currency, sessionId, paymentToken, billingDetails, shippingDetails} = req.body; const payment = await monei.payments.create({ amount, currency, orderId: '14379133960355', description: 'Test Shop - #14379133960355', sessionId, paymentToken, callbackUrl: 'https://example.com/checkout/callback', customer: {email: billingDetails?.email}, billingDetails, shippingDetails }); res.json({status: payment.status}); }); ``` server.php ``` payments->create( new CreatePaymentRequest([ 'amount' => $body['amount'], 'currency' => $body['currency'], 'order_id' => '14379133960355', 'description' => 'Test Shop - #14379133960355', 'session_id' => $body['sessionId'], 'payment_token' => $body['paymentToken'], 'callback_url' => 'https://example.com/checkout/callback', 'billing_details' => $body['billingDetails'], 'shipping_details' => $body['shippingDetails'] ]) ); echo json_encode(['status' => $payment->getStatus()]); ?> ``` server.py ``` import Monei from Monei import CreatePaymentRequest monei = Monei.MoneiClient(api_key="YOUR_API_KEY") # In your /create-payment route handler: payment = monei.payments.create( CreatePaymentRequest( amount=body["amount"], currency=body["currency"], order_id="14379133960355", description="Test Shop - #14379133960355", session_id=body["sessionId"], payment_token=body["paymentToken"], callback_url="https://example.com/checkout/callback", billing_details=body["billingDetails"], shipping_details=body["shippingDetails"] ) ) ``` Check all available [request parameters](https://docs.monei.com/apis/rest/payments-create/.md). ### 4. Process Webhook Notification (Server-side)[​](#4-process-webhook-notification-server-side "Direct link to 4. Process Webhook Notification (Server-side)") MONEI sends the final payment status via an asynchronous HTTP POST request to the `callbackUrl` you provided in Step 3. The request body contains the full [Payment object](https://docs.monei.com/apis/rest/schemas/payment/.md) in JSON format. This webhook is the **only reliable way** to confirm the definitive payment outcome. 1. **Verify the `MONEI-Signature` header** to confirm the webhook genuinely came from MONEI. See the [Verify Signatures guide](https://docs.monei.com/guides/verify-signature/.md) for implementation details. 2. **Return a `200 OK` HTTP status code** immediately to acknowledge receipt. If MONEI doesn't receive a `200 OK`, it will retry sending the webhook. ## Billing-only checkout[​](#billing-only-checkout "Direct link to Billing-only checkout") If you only need the billing address (no shipping), the flow is simpler — use `paymentId` instead of `accountId` and confirm client-side with `confirmPayment`. Follow the same steps as [Build a custom checkout](https://docs.monei.com/integrations/build-custom-checkout/.md), but add `requestBilling: true` to collect the billing address from the wallet: client.js ``` const paymentRequest = monei.PaymentRequest({ paymentId: '{{payment_id}}', requestBilling: true, async onSubmit(result) { await monei.confirmPayment({ paymentId: '{{payment_id}}', paymentToken: result.token, billingDetails: result.billingDetails }); }, onError(error) { console.error(error); } }); paymentRequest.render('#payment_request'); ``` ## Type reference[​](#type-reference "Direct link to Type reference") See the full type definitions in the [Reference](https://docs.monei.com/monei-js/reference/.md#type-reference): * [`SubmitResult`](https://docs.monei.com/monei-js/reference/.md#submitresult) — returned by all `onSubmit` callbacks * [`ShippingOption`](https://docs.monei.com/monei-js/reference/.md#shippingoption) — shipping option configuration * [`ShippingAddressChangeResult`](https://docs.monei.com/monei-js/reference/.md#shippingaddresschangeresult) — return type for `onShippingAddressChange` * [`ShippingOptionChangeResult`](https://docs.monei.com/monei-js/reference/.md#shippingoptionchangeresult) — return type for `onShippingOptionChange` * [`BillingDetails`](https://docs.monei.com/monei-js/reference/.md#billingdetails) — billing/shipping details * [`Address`](https://docs.monei.com/monei-js/reference/.md#address) — postal address ## Before you go live[​](#before-you-go-live "Direct link to Before you go live") * Make sure you are using [live (production) mode](https://docs.monei.com/testing/.md) Account ID and API Key. * Make sure you have the relevant [payment methods configured and enabled](https://dashboard.monei.com/settings/payment-methods) in live mode. * For Apple Pay, verify your [production domain](https://docs.monei.com/payment-methods/apple-pay/.md#register-your-domain-with-apple-pay). --- # Pay By Link Send your customers a unique link via email, WhatsApp or SMS to pay online in one click! ![Pay By Link](/img/pay-by-link-preview.png) ## Overview[​](#overview "Direct link to Overview") This page explains how to create payment links from the [MONEI Dashboard](#create-from-dashboard) or programmatically using the [MONEI Payments API](#integration-steps). Pay By Link generates a unique URL for a specific payment amount that directs the customer to a secure MONEI-hosted payment page. ## Create from Dashboard[​](#create-from-dashboard "Direct link to Create from Dashboard") You can create payment links directly from the MONEI Dashboard without writing any code. ### 1. Navigate to Payments[​](#1-navigate-to-payments "Direct link to 1. Navigate to Payments") Go to [MONEI Dashboard → Payments](https://dashboard.monei.com/payments) and click the **Pay By Link** button. ![Dashboard Payments](/img/pay-by-link/dashboard-payments.png) ### 2. Fill in the payment form[​](#2-fill-in-the-payment-form "Direct link to 2. Fill in the payment form") Fill in the payment details. Some fields are always required, while others depend on the selected payment methods. Quick Summary * **Always required**: Amount, Allowed payment methods. * **Conditionally required**: Customer email and Billing Address (for specific methods). * **Optional**: Expiration date, Order ID, customer details, description, store, shipping address. | Field | Status | Notes | | --------------------------- | ------------- | ------------------------------------------------------- | | **Amount** | `Required` | Payment amount in your account currency | | **Allowed payment methods** | `Required` | At least one method must be selected | | **Expiration date** | `Optional` | Defaults to 7 days from creation; must be a future date | | **Order ID** | `Optional` | Alphanumeric identifier, max 40 characters | | **Customer name** | `Optional` | | | **Customer email** | `Conditional` | Required when Multibanco or MB WAY is selected | | **Customer phone** | `Optional` | | | **Description** | `Optional` | Custom description attached to the payment | | **Store** | `Optional` | Only visible if you have multiple stores configured | | **Billing Address** | `Conditional` | Required when Multibanco or MB WAY is selected | | **Shipping Address** | `Optional` | Optional, collapsible section | ![Create Payment Form](/img/pay-by-link/create-payment-form.png) #### Conditional behavior by payment method[​](#conditional-behavior-by-payment-method "Direct link to Conditional behavior by payment method") The form adapts automatically based on the selected payment methods. **Billing Address and Customer Email become required** when any of these payment methods is selected: * Multibanco * MB WAY ![Billing Address](/img/pay-by-link/billing-address.png) **Manually capture payment** checkbox appears only when **all** selected payment methods support manual capture: * Card * PayPal * Bizum If any other method is included (e.g. Multibanco), the manual capture option is hidden. ![Manual Capture](/img/pay-by-link/manual-capture.png) ### 3. Review and send the payment link[​](#3-review-and-send-the-payment-link "Direct link to 3. Review and send the payment link") After clicking **Create payment**, a **Send payment request** modal appears where you can review the payment details before sending the link to your customer. ![Send Payment Request](/img/pay-by-link/send-payment-request.png) From this modal you can configure: * **Delivery channel** — Choose how to deliver the link: Email, WhatsApp, SMS, or Payment request. * **Send to** — The recipient's email address or phone number, depending on the selected channel. * **Customer language** — The language for the payment page and notification (English, Español, Català, Português, Deutsch, Italiano, Français). ![Delivery Channel](/img/pay-by-link/delivery-channel.png) ![Customer Language](/img/pay-by-link/customer-language.png) The modal also shows: * A **preview** of the payment notification with order ID, amount, date, and billing details. * A **Permalink** and **Get short link** option to copy the payment URL directly without sending a notification. Click **Send payment request** to deliver the link to the customer through the selected channel. ## API Integration[​](#api-integration "Direct link to API Integration") The following section explains the **API flow** (server-side implementation). ### Before You Begin (API)[​](#before-you-begin-api "Direct link to Before You Begin (API)") * You'll need a MONEI account and your API keys (test or live). Find them in your [MONEI Dashboard](https://dashboard.monei.com/settings/api). * Use your [test mode keys](https://docs.monei.com/testing/.md) for integration testing. * Ensure relevant payment methods are enabled in your account settings for the hosted page. * You can monitor test payments in your [MONEI Dashboard → Payments](https://dashboard.monei.com/payments) (ensure Test Mode is active). ### Integration Steps[​](#integration-steps "Direct link to Integration Steps") Creating and processing a Pay By Link payment via API involves creating a payment on your server, sending the generated link to the customer, and processing the final payment status via webhooks. ### 1. Create Payment (Server-side)[​](#1-create-payment-server-side "Direct link to 1. Create Payment (Server-side)") Create a [Payment](https://docs.monei.com/apis/rest/schemas/payment/.md) on your server with an amount, currency, and optionally customer details. * cURL * Node.js * PHP * Python POST https\://api.monei.com/v1/payments ``` curl --request POST 'https://api.monei.com/v1/payments' \ --header 'Authorization: YOUR_API_KEY' \ --header 'Content-Type: application/json' \ --data-raw '{ "amount": 110, "currency": "EUR", "orderId": "14379133960355", "description": "Test Shop - #14379133960355", "customer": { "email": "email@example.com", "phone": "+34666555444" }, "callbackUrl": "https://example.com/checkout/callback", "completeUrl": "https://example.com/checkout/complete", // Optional: Redirect after payment attempt "cancelUrl": "https://example.com/checkout/cancel" // Optional: Redirect if user cancels }' ``` (Replace `YOUR_API_KEY` with your actual MONEI API key) server.js ``` import {Monei} from '@monei-js/node-sdk'; // Replace YOUR_API_KEY with your actual MONEI API key const monei = new Monei('YOUR_API_KEY'); const payment = await monei.payments.create({ amount: 110, currency: 'EUR', orderId: '14379133960355', description: 'Test Shop - #14379133960355', customer: { email: 'email@example.com', phone: '+34666555444' }, callbackUrl: 'https://example.com/checkout/callback', completeUrl: 'https://example.com/checkout/complete', // Optional cancelUrl: 'https://example.com/checkout/cancel' // Optional }); // You will need the paymentId from the response in the next step const paymentId = payment.id; ``` server.php ``` payments->create( new CreatePaymentRequest([ 'amount' => 110, 'currency' => 'EUR', 'order_id' => '14379133960355', 'description' => 'Test Shop - #14379133960355', 'customer' => new PaymentCustomer([ 'email' => 'email@example.com', 'phone' => '+34666555444' ]), 'callback_url' => 'https://example.com/checkout/callback', 'complete_url' => 'https://example.com/checkout/complete', // Optional 'cancel_url' => 'https://example.com/checkout/cancel' // Optional ]) ); // You will need the paymentId from the response in the next step $paymentId = $payment->getId(); ?> ``` server.py ``` import Monei from Monei import CreatePaymentRequest, PaymentCustomer # Replace YOUR_API_KEY with your actual MONEI API key monei = Monei.MoneiClient(api_key="YOUR_API_KEY") payment = monei.payments.create( CreatePaymentRequest( amount=110, currency="EUR", order_id="14379133960355", description="Test Shop - #14379133960355", customer=PaymentCustomer( email="email@example.com", phone="+34666555444" ), callback_url="https://example.com/checkout/callback", complete_url="https://example.com/checkout/complete", // Optional cancel_url="https://example.com/checkout/cancel" // Optional ) ) // You will need the paymentId from the response in the next step payment_id = payment.id ``` **Key Parameters:** * **amount** `positive integer`: Amount in the smallest currency unit. * **currency** `string`: Three-letter ISO currency code. * **orderId** `string`: Your unique order identifier. * **customer.email** / **customer.phone** `string`: At least one is required if you want MONEI to send the link automatically (Step 2). * **callbackUrl** `string`: Your server endpoint for webhook notifications (crucial for final status). * **completeUrl** / **cancelUrl** `string` (Optional): URLs for redirecting the customer after interaction. Check all available [request parameters](https://docs.monei.com/apis/rest/payments-create/.md). The response contains the `payment.id`, needed for the next step. ### 2. Send Link & Handle Interaction (Server-side / Client-side)[​](#2-send-link--handle-interaction-server-side--client-side "Direct link to 2. Send Link & Handle Interaction (Server-side / Client-side)") You have two main options to get the link to the customer: **Option A: MONEI Sends the Link (Recommended for Simplicity)** Make a POST request to the `/v1/payments/{payment_id}/link` endpoint. If you provided `customer.email` or `customer.phone` in Step 1, MONEI will automatically send the link via the appropriate channel (email, WhatsApp, or SMS). * cURL * Node.js * PHP * Python POST https\://api.monei.com/v1/payments/{payment\_id}/link ``` curl --request POST 'https://api.monei.com/v1/payments/{payment_id}/link' \ --header 'Authorization: YOUR_API_KEY' \ --header 'Content-Type: application/json' \ --data-raw '{ "language": "es", // Optional: Set language for email/SMS template "channel": "email" // Optional: Force channel (email, whatsapp, sms) }' ``` (Replace `{payment_id}` and `YOUR_API_KEY`) server.js ``` // Assumes paymentId is obtained from the previous step await monei.payments.sendLink(paymentId, { language: 'es', // Optional channel: 'email' // Optional }); ``` server.php ``` payments->sendLink($paymentId, [ 'language' => 'es', // Optional 'channel' => 'email' // Optional ]); ?> ``` server.py ``` # Assumes payment_id is obtained from the previous step monei.payments.sendLink(payment_id, language='es', channel='email') # Optional params ``` **Option B: You Send the Link** The [Payment object](https://docs.monei.com/apis/rest/schemas/payment/.md) returned in Step 1 contains `payment.nextAction.redirectUrl`. This is the payment link. Example Partial Response from Step 1 ``` { "id": "af6029f80f5fc73a8ad2753eea0b1be0", // ... other fields ... "nextAction": { "type": "CONFIRM", "mustRedirect": true, "redirectUrl": "https://secure.monei.com/payments/af6029f80f5fc73a8ad2753eea0b1be0" // <-- This is the Pay By Link URL } } ``` You can take this `redirectUrl` and send it to your customer through your own communication channels (email, SMS, in-app message, etc.). **Customer Interaction:** 1. The customer clicks the link. 2. They are taken to the secure MONEI payment page. 3. They choose a payment method, enter details, and complete any required authentication (like 3D Secure). 4. After attempting payment or cancelling, they might be redirected to your `completeUrl` or `cancelUrl` if you provided them in Step 1. ### 3. Process Webhook Notification (Server-side)[​](#3-process-webhook-notification-server-side "Direct link to 3. Process Webhook Notification (Server-side)") Regardless of whether the customer is redirected, MONEI sends the final, authoritative payment status via an asynchronous HTTP POST request to the `callbackUrl` you provided in Step 1. The request body contains the full [Payment object](https://docs.monei.com/apis/rest/schemas/payment/.md) in JSON format. This webhook is the **only reliable way** to confirm the definitive payment outcome. **Crucially, you must:** 1. **Verify the `MONEI-Signature` header** included in the request. This confirms the webhook genuinely came from MONEI. See the [Verify Signatures guide](https://docs.monei.com/guides/verify-signature/.md) for implementation details. 2. **Return a `200 OK` HTTP status code** immediately upon receiving the webhook to acknowledge receipt. Any other status code tells MONEI the notification failed. If MONEI doesn't receive a `200 OK`, it will retry sending the webhook. Once the signature is verified, inspect the `status` field in the Payment object (`SUCCEEDED`, `FAILED`, `CANCELED`, etc.) to determine whether to fulfill the order or handle the failure. --- # Use payment modal MONEI Payment Modal is the simplest way to securely collect payments from your customers without them leaving your website. ![MONEI Payment Modal preview](/assets/images/payment-modal-cbb30083effbd94b0d01dfdd45e6d94d.png) Collecting payments on your website consists of creating a payment object, and confirming the payment. important Apple Pay is not available when using MONEI Payment Modal integration. ## Before You Begin[​](#before-you-begin "Direct link to Before You Begin") * You'll need a MONEI account and your API keys (test or live). Find them in your [MONEI Dashboard](https://dashboard.monei.com/settings/api). * Use your [test mode keys](https://docs.monei.com/testing/.md) for integration testing. * Ensure relevant payment methods are enabled in your account settings. * You can monitor test payments in your [MONEI Dashboard → Payments](https://dashboard.monei.com/payments) (ensure Test Mode is active). ## How It Works[​](#how-it-works "Direct link to How It Works") 1. Your **backend** creates a payment and receives a `payment.id` 2. The **payment.id** is passed to your client-side page 3. Calling `monei.confirmPayment()` opens a **modal popup** where the customer pays (including 3D Secure if required) 4. MONEI sends the final payment status to your **backend** via webhook ## Integration Steps[​](#integration-steps "Direct link to Integration Steps") ### 1. Create Payment (Server-side)[​](#1-create-payment-server-side "Direct link to 1. Create Payment (Server-side)") Create a [Payment](https://docs.monei.com/apis/rest/schemas/payment/.md) on your server with an amount and currency. Always decide how much to charge on the server side, a trusted environment, as opposed to the client. This prevents malicious customers from being able to choose their own prices. * cURL * Node.js * PHP * Python POST https\://api.monei.com/v1/payments ``` curl --request POST 'https://api.monei.com/v1/payments' \ --header 'Authorization: YOUR_API_KEY' \ --header 'Content-Type: application/json' \ --data-raw '{ "amount": 110, "currency": "EUR", "orderId": "14379133960355", "description": "Test Shop - #14379133960355", "customer": { "email": "email@example.com" }, "callbackUrl": "https://example.com/checkout/callback" }' ``` (Replace `YOUR_API_KEY` with your actual MONEI API key) server.js ``` import {Monei} from '@monei-js/node-sdk'; // Replace YOUR_API_KEY with your actual MONEI API key const monei = new Monei('YOUR_API_KEY'); const payment = await monei.payments.create({ amount: 110, currency: 'EUR', orderId: '14379133960355', description: 'Test Shop - #14379133960355', customer: { email: 'email@example.com' }, callbackUrl: 'https://example.com/checkout/callback' }); // You will need the paymentId from the response in the next step const paymentId = payment.id; ``` server.php ``` payments->create( new CreatePaymentRequest([ 'amount' => 110, 'currency' => 'EUR', 'order_id' => '14379133960355', 'description' => 'Test Shop - #14379133960355', 'customer' => new PaymentCustomer([ 'email' => 'email@example.com' ]), 'callback_url' => 'https://example.com/checkout/callback' ]) ); // You will need the paymentId from the response in the next step $paymentId = $payment->getId(); ?> ``` server.py ``` import Monei from Monei import CreatePaymentRequest, PaymentCustomer # Replace YOUR_API_KEY with your actual MONEI API key monei = Monei.MoneiClient(api_key="YOUR_API_KEY") payment = monei.payments.create( CreatePaymentRequest( amount=110, currency="EUR", order_id="14379133960355", description="Test Shop - #14379133960355", customer=PaymentCustomer( email="email@example.com" ), callback_url="https://example.com/checkout/callback" ) ) # You will need the paymentId from the response in the next step payment_id = payment.id ``` **Key Parameters:** * **amount** `positive integer`: Amount in the smallest currency unit (e.g., 110 for €1.10). * **currency** `string`: Three-letter [ISO currency code](https://en.wikipedia.org/wiki/ISO_4217) (e.g., `EUR`). * **orderId** `string`: Your unique order identifier. * **callbackUrl** `string`: Your server endpoint URL for asynchronous webhook notifications. Check all available [request parameters](https://docs.monei.com/apis/rest/payments-create/.md). Included in the returned Payment object is a payment `id`. You will use this `paymentId` on the client-side in the next step. ### 2. Handle Payment Interaction (Client-side)[​](#2-handle-payment-interaction-client-side "Direct link to 2. Handle Payment Interaction (Client-side)") Use [`monei.js`](https://docs.monei.com/monei-js/reference/.md) to confirm the payment. This will trigger the payment modal pop-up. Include `monei.js` on your checkout page: checkout.html ``` Checkout
``` Use the `paymentId` obtained in Step 1 to call `monei.confirmPayment`. You can also provide additional parameters like `customer.email`. Check all available [parameters](https://docs.monei.com/monei-js/reference/.md#confirmpayment-function). client.js ``` // Get the paymentId passed from your server const paymentId = '{{payment_id}}'; // Replace with the actual paymentId const paymentForm = document.getElementById('payment-form'); const paymentButton = document.getElementById('payment-button'); paymentForm.addEventListener('submit', function (event) { event.preventDefault(); paymentButton.disabled = true; monei .confirmPayment({paymentId: paymentId}) // Pass the paymentId here .then(function (result) { paymentButton.disabled = false; // This result reflects the immediate outcome of the modal interaction (e.g., user closed, initial success). // Always rely on the webhook (Step 3) for the definitive final payment status. console.log('Payment confirmation result:', result); if (result.status === 'SUCCEEDED' || result.status === 'PENDING') { // Optionally, inform the user that payment is processing. handleResult(result); } else { // Handle errors like user cancellation or immediate failures. handleError(result); } }) .catch(function (error) { paymentButton.disabled = false; console.error('Error confirming payment:', error); // Handle network errors or other issues. }); }); function handleResult(result) { // Redirect to a success/pending page or update UI. // Remember: Final confirmation comes via webhook. console.log('Handling result:', result); alert('Payment status: ' + result.status + '. Waiting for final confirmation.'); } function handleError(result) { // Show error message to the user. console.error('Handling error:', result); alert('Payment failed or was cancelled. Status: ' + result.status); } ``` After the form is submitted, MONEI automatically shows a pop-up window with a payment page to collect payment details and handle any necessary 3D Secure confirmation. Alternative: Prebuilt Page If you prefer redirecting the customer instead of using an on-site modal, see the [Prebuilt Payment Page guide](https://docs.monei.com/integrations/use-prebuilt-payment-page/.md). ### 3. Process Webhook Notification (Server-side)[​](#3-process-webhook-notification-server-side "Direct link to 3. Process Webhook Notification (Server-side)") MONEI sends the final, authoritative payment status via an asynchronous HTTP POST request to the `callbackUrl` you provided in Step 1. The request body contains the full [Payment object](https://docs.monei.com/apis/rest/schemas/payment/.md) in JSON format. This webhook ensures you get the definitive status even if the customer closes their browser prematurely. **Crucially, you must:** 1. **Verify the `MONEI-Signature` header** included in the request. This confirms the webhook genuinely came from MONEI. See the [Verify Signatures guide](https://docs.monei.com/guides/verify-signature/.md) for implementation details. 2. **Return a `200 OK` HTTP status code** immediately upon receiving the webhook to acknowledge receipt. Any other status code (including `3xx` redirects) tells MONEI the notification failed. If MONEI doesn't receive a `200 OK`, it will retry sending the webhook multiple times over several days before marking it as failed. Example Webhook Payload (POST to your callbackUrl) ``` { "id": "af6029f80f5fc73a8ad2753eea0b1be0", "amount": 110, "currency": "EUR", "orderId": "14379133960355", "status": "SUCCEEDED", // Or FAILED, CANCELED, EXPIRED etc. "customer": { ... }, // ... other payment details ... "createdAt": 1594215339, "updatedAt": 1594215345 } ``` Once the signature is verified, inspect the `status` field in the Payment object to determine whether to fulfill the order or handle a failure. --- # Use a prebuilt payment page MONEI's Hosted Payment Page offers the simplest, PCI-compliant way to securely collect payments from your customers using various methods. ![Hosted payments preview](/assets/images/payment-page-preview-d18ed094bf6323e0f15ac584d5b656e2.png) [](https://js.monei.com/v2/payment-page/#ewogICJzaG9wTG9nb1VybCI6ICJodHRwczovL21vbmVpLXByb2Qtc2VydmljZS1idWNrZXQuczMuZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20vcHJvdGVjdGVkL2V1LXdlc3QtMTo3NjU5Zjc4ZS1kZDA0LTRiYjItYTE2My1jOWVhYzk3ZmNkMzIvcmMtdXBsb2FkLTE3NDM0MzgxMTU1MjgtMi5zdmciLAogICJhY2NlbnRDb2xvciI6ICIjMDAwMDAwIiwKICAiYW1vdW50IjogMTUwMDAsCiAgImJnQ29sb3IiOiAiI2YwZjRmNSIsCiAgInRlc3QiOiB0cnVlLAogICJwYXltZW50TWV0aG9kcyI6IFsiYml6dW0iLCAiYXBwbGVQYXkiLCAiZ29vbGdlUGF5IiwgImNsaWNrVG9QYXkiLCAicGF5cGFsIiwgImNhcmQiXSwKICAiYWNjb3VudElkIjogIjI5NzViY2ZhLTdiYmMtNDIyZC1hZjQ4LWM2Njc1OWQ4N2I2OSIsCiAgInBheW1lbnRJZCI6ICI0NDMyMzI5MmJkNzdlNDY1ZWVkMmZkM2E1ZTQ4NjQ5MzA1N2I1OGM2IiwKICAic2hvcE5hbWUiOiAiWkFSQSIKfQo=) [Live demo](https://js.monei.com/v2/payment-page/#ewogICJzaG9wTG9nb1VybCI6ICJodHRwczovL21vbmVpLXByb2Qtc2VydmljZS1idWNrZXQuczMuZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20vcHJvdGVjdGVkL2V1LXdlc3QtMTo3NjU5Zjc4ZS1kZDA0LTRiYjItYTE2My1jOWVhYzk3ZmNkMzIvcmMtdXBsb2FkLTE3NDM0MzgxMTU1MjgtMi5zdmciLAogICJhY2NlbnRDb2xvciI6ICIjMDAwMDAwIiwKICAiYW1vdW50IjogMTUwMDAsCiAgImJnQ29sb3IiOiAiI2YwZjRmNSIsCiAgInRlc3QiOiB0cnVlLAogICJwYXltZW50TWV0aG9kcyI6IFsiYml6dW0iLCAiYXBwbGVQYXkiLCAiZ29vbGdlUGF5IiwgImNsaWNrVG9QYXkiLCAicGF5cGFsIiwgImNhcmQiXSwKICAiYWNjb3VudElkIjogIjI5NzViY2ZhLTdiYmMtNDIyZC1hZjQ4LWM2Njc1OWQ4N2I2OSIsCiAgInBheW1lbnRJZCI6ICI0NDMyMzI5MmJkNzdlNDY1ZWVkMmZkM2E1ZTQ4NjQ5MzA1N2I1OGM2IiwKICAic2hvcE5hbWUiOiAiWkFSQSIKfQo=) **Key Features:** * **Designed to remove friction:** Real-time card validation with built-in error messaging. * **Mobile-ready:** Fully responsive design. * **International:** Supports 13 languages. * **Multiple payment methods:** Supports various [payments methods](https://monei.com/blog/multiple-payment-options/). * **Customization and branding:** Customizable logo, buttons, and background color via your [MONEI Dashboard](https://dashboard.monei.com/settings/branding). * **3D Secure:** Built-in support for SCA verification. * **Fraud and compliance:** Simplified PCI compliance and SCA-ready. You can customize the appearance in your [MONEI Dashboard → Settings → Branding](https://dashboard.monei.com/settings/branding). ## Before You Begin[​](#before-you-begin "Direct link to Before You Begin") * You'll need a MONEI account and your API keys (test or live). Find them in your [MONEI Dashboard](https://dashboard.monei.com/settings/api). * Use your [test mode keys](https://docs.monei.com/testing/.md) for integration testing. * Ensure relevant payment methods are enabled in your account settings. * You can monitor test payments in your [MONEI Dashboard → Payments](https://dashboard.monei.com/payments) (ensure Test Mode is active). ## How It Works[​](#how-it-works "Direct link to How It Works") 1. Your **backend** creates a payment and receives a `redirectUrl` 2. The customer is **redirected** to the MONEI-hosted payment page 3. The customer selects a payment method and completes the payment (including 3D Secure if required) 4. After payment, the customer is redirected back to your `completeUrl` (or `cancelUrl` if cancelled) 5. MONEI sends the **final payment status** to your backend via webhook — always rely on this, not the redirect ## Integration Steps[​](#integration-steps "Direct link to Integration Steps") ### 1. Create Payment (Server-side)[​](#1-create-payment-server-side "Direct link to 1. Create Payment (Server-side)") First, make a server-side API call to create a new [Payment object](https://docs.monei.com/apis/rest/schemas/payment/.md). This registers the payment intent with MONEI. * cURL * Node.js * PHP * Python POST https\://api.monei.com/v1/payments ``` curl --request POST 'https://api.monei.com/v1/payments' \\ --header 'Authorization: YOUR_API_KEY' \\ --header 'Content-Type: application/json' \\ --data-raw '{ "amount": 110, "currency": "EUR", "orderId": "14379133960355", "description": "Test Shop - #14379133960355", "customer": { "name": "John Doe", "email": "email@example.com", "phone": "+34666555444" }, "billingDetails": { "name": "John Doe", "address": { "country": "ES", "city": "Malaga", "line1": "Fake Street 123", "zip": "29001" } }, "callbackUrl": "https://example.com/checkout/callback", "completeUrl": "https://example.com/checkout/complete", "cancelUrl": "https://example.com/checkout/cancel" }' ``` (Replace `YOUR_API_KEY` with your actual MONEI API key) server.js ``` import {Monei} from '@monei-js/node-sdk'; // Replace YOUR_API_KEY with your actual MONEI API key const monei = new Monei('YOUR_API_KEY'); const payment = await monei.payments.create({ amount: 110, currency: 'EUR', orderId: '14379133960355', description: 'Test Shop - #14379133960355', customer: { name: 'John Doe', email: 'email@example.com', phone: '+34666555444' }, billingDetails: { name: 'John Doe', address: { country: 'ES', city: 'Malaga', line1: 'Fake Street 123', zip: '29001' } }, callbackUrl: 'https://example.com/checkout/callback', completeUrl: 'https://example.com/checkout/complete', cancelUrl: 'https://example.com/checkout/cancel' }); // You will need the redirectUrl from the response in the next step const redirectUrl = payment.nextAction.redirectUrl; ``` server.php ``` payments->create( new CreatePaymentRequest([ 'amount' => 110, 'currency' => 'EUR', 'order_id' => '14379133960355', 'description' => 'Test Shop - #14379133960355', 'customer' => new PaymentCustomer([ 'name' => 'John Doe', 'email' => 'email@example.com', 'phone' => '+34666555444' ]), 'billing_details' => new PaymentBillingDetails([ 'name' => 'John Doe', 'address' => new Address([ 'country' => 'ES', 'city' => 'Malaga', 'line1' => 'Fake Street 123', 'zip' => '29001' ]) ]), 'callback_url' => 'https://example.com/checkout/callback', 'complete_url' => 'https://example.com/checkout/complete', 'cancel_url' => 'https://example.com/checkout/cancel' ]) ); // You will need the redirectUrl from the response in the next step $redirectUrl = $payment->getNextAction()->getRedirectUrl(); ?> ``` server.py ``` import Monei from Monei import CreatePaymentRequest, PaymentCustomer, PaymentBillingDetails, Address # Replace YOUR_API_KEY with your actual MONEI API key monei = Monei.MoneiClient(api_key="YOUR_API_KEY") payment = monei.payments.create( CreatePaymentRequest( amount=110, currency="EUR", order_id="14379133960355", description="Test Shop - #14379133960355", customer=PaymentCustomer( name="John Doe", email="email@example.com", phone="+34666555444" ), billing_details=PaymentBillingDetails( name="John Doe", address=Address( country="ES", city="Malaga", line1="Fake Street 123", zip="29001" ) ), callback_url="https://example.com/checkout/callback", complete_url="https://example.com/checkout/complete", cancel_url="https://example.com/checkout/cancel" ) ) // You will need the redirectUrl from the response in the next step redirect_url = payment.next_action.redirect_url ``` **Key Parameters:** * **amount** `positive integer`: Amount in the smallest currency unit (e.g., 110 for €1.10). * **currency** `string`: Three-letter [ISO currency code](https://en.wikipedia.org/wiki/ISO_4217) (e.g., `EUR`). * **orderId** `string`: Your unique order identifier. * **completeUrl** `string`: Where the customer is redirected **after** attempting payment (success or failure). * **callbackUrl** `string`: Your server endpoint URL for asynchronous webhook notifications (crucial for final status). * **cancelUrl** \`string\*\*: Where the customer is redirected if they click **cancel** or \*\*"Back to shop"\*\*. Check all available [request parameters](https://docs.monei.com/apis/rest/payments-create/.md). The API response includes the `payment.id` and, importantly, `payment.nextAction.redirectUrl`. ### 2. Handle Payment Interaction (Client-side via Redirect)[​](#2-handle-payment-interaction-client-side-via-redirect "Direct link to 2. Handle Payment Interaction (Client-side via Redirect)") The API response from Step 1 contains a `nextAction` object with a `redirectUrl`. You **must** redirect your customer's browser to this URL. Example Partial API Response ``` { "id": "af6029f80f5fc73a8ad2753eea0b1be0", // MONEI Payment ID // ... other fields ... "status": "PENDING", // Initial status "nextAction": { "type": "CONFIRM", "mustRedirect": true, // Indicates redirection is needed "redirectUrl": "https://secure.monei.com/payments/af6029f80f5fc73a8ad2753eea0b1be0" // <-- REDIRECT CUSTOMER HERE } } ``` This `redirectUrl` leads the customer to the secure, MONEI-hosted payment page where they will select a payment method and enter their details. Alternative: Payment Modal Instead of a full page redirect, you can use [`monei.js`](https://docs.monei.com/monei-js/reference/.md) to present payment options within a modal on your own site. See the [Payment Modal Guide](https://docs.monei.com/integrations/use-payment-modal/.md) for details. **Customer Actions:** * The customer completes the payment details on the MONEI page. * They might undergo 3D Secure verification if required by their bank. * After completion, failure, or cancellation, they are redirected back to your site: * To the `completeUrl` if they attempted payment. * To the `cancelUrl` if they explicitly cancelled. **Important:** The redirect to `completeUrl` **does not** guarantee payment success. You must rely on the webhook (Step 3) for the final status. ### 3. Process Webhook Notification (Server-side)[​](#3-process-webhook-notification-server-side "Direct link to 3. Process Webhook Notification (Server-side)") MONEI sends the final, authoritative payment status via an asynchronous HTTP POST request to the `callbackUrl` you provided in Step 1. The request body contains the full [Payment object](https://docs.monei.com/apis/rest/schemas/payment/.md) in JSON format. This webhook is the **only reliable way** to confirm the definitive payment outcome, regardless of customer browser actions or redirects. **Crucially, you must:** 1. **Verify the `MONEI-Signature` header** included in the request. This confirms the webhook genuinely came from MONEI. See the [Verify Signatures guide](https://docs.monei.com/guides/verify-signature/.md) for implementation details. 2. **Return a `200 OK` HTTP status code** immediately upon receiving the webhook to acknowledge receipt. Any other status code tells MONEI the notification failed. If MONEI doesn't receive a `200 OK`, it will retry sending the webhook. Once the signature is verified, inspect the `status` field in the Payment object (`SUCCEEDED`, `FAILED`, `CANCELED`, etc.) to determine whether to fulfill the order or handle the failure. Example Webhook Payload (POST to your callbackUrl) ``` { "id": "af6029f80f5fc73a8ad2753eea0b1be0", "amount": 110, // ... other fields ... "status": "SUCCEEDED", // <-- Check this for final status "createdAt": 1594215339, "updatedAt": 1594215345 } ``` --- # Use QR code payments Accept in-store contactless payments with QR codes. Choose between the MONEI Pay app, Dashboard Points of Sale, or the Payments API. ## Permanent vs One-Time QR Codes[​](#permanent-vs-one-time-qr-codes "Direct link to Permanent vs One-Time QR Codes") | | Permanent | One-Time | | --------------- | ------------------------------------------ | --------------------------------------------------- | | **Created via** | Dashboard Points of Sale | MONEI Pay App / Payments API | | **URL format** | `https://secure.monei.com/codes/{code_id}` | `https://secure.monei.com/payments/{payment_id}/qr` | | **Reusable** | Yes, same QR for multiple transactions | No, one payment per QR | | **Amount** | Customer enters (manual) or fixed | Pre-set per payment | | **Expiration** | Never (can be disabled) | 5 minutes (or custom `expireAt` via API) | | **Best for** | Static displays, printed materials, tables | Dynamic checkout, invoices, mobile POS | ## Before You Begin[​](#before-you-begin "Direct link to Before You Begin") * You'll need a MONEI account. Find your API keys in [MONEI Dashboard → Settings → API](https://dashboard.monei.com/settings/api). * Use [test mode keys](https://docs.monei.com/testing/.md) for integration testing. * Ensure relevant payment methods are enabled in your account settings. * Monitor test payments in [Dashboard → Payments](https://dashboard.monei.com/payments) (enable Test Mode toggle). - MONEI Pay & Dashboard - Payments API ## MONEI Pay App[​](#monei-pay-app "Direct link to MONEI Pay App") MONEI Pay provides the easiest way to accept payments in-store using a dedicated app. [YouTube video player](https://www.youtube.com/embed/ZVmXRUFWqno) Login into [pay.monei.com](https://pay.monei.com/) or download the **MONEI Pay** app using your MONEI Dashboard credentials to start creating QR payment codes. [![App Store](/img/app-store-icon.svg)](https://apps.apple.com/es/app/monei-pay/id1624647668)[![Google Play](/img/google-play-icon.svg)](https://play.google.com/store/apps/details?id=com.monei.moneibusiness) NFC Payments MONEI Pay also supports **NFC tap-to-pay** for contactless card payments. If you have your own merchant app, you can integrate NFC payments using the [App-to-App Integration SDKs](https://docs.monei.com/monei-pay/app-integration/getting-started/.md). ## Dashboard Points of Sale[​](#dashboard-points-of-sale "Direct link to Dashboard Points of Sale") Create and manage QR-based Points of Sale directly in your MONEI Dashboard. ### Creating a Point of Sale[​](#creating-a-point-of-sale "Direct link to Creating a Point of Sale") 1. Go to [Dashboard → Settings → Points of Sale](https://dashboard.monei.com/settings/points-of-sale) 2. Click **Create Point of Sale** 3. Select **QR Code** as the type 4. Configure your POS settings (see options below) ### Configuration Options[​](#configuration-options "Direct link to Configuration Options") | Option | Description | | --------------------------- | ------------------------------------------------------------------------------------------------------- | | **Name** | Identifier for this POS (e.g., "Store Entrance", "Table 5") | | **Store** | Associate with a store for multi-location tracking | | **Payment Flow** | **Manual Amount**: Customer enters amount each time. **Fixed Amount**: Same amount for all transactions | | **Fixed Amount/Currency** | Pre-set amount when using Fixed Amount flow | | **Allowed Payment Methods** | Restrict which payment methods appear (Card, Bizum, PayPal, etc.) | | **Manual Capture** | Place hold on funds (auth-only), capture later. Supported for Card, PayPal, and Bizum | | **Require Email** | Force customers to enter email before paying | | **Require Tax ID** | Require NIF/CIF for invoicing purposes | | **Callback URL** | Webhook URL for payment notifications | | **Include QR in Email** | Add QR code containing order ID to confirmation email (useful for ticketing/events) | | **QR Code Text** | Custom text shown alongside QR in confirmation email | | **Description** | Description passed to all payments from this POS | ### Managing QR Codes[​](#managing-qr-codes "Direct link to Managing QR Codes") Each POS can have multiple QR codes. From the POS detail page: * **Generate new codes** for different locations or displays * **Download QR codes** as SVG or PNG (300px, 500px, or 1000px) * **Enable/disable codes** without deleting them * **Copy permalink** for embedding: `https://secure.monei.com/codes/{code_id}` ### Use Cases[​](#use-cases "Direct link to Use Cases") * **Retail**: Manual amount flow, enable multiple payment methods * **Events/Ticketing**: Fixed amount, require email, enable "QR in confirmation email" * **Table service**: Create multiple POS per store for tracking * **Kiosk**: Fixed amount, restrict to card-only ### User Access Control & Payment Grouping[​](#user-access-control--payment-grouping "Direct link to User Access Control & Payment Grouping") Stores and Points of Sale enable user access control and payment grouping: * **Assign users to stores/POS**: In [Dashboard → Settings → Users](https://dashboard.monei.com/settings/users), bind users (e.g., waiters, cashiers) to a store or POS * **Restricted visibility**: Bound users only see payments from their assigned store/POS * **Automatic inheritance**: When a bound user creates a payment via Dashboard or MONEI Pay, it inherits their store/POS ID * **API grouping**: Pass `storeId` or `pointOfSaleId` when creating payments via API to group them for reporting * **Traceability**: Admins can filter and track payments by store or POS origin ## Creating QR Payments Programmatically[​](#creating-qr-payments-programmatically "Direct link to Creating QR Payments Programmatically") Generate QR payment codes using the MONEI API for custom integrations. ![QR](/img/qr.png)![QR demo](/img/qr-demo.png) ### 1. Create Payment (Server-side)[​](#1-create-payment-server-side "Direct link to 1. Create Payment (Server-side)") Create a [Payment](https://docs.monei.com/apis/rest/schemas/payment/.md) on your server with an amount and currency. * cURL * Node.js * PHP * Python POST https\://api.monei.com/v1/payments ``` curl --request POST 'https://api.monei.com/v1/payments' \ --header 'Authorization: YOUR_API_KEY' \ --header 'Content-Type: application/json' \ --data-raw '{ "amount": 110, "currency": "EUR", "orderId": "14379133960355", "callbackUrl": "https://example.com/checkout/callback" }' ``` (Replace `YOUR_API_KEY` with your actual MONEI API key) server.js ``` import {Monei} from '@monei-js/node-sdk'; // Replace YOUR_API_KEY with your actual MONEI API key const monei = new Monei('YOUR_API_KEY'); const payment = await monei.payments.create({ amount: 110, currency: 'EUR', orderId: '14379133960355', callbackUrl: 'https://example.com/checkout/callback' }); // You will need the paymentId from the response to generate the QR code URL const paymentId = payment.id; // Construct the QR code URL const qrCodeUrl = `https://secure.monei.com/payments/${paymentId}/qr`; ``` server.php ``` payments->create( new CreatePaymentRequest([ 'amount' => 110, 'currency' => 'EUR', 'order_id' => '14379133960355', 'callback_url' => 'https://example.com/checkout/callback' ]) ); // You will need the paymentId from the response to generate the QR code URL $paymentId = $payment->getId(); // Construct the QR code URL $qrCodeUrl = "https://secure.monei.com/payments/{$paymentId}/qr"; ?> ``` server.py ``` import Monei from Monei import CreatePaymentRequest # Replace YOUR_API_KEY with your actual MONEI API key monei = Monei.MoneiClient(api_key="YOUR_API_KEY") payment = monei.payments.create( CreatePaymentRequest( amount=110, currency="EUR", order_id="14379133960355", callback_url="https://example.com/checkout/callback" ) ) # You will need the paymentId from the response to generate the QR code URL payment_id = payment.id # Construct the QR code URL qr_code_url = f"https://secure.monei.com/payments/{payment_id}/qr" ``` **Required Parameters:** * **amount** `positive integer`: Amount in the smallest currency unit (e.g., 110 for €1.10). * **currency** `string`: Three-letter [ISO currency code](https://en.wikipedia.org/wiki/ISO_4217) (e.g., `EUR`). * **orderId** `string`: Your unique order identifier. * **callbackUrl** `string`: Your server endpoint URL for asynchronous webhook notifications. **Optional Parameters:** * **allowedPaymentMethods** `array`: Restrict available payment methods (e.g., `["card", "bizum"]`) * **description** `string`: Payment description shown on the payment page * **customer** `object`: Pre-fill customer info (`email`, `name`, `phone`) * **metadata** `object`: Custom key-value pairs for tracking/reconciliation * **storeId** `string`: Associate payment with a store (for grouping and user access control) * **pointOfSaleId** `string`: Link payment to a POS (for grouping and user access control) * **expireAt** `integer`: Unix timestamp for custom expiration (default: 5 minutes from creation) Check all available [request parameters](https://docs.monei.com/apis/rest/payments-create/.md). The API response includes the `payment.id`, which you'll use in the next step. ### 2. Display QR Code & Handle Interaction (Client-side/Physical)[​](#2-display-qr-code--handle-interaction-client-sidephysical "Direct link to 2. Display QR Code & Handle Interaction (Client-side/Physical)") Use the `payment.id` from Step 1 to present the QR code to your customer. **Option 1: Embed QR Image Directly** Construct the QR code image URL: `https://secure.monei.com/payments/{payment_id}/qr` You can render it directly on a webpage or display: ``` Scan to Pay ``` * Replace `{{payment_id}}` with the actual ID. * Use `?format=svg` for SVG (default is `png`). * Use `?size=400` to specify size (min: 100, max: 1000, default: 300). ![Example QR](https://secure.monei.com/codes/RYGJ0ZFK/qr?format=svg\&size=300) **Option 2: Redirect to Hosted Page with QR** The [Payment object](https://docs.monei.com/apis/rest/schemas/payment/.md) returned in Step 1 also contains `payment.nextAction.redirectUrl`. Append `?qr=1` to this URL to get a link to a MONEI-hosted page displaying the QR code. Example: `https://secure.monei.com/payments/{payment_id}?qr=1` ![Hosted Payment Page QR](/assets/images/qr-demo-2-b5f9696c05e4207feb175d4824de5b0a.png) **Customer Interaction:** The customer scans the QR code with their phone and completes the payment on the MONEI payment page using their chosen method. Important The QR code payment link is valid for **5 minutes**. After that, you must create a new payment request. ### 3. Process Webhook Notification (Server-side)[​](#3-process-webhook-notification-server-side "Direct link to 3. Process Webhook Notification (Server-side)") MONEI sends the final, authoritative payment status via an asynchronous HTTP POST request to the `callbackUrl` you provided in Step 1. The request body contains the full [Payment object](https://docs.monei.com/apis/rest/schemas/payment/.md) in JSON format. This webhook ensures you get the definitive status even if the customer closes their browser or loses connection after scanning. **Crucially, you must:** 1. **Verify the `MONEI-Signature` header** included in the request. This confirms the webhook genuinely came from MONEI. See the [Verify Signatures guide](https://docs.monei.com/guides/verify-signature/.md) for implementation details. 2. **Return a `200 OK` HTTP status code** immediately upon receiving the webhook to acknowledge receipt. Any other status code tells MONEI the notification failed. If MONEI doesn't receive a `200 OK`, it will retry sending the webhook. Once the signature is verified, inspect the `status` field in the Payment object to confirm payment success (`SUCCEEDED`) and fulfill the order, or handle failures. ### Alternative: Poll Payment Status[​](#alternative-poll-payment-status "Direct link to Alternative: Poll Payment Status") For kiosk or display scenarios where you need real-time status updates, poll the payment status instead of (or in addition to) webhooks. * cURL * Node.js * PHP * Python GET https\://api.monei.com/v1/payments/{payment\_id} ``` curl --request GET 'https://api.monei.com/v1/payments/{payment_id}' \ --header 'Authorization: YOUR_API_KEY' ``` server.js ``` const payment = await monei.payments.get(paymentId); console.log(payment.status); ``` server.php ``` payments->get($paymentId); echo $payment->getStatus(); ?> ``` server.py ``` payment = monei.payments.get(payment_id) print(payment.status) ``` **Status values:** `PENDING`, `PENDING_PROCESSING`, `SUCCEEDED`, `FAILED`, `CANCELED`, `EXPIRED` Polling Best Practice Poll every 2-3 seconds. Stop when status is no longer `PENDING`/`PENDING_PROCESSING` or when the QR expires. ## Customization[​](#customization "Direct link to Customization") You can customize the appearance of the QR code (color, icon) and the hosted payment page in your [MONEI Dashboard → Settings → Branding](https://dashboard.monei.com/settings/branding). ## Testing[​](#testing "Direct link to Testing") * Use your [test mode API keys](https://docs.monei.com/testing/.md) for development * Enable **Test Mode** in your [Dashboard](https://dashboard.monei.com/payments) to view test payments * Use [test card numbers](https://docs.monei.com/testing/.md#test-card-numbers) to simulate different scenarios * Verify webhook delivery in Dashboard → Developers → Webhooks ## Troubleshooting[​](#troubleshooting "Direct link to Troubleshooting") **QR code expired** QR codes are valid for 5 minutes. Create a new payment if the code expires. **Payment method not showing** Check that the method is enabled in your account and not filtered by `allowedPaymentMethods`. **Webhook not received** Verify your `callbackUrl` is publicly accessible, returns `200 OK`, and check webhook logs in Dashboard. --- # MONEI Connect Become an integrated payments partner to quickly and easily provide payment services to your platform or marketplace users with [MONEI Connect](https://monei.com/connect/). ## Before you begin[​](#before-you-begin "Direct link to Before you begin") 📌 Please contact to register as a partner. The following information is required: * IPs of your servers so we can add them to our whitelist * Email address that we can send the partner API Key to * Email address or URL for partner account notifications (choose 1): With the MONEI Connect integration you'll receive notifications via email or webhook when your users/merchants register for a MONEI account via your linked partner account. When your users/merchants register, you'll receive the company details and the associated account ID. You'll receive notifications when the account is pending approval and when it is approved or rejected **The following data must be provided for all users that require access to your partner account:** * First name * Last name * Email * Business name * Website * Tax Identification Number (CIF) * Services Description * Phone number note In the same email to please let us know whether you want the daily fee to be charged by MONEI to your users/merchants or to your master partner account. MONEI daily fees are: * MONEI Pay 0,03 €/day * MONEI X 0,1 €/day * MONEI PLUS 39,99 €/day **Once you've completed registration for your partner account, you'll receive:** * Partner API Key that lets you access our APIs on behalf of each MONEI account bound to your partner account. * Unique registration link that lets your users/merchants register their MONEI account. Every user that registers with this link will be bound to your partner account. * Access to the Partner Dashboard, where you can see payments, aggregated analytics, and details about each MONEI account bound to your partner account. ## How It Works[​](#how-it-works "Direct link to How It Works") 1. You share your unique **registration link** with merchants 2. Merchants **register** their MONEI account via the link — automatically bound to your partner account 3. MONEI sends **webhooks** as the account status changes (pending → approved/rejected) 4. Once approved, you make API calls on behalf of each merchant using your **Partner API Key** and the merchant's **MONEI-Account-ID** ## Integration[​](#integration "Direct link to Integration") To access the MONEI APIs, you need to provide your Partner API Key in the `Authorization` header of each request as well as `MONEI-Account-ID` header with the ID of the MONEI Account to indicate which account you are acting on behalf of. ### [REST API](https://docs.monei.com/apis/rest/.md)[​](#rest-api "Direct link to rest-api") * cURL * Node.js * PHP * Python POST https\://api.monei.com/v1/payments ``` curl --request POST 'https://api.monei.com/v1/payments' \ --header 'Authorization: ' \ --header 'MONEI-Account-ID: ' \ --header 'Content-Type: application/json' \ --header 'User-Agent: MONEI//0.1.0' \ --data-raw '{ "amount": 110, "currency": "EUR", "orderId": "14379133960355", "description": "Test Shop - #14379133960355", "customer": { "email": "email@example.com" }, "callbackUrl": "https://example.com/checkout/callback" }' ``` server.js ``` import {Monei} from '@monei-js/node-sdk'; // Initialize with Partner API Key, Account ID, and User-Agent const monei = new Monei('', { accountId: '', userAgent: 'MONEI//0.1.0' }); async function createMerchantPayment() { try { const payment = await monei.payments.create({ amount: 110, currency: 'EUR', orderId: '14379133960355', description: 'Test Shop - #14379133960355', customer: { email: 'email@example.com' }, callbackUrl: 'https://example.com/checkout/callback' }); console.log('Payment created:', payment.id); // Handle the payment response (e.g., redirect URL) } catch (error) { console.error('Error creating payment:', error.message); } } createMerchantPayment(); ``` server.php ``` '); // Set Account ID and User-Agent for the specific merchant $monei->setAccountId(''); $monei->setUserAgent('MONEI//0.1.0'); try { $payment = $monei->payments->create( new CreatePaymentRequest([ 'amount' => 110, 'currency' => 'EUR', 'order_id' => '14379133960355', 'description' => 'Test Shop - #14379133960355', 'customer' => new PaymentCustomer([ 'email' => 'email@example.com' ]), 'callback_url' => 'https://example.com/checkout/callback' ]) ); echo 'Payment created: ' . $payment->getId(); // Handle the payment response (e.g., redirect URL) } catch (\Exception $e) { echo 'Error creating payment: ' . $e->getMessage(); } ?> ``` server.py ``` import Monei from Monei import CreatePaymentRequest, PaymentCustomer # Initialize with Partner API Key monei = Monei.MoneiClient(api_key='') # Set Account ID and User-Agent for the specific merchant monei.set_account_id('') monei.set_user_agent('MONEI//0.1.0') try: payment = monei.payments.create( CreatePaymentRequest( amount=110, currency="EUR", order_id="14379133960355", description="Test Shop - #14379133960355", customer=PaymentCustomer( email="email@example.com" ), callback_url="https://example.com/checkout/callback" ) ) print(f'Payment created: {payment.id}') # Handle the payment response (e.g., redirect URL) except Exception as e: print(f'Error creating payment: {e}') ``` ### [GraphQL API](https://docs.monei.com/apis/graphql/.md)[​](#graphql-api "Direct link to graphql-api") POST https\://graphql.monei.com ``` curl --request POST 'https://graphql.monei.com' \ --header 'Authorization: ' \ --header 'MONEI-Account-ID: ' \ --header 'Content-Type: application/json' \ --header 'User-Agent: MONEI//0.1.0' \ --data-raw '{"query":"{account {name status}}"}' ``` caution The Partner shall, under no circumstances, instruct refunds ("Refunds") in an automated manner and shall only provide instructions to MONEI to execute a Refund when a clear, concise, and written order, traceable by the Merchant/User, is in place. In the event that an instruction for a Refund originates from the Partner without express authorization from the Merchant/User, the Partner shall assume full responsibility for the said amount, and in such case, MONEI may immediately terminate the contract entered into with the Partner. ## Registration link[​](#registration-link "Direct link to Registration link") The registration link is unique to your partner account and lets your users/merchants register their MONEI account. Every user that registers with this link will be bound to your partner account. The registration link is in the following format: ``` https://dashboard.monei.com/?action=signUp&promo= ``` Optionally you can pass an external ID to the registration link. This ID will be returned in the webhook notifications and can be used to identify the user/merchant in your system. ``` https://dashboard.monei.com/?action=signUp&promo=&mid=&h= ``` * `mid` - External ID * `h` - Hash of the external ID. The hash is calculated as `HMAC-SHA256(, )` note Your account can be configured to make external ID mandatory. In this case, the registration link must contain the external ID and the hash. ## Webhook notifications[​](#webhook-notifications "Direct link to Webhook notifications") MONEI will notify you when your users/merchants register for a MONEI account via your linked partner account by sending an HTTP POST request to the url provided during partner onboarding. The request body will contain the account information in JSON format. The request also contains a `MONEI-Signature` header. [Verify this signature](https://docs.monei.com/guides/verify-signature/.md) to confirm that the received request is sent from MONEI. You need to use the same `PARTNER_API_KEY` to verify the signature that you use to authenticate your API requests. To acknowledge receipt of the request, your endpoint must return a `200` HTTP status code to MONEI. All other response codes, including `3xx` codes, indicate to MONEI that you did not receive the event. If MONEI does not receive a `200` HTTP status code, the notification attempt is repeated. After multiple failures to send the notification over multiple days, MONEI marks the request as failed and stops trying to send it to your endpoint. The account information sent in the webhook: * **id** `string` - Account ID * **name** `string` - Account name * **status** `enum` - Account status * **PENDING\_CONTRACT** - Account is created but the contract is not signed yet * **PENDING\_APPROVAL** - Account has signed the contract but is not approved yet * **APPROVED** - Account is approved and ready to accept payments * **REJECTED** - Account is rejected * **externalId** `string` - External ID * **business** `object` * **country** `string` - Business country code * **legalName** `string` - Business legal name * **documentNumber** `string` - Business document number * **email** `string` - Business email * **website** `string` - Business website * **address** `object` * **line1** `string` - Address line 1 * **line2** `string` - Address line 2 * **city** `string` - City * **state** `string` - State * **zip** `string` - Postal code * **country** `string` - Country --- # Angular Components Use `@monei-js/angular-components` to add MONEI payment components to your Angular app. Each component is standalone with typed `@Input()` bindings and `@ViewChild` access to `submit()`. ## Install[​](#install "Direct link to Install") * npm * yarn * pnpm ``` npm install @monei-js/angular-components @monei-js/components ``` ``` yarn add @monei-js/angular-components @monei-js/components ``` ``` pnpm add @monei-js/angular-components @monei-js/components ``` Requires Angular 14 or later. ## Components[​](#components "Direct link to Components") | Component | Selector | Description | | --------------------- | ----------------------- | ------------------------------------------ | | `MoneiCardInput` | `monei-card-input` | Secure card input (iframe) with `submit()` | | `MoneiBizum` | `monei-bizum` | Bizum button + phone verification modal | | `MoneiPayPal` | `monei-paypal` | PayPal checkout button | | `MoneiPaymentRequest` | `monei-payment-request` | Apple Pay / Google Pay button | All components are standalone — import them directly, no NgModule needed. ## Card Input[​](#card-input "Direct link to Card Input") The Card Input component collects card number, expiry, and CVC in a single secure iframe. Use `@ViewChild` to call `submit()` and get a payment token. ``` import {Component, ViewChild} from '@angular/core'; import {NgIf} from '@angular/common'; import {MoneiCardInput, confirmPayment} from '@monei-js/angular-components'; @Component({ selector: 'app-payment', standalone: true, imports: [MoneiCardInput, NgIf], template: `

{{ error }}

` }) export class PaymentComponent { @ViewChild('cardInput') cardInput!: MoneiCardInput; paymentId = ''; // Set from your backend error = ''; handleChange = ({error}: {error?: string}) => { this.error = error ?? ''; }; async handleSubmit() { const {token, error} = await this.cardInput.submit(); if (error) { this.error = error; return; } await confirmPayment({paymentId: this.paymentId, paymentToken: token}); } } ``` Open in CodeSandbox See the [API Reference](https://docs.monei.com/monei-js/reference/.md#cardinput-component) for all CardInput props (style, placeholders, error messages, event callbacks). ## Bizum[​](#bizum "Direct link to Bizum") The [Bizum](https://docs.monei.com/payment-methods/bizum/.md) component renders a Bizum payment button. When the customer clicks it, a phone verification modal opens to complete the payment. ``` import {Component} from '@angular/core'; import {MoneiBizum, confirmPayment} from '@monei-js/angular-components'; @Component({ selector: 'app-bizum-payment', standalone: true, imports: [MoneiBizum], template: ` ` }) export class BizumPaymentComponent { paymentId = ''; // Set from your backend handleSubmit = async (result: {token?: string}) => { if (result.token) { await confirmPayment({paymentId: this.paymentId, paymentToken: result.token}); } }; handleError = (error: string) => { console.error(error); }; } ``` Open in CodeSandbox ## PayPal[​](#paypal "Direct link to PayPal") The [PayPal](https://docs.monei.com/payment-methods/paypal/.md) component renders a PayPal checkout button. When the customer approves, you receive a token to confirm the payment. ``` import {Component} from '@angular/core'; import {MoneiPayPal, confirmPayment} from '@monei-js/angular-components'; @Component({ selector: 'app-paypal-payment', standalone: true, imports: [MoneiPayPal], template: ` ` }) export class PayPalPaymentComponent { paymentId = ''; // Set from your backend handleSubmit = async (result: {token?: string}) => { if (result.token) { await confirmPayment({paymentId: this.paymentId, paymentToken: result.token}); } }; handleError = (error: string) => { console.error(error); }; } ``` Open in CodeSandbox ## PaymentRequest (Apple Pay / Google Pay)[​](#paymentrequest-apple-pay--google-pay "Direct link to PaymentRequest (Apple Pay / Google Pay)") The [PaymentRequest](https://docs.monei.com/payment-methods/apple-pay/.md) component renders an Apple Pay or Google Pay button depending on the customer's browser and device. note Apple Pay requires [domain verification](https://docs.monei.com/payment-methods/apple-pay/.md#register-your-domain-with-apple-pay) in both development and production. ``` import {Component} from '@angular/core'; import {MoneiPaymentRequest, confirmPayment} from '@monei-js/angular-components'; @Component({ selector: 'app-payment-request', standalone: true, imports: [MoneiPaymentRequest], template: ` ` }) export class PaymentRequestComponent { paymentId = ''; // Set from your backend handleSubmit = async (result: {token?: string}) => { if (result.token) { await confirmPayment({paymentId: this.paymentId, paymentToken: result.token}); } }; handleError = (error: string) => { console.error(error); }; } ``` Open in CodeSandbox ## Payment Modal[​](#payment-modal "Direct link to Payment Modal") Calling `confirmPayment()` **without** a `paymentToken` opens the MONEI Payment Modal — a full in-page checkout where the customer can select a payment method and complete the payment. ``` import {Component} from '@angular/core'; import {confirmPayment} from '@monei-js/angular-components'; @Component({ selector: 'app-pay-with-modal', standalone: true, template: `` }) export class PayWithModalComponent { paymentId = ''; // Set from your backend async handleClick() { const result = await confirmPayment({paymentId: this.paymentId}); // Payment completed — check result.status console.log(result); } } ``` important Apple Pay is not available in the Payment Modal. Use the [PaymentRequest](#paymentrequest-apple-pay--google-pay) component instead. See [Use Payment Modal](https://docs.monei.com/integrations/use-payment-modal/.md) for the full integration guide. ## Next steps[​](#next-steps "Direct link to Next steps") * Check the [API Reference](https://docs.monei.com/monei-js/reference/.md) for all component options and methods * See the [Migration Guide](https://docs.monei.com/monei-js/migration/.md) if you're upgrading from the `.driver('angular')` API --- # Migration Guide This guide covers migrating from MONEI Components v2 to v3. If you're starting fresh, see the [Components overview](https://docs.monei.com/monei-js/overview/.md) or go directly to your framework page. ## What's new in v3[​](#whats-new-in-v3 "Direct link to What's new in v3") * **Dedicated framework packages** — `@monei-js/react-components`, `@monei-js/vue-components`, `@monei-js/angular-components`, `@monei-js/svelte-components` * **`submit()` API** — call `submit()` directly on the component instance instead of `createToken()` * **Typed props** — full TypeScript support for all component props and events * **Svelte 5 support** — new `@monei-js/svelte-components` package * **Payment Modal** — call `confirmPayment()` without a token to open a full checkout modal ## CDN URL change[​](#cdn-url-change "Direct link to CDN URL change") ``` - + ``` ## npm package change[​](#npm-package-change "Direct link to npm package change") ``` - npm install @monei-js/components@1.x + npm install @monei-js/components@2.x ``` ## Framework import changes[​](#framework-import-changes "Direct link to Framework import changes") The `.driver()` API is replaced by dedicated framework packages. Each package exports native components — no more wrapping or bridging. * Vanilla JS * React * Vue * Angular * Svelte No import changes — vanilla JS uses `@monei-js/components` in both v2 and v3. ``` import {CardInput} from '@monei-js/components'; const cardInput = CardInput({paymentId: '...'}); cardInput.render('#card-input'); ``` ``` - import {CardInput, createToken} from '@monei-js/components'; - import React, {useRef} from 'react'; - const ReactCardInput = CardInput.driver('react', {React}); + import {CardInput} from '@monei-js/react-components'; ``` No longer needs `ReactDOM` or `findDOMNode` polyfill. ``` - import {CardInput, createToken} from '@monei-js/components'; - const MoneiCardInput = CardInput.driver('vue3'); + import {CardInput} from '@monei-js/vue-components'; ``` No more `__bridgeInstance` — use template refs directly. ``` - import {CardInput} from '@monei-js/components'; - import {Component, NgModule, ElementRef, NgZone, Inject} from '@angular/core'; - const CardInputModule = CardInput.driver('angular', { - Component, NgModule, ElementRef, NgZone, Inject - }); + import {MoneiCardInput} from '@monei-js/angular-components'; ``` All components are standalone — no NgModule required. Uses typed `@Input()` bindings instead of an opaque `[props]` bag: ``` - - + + + ``` New package — there was no previous Svelte driver. ``` import {CardInput} from '@monei-js/svelte-components'; ``` Requires Svelte 5 (runes API). ## `createToken()` → `submit()` migration[​](#createtoken--submit-migration "Direct link to createtoken--submit-migration") The standalone `createToken(instance)` function is replaced by `instance.submit()`. The return type is the same: `{token?: string, error?: string}`. * Vanilla JS * React * Vue * Angular * Svelte Before: ``` import {CardInput, createToken} from '@monei-js/components'; const cardInput = CardInput({paymentId: '...'}); cardInput.render('#card-input'); const {token} = await createToken(cardInput); ``` After: ``` import {CardInput} from '@monei-js/components'; const cardInput = CardInput({paymentId: '...'}); cardInput.render('#card-input'); const {token} = await cardInput.submit({cardholderName: 'John'}); ``` Before: ``` import {createToken} from '@monei-js/components'; const ref = useRef(null); const {token} = await createToken(ref.current, {cardholderName: 'John'}); ``` After: ``` import {CardInput, type CardInputHandle} from '@monei-js/react-components'; const ref = useRef(null); const {token} = await ref.current!.submit({cardholderName: 'John'}); ``` Before: ``` import {createToken} from '@monei-js/components'; const {token} = await createToken(cardInputRef.value.__bridgeInstance); ``` After: ``` import {CardInput} from '@monei-js/vue-components'; const cardInput = ref>(); const {token} = await cardInput.value!.submit({cardholderName: 'John'}); ``` Before: ``` // No typed submit() — had to access internal bridge instance ``` After: ``` import {MoneiCardInput} from '@monei-js/angular-components'; @ViewChild('cardInput') cardInput!: MoneiCardInput; const {token} = await this.cardInput.submit({cardholderName: 'John'}); ``` New package — use `bind:this` for component references: ``` ``` ## What's NOT changed[​](#whats-not-changed "Direct link to What's NOT changed") note `monei.api.createToken()` (used in [Apple Pay](https://docs.monei.com/payment-methods/apple-pay/.md) and [Google Pay](https://docs.monei.com/payment-methods/google-pay/.md) for wallet token exchange) is a **different API** and is not deprecated. Only the component-level `createToken(instance)` is deprecated. ## Deprecated APIs[​](#deprecated-apis "Direct link to Deprecated APIs") The following APIs still work in v3 but log deprecation warnings in the console: | Deprecated | Replacement | | --------------------------- | -------------------------------------------- | | `.driver('react', {React})` | `import from '@monei-js/react-components'` | | `.driver('vue3')` | `import from '@monei-js/vue-components'` | | `.driver('angular', {...})` | `import from '@monei-js/angular-components'` | | `createToken(instance)` | `instance.submit()` | These deprecated APIs will be removed in a future major version. --- # MONEI Components MONEI Components is a set of rich, prebuilt UI components that help you create your own checkout flows across desktop and mobile. Components are available for vanilla JavaScript and all major frameworks: | Package | Framework | | | -------------------------------------------------------------------------------------------- | ----------- | ------------------------------------------------------------ | | [`@monei-js/components`](https://www.npmjs.com/package/@monei-js/components) | Vanilla JS | This page | | [`@monei-js/react-components`](https://www.npmjs.com/package/@monei-js/react-components) | React 17+ | [React guide](https://docs.monei.com/monei-js/react/.md) | | [`@monei-js/vue-components`](https://www.npmjs.com/package/@monei-js/vue-components) | Vue 3.3+ | [Vue guide](https://docs.monei.com/monei-js/vue/.md) | | [`@monei-js/angular-components`](https://www.npmjs.com/package/@monei-js/angular-components) | Angular 14+ | [Angular guide](https://docs.monei.com/monei-js/angular/.md) | | [`@monei-js/svelte-components`](https://www.npmjs.com/package/@monei-js/svelte-components) | Svelte 5+ | [Svelte guide](https://docs.monei.com/monei-js/svelte/.md) | Components include: * **CardInput** — secure card number, expiry and CVC input * **Bizum** — Bizum payment button with phone verification * **PayPal** — PayPal checkout button * **PaymentRequest** — Apple Pay / Google Pay button * **Payment Modal** — full in-page checkout modal ## Setup monei.js[​](#setup-moneijs "Direct link to Setup monei.js") Include `monei.js` on your checkout page by adding the script tag to the `head` of your HTML file, or by installing it from npm: * CDN * npm * yarn * pnpm ``` ``` ``` npm install @monei-js/components ``` ``` yarn add @monei-js/components ``` ``` pnpm add @monei-js/components ``` ## Card Input Component[​](#card-input-component "Direct link to Card Input Component") The Card Input Component lets you collect card information all within one component. It includes a dynamically-updating card brand icon as well as inputs for number, expiry and CVC. * Result * HTML * CSS * JavaScript ```
``` ``` #card-input { border: 1px solid #e0e0e0; border-radius: 4px; box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.07), 0 1px 1.5px 0 rgba(0, 0, 0, 0.05); transition: box-shadow 0.08s ease-in, border-color 0.08s ease-in; } #card-input.is-focused { border-color: rgba(50, 151, 211, 0.3); box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.07), 0 0 0 4px rgba(50, 151, 211, 0.3); } #card-input.is-invalid { border-color: #ef9896; } #card-input.is-invalid.is-focused { box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.07), 0 0 0 4px rgba(220, 39, 39, 0.3); } #card-error { color: #dc2727; font-size: 13px; margin-top: 6px; } button { margin-top: 16px; width: 100%; height: 45px; border: none; border-radius: 6px; background: #3d424e; color: #fff; font-size: 15px; font-weight: 500; cursor: pointer; } button:disabled { opacity: 0.5; cursor: not-allowed; } ``` ``` const container = document.getElementById('card-input'); const errorText = document.getElementById('card-error'); // Custom styling can be passed to options when creating a Card Input Component. const style = { base: { height: '45px', lineHeight: '45px', padding: '8px 12px', fontSize: '16px' }, invalid: { color: '#dc2727' } }; // Create an instance of the Card Input. const cardInput = monei.CardInput({ paymentId: '{{payment_id}}', style: style, onFocus() { container.classList.add('is-focused'); }, onBlur() { container.classList.remove('is-focused'); }, onChange(event) { // Handle real-time validation errors. if (event.isTouched && event.error) { container.classList.add('is-invalid'); errorText.innerText = event.error; } else { container.classList.remove('is-invalid'); errorText.innerText = ''; } } }); // Render an instance of the Card Input into the `card-input`
. cardInput.render(container); // Handle form submission. const paymentForm = document.getElementById('payment-form'); const paymentButton = document.getElementById('payment-button'); paymentForm.addEventListener('submit', async function (event) { event.preventDefault(); paymentButton.disabled = true; try { // Tokenize the card information. const {token, error} = await cardInput.submit(); if (error) { // Inform the user if there was an error. container.classList.add('is-invalid'); errorText.innerText = error; return; } // Confirm the payment on the client side. const result = await monei.confirmPayment({ paymentId: '{{payment_id}}', paymentToken: token }); // Payment confirmed — check result.status or redirect. console.log(result); } catch (error) { console.error(error); } finally { paymentButton.disabled = false; } }); ``` Open in CodeSandbox Card Input Component is completely customizable. You can style it to match the look and feel of your site, providing a seamless checkout experience for your customers. It's also possible to style various input states, for example when the input has focus. ## Other Components[​](#other-components "Direct link to Other Components") ### Bizum[​](#bizum "Direct link to Bizum") The [Bizum](https://docs.monei.com/payment-methods/bizum/.md) component renders a Bizum payment button. When the customer clicks it, a phone verification modal opens to complete the payment. ``` const bizum = monei.Bizum({ paymentId: '{{payment_id}}', async onSubmit(result) { if (result.token) { await monei.confirmPayment({ paymentId: '{{payment_id}}', paymentToken: result.token }); } }, onError(error) { console.error(error); } }); bizum.render('#bizum-container'); ``` Open in CodeSandbox ### PayPal[​](#paypal "Direct link to PayPal") The [PayPal](https://docs.monei.com/payment-methods/paypal/.md) component renders a PayPal checkout button. When the customer approves, you receive a token to confirm the payment. ``` const paypal = monei.PayPal({ paymentId: '{{payment_id}}', async onSubmit(result) { if (result.token) { await monei.confirmPayment({ paymentId: '{{payment_id}}', paymentToken: result.token }); } }, onError(error) { console.error(error); } }); paypal.render('#paypal-container'); ``` Open in CodeSandbox ### PaymentRequest (Apple Pay / Google Pay)[​](#paymentrequest-apple-pay--google-pay "Direct link to PaymentRequest (Apple Pay / Google Pay)") The [PaymentRequest](https://docs.monei.com/payment-methods/apple-pay/.md) component renders an Apple Pay or Google Pay button depending on the customer's browser and device. note Apple Pay requires [domain verification](https://docs.monei.com/payment-methods/apple-pay/.md#register-your-domain-with-apple-pay) in both development and production. ``` const paymentRequest = monei.PaymentRequest({ paymentId: '{{payment_id}}', async onSubmit(result) { if (result.token) { await monei.confirmPayment({ paymentId: '{{payment_id}}', paymentToken: result.token }); } }, onError(error) { console.error(error); } }); paymentRequest.render('#payment-request-container'); ``` Open in CodeSandbox ## Payment Modal[​](#payment-modal "Direct link to Payment Modal") Calling `monei.confirmPayment()` **without** a `paymentToken` opens the MONEI Payment Modal — a full in-page checkout where the customer can select a payment method and complete the payment. ``` const result = await monei.confirmPayment({ paymentId: '{{payment_id}}' }); // Payment completed — check result.status console.log(result); ``` important Apple Pay is not available in the Payment Modal. Use the [PaymentRequest](#paymentrequest-apple-pay--google-pay) component instead. See [Use Payment Modal](https://docs.monei.com/integrations/use-payment-modal/.md) for the full integration guide. ## Next steps[​](#next-steps "Direct link to Next steps") * Check the [API Reference](https://docs.monei.com/monei-js/reference/.md) for all component options and methods * See the [Migration Guide](https://docs.monei.com/monei-js/migration/.md) if you're upgrading from MONEI Components v2 --- # React Components Use `@monei-js/react-components` to add MONEI payment components to your React app. Each component is a native React component with typed props and ref-based `submit()`. ## Install[​](#install "Direct link to Install") * npm * yarn * pnpm ``` npm install @monei-js/react-components @monei-js/components ``` ``` yarn add @monei-js/react-components @monei-js/components ``` ``` pnpm add @monei-js/react-components @monei-js/components ``` Requires React 17 or later. ## Components[​](#components "Direct link to Components") | Component | Description | | ---------------- | ------------------------------------------ | | `CardInput` | Secure card input (iframe) with `submit()` | | `Bizum` | Bizum button + phone verification modal | | `PayPal` | PayPal checkout button | | `PaymentRequest` | Apple Pay / Google Pay button | ## Card Input[​](#card-input "Direct link to Card Input") The Card Input component collects card number, expiry, and CVC in a single secure iframe. Use a ref to call `submit()` and get a payment token. ``` import {useRef, useState} from 'react'; import {CardInput, confirmPayment, type CardInputHandle} from '@monei-js/react-components'; function PaymentForm({paymentId}: {paymentId: string}) { const cardRef = useRef(null); const [error, setError] = useState(''); const handleSubmit = async () => { const {token, error} = await cardRef.current!.submit(); if (error) return setError(error); await confirmPayment({paymentId, paymentToken: token}); }; return (
setError(error ?? '')} /> {error &&

{error}

}
); } ``` Open in CodeSandbox See the [API Reference](https://docs.monei.com/monei-js/reference/.md#cardinput-component) for all CardInput props (style, placeholders, error messages, event callbacks). ## Bizum[​](#bizum "Direct link to Bizum") The [Bizum](https://docs.monei.com/payment-methods/bizum/.md) component renders a Bizum payment button. When the customer clicks it, a phone verification modal opens to complete the payment. ``` import {Bizum, confirmPayment} from '@monei-js/react-components'; function BizumPayment({paymentId}: {paymentId: string}) { return ( { if (result.token) { await confirmPayment({paymentId, paymentToken: result.token}); } }} onError={(error) => console.error(error)} /> ); } ``` Open in CodeSandbox ## PayPal[​](#paypal "Direct link to PayPal") The [PayPal](https://docs.monei.com/payment-methods/paypal/.md) component renders a PayPal checkout button. When the customer approves, you receive a token to confirm the payment. ``` import {PayPal, confirmPayment} from '@monei-js/react-components'; function PayPalPayment({paymentId}: {paymentId: string}) { return ( { if (result.token) { await confirmPayment({paymentId, paymentToken: result.token}); } }} onError={(error) => console.error(error)} /> ); } ``` Open in CodeSandbox ## PaymentRequest (Apple Pay / Google Pay)[​](#paymentrequest-apple-pay--google-pay "Direct link to PaymentRequest (Apple Pay / Google Pay)") The [PaymentRequest](https://docs.monei.com/payment-methods/apple-pay/.md) component renders an Apple Pay or Google Pay button depending on the customer's browser and device. note Apple Pay requires [domain verification](https://docs.monei.com/payment-methods/apple-pay/.md#register-your-domain-with-apple-pay) in both development and production. ``` import {PaymentRequest, confirmPayment} from '@monei-js/react-components'; function PaymentRequestButton({paymentId}: {paymentId: string}) { return ( { if (result.token) { await confirmPayment({paymentId, paymentToken: result.token}); } }} onError={(error) => console.error(error)} /> ); } ``` Open in CodeSandbox ## Payment Modal[​](#payment-modal "Direct link to Payment Modal") Calling `confirmPayment()` **without** a `paymentToken` opens the MONEI Payment Modal — a full in-page checkout where the customer can select a payment method and complete the payment. ``` import {confirmPayment} from '@monei-js/react-components'; function PayWithModal({paymentId}: {paymentId: string}) { const handleClick = async () => { const result = await confirmPayment({paymentId}); // Payment completed — check result.status console.log(result); }; return ; } ``` important Apple Pay is not available in the Payment Modal. Use the [PaymentRequest](#paymentrequest-apple-pay--google-pay) component instead. See [Use Payment Modal](https://docs.monei.com/integrations/use-payment-modal/.md) for the full integration guide. ## Next steps[​](#next-steps "Direct link to Next steps") * Check the [API Reference](https://docs.monei.com/monei-js/reference/.md) for all component options and methods * See the [Migration Guide](https://docs.monei.com/monei-js/migration/.md) if you're upgrading from the `.driver('react')` API --- # MONEI JS Reference This reference documents every object and method available in MONEI's browser-side JavaScript library, monei.js. You can use monei.js' APIs to integrate prebuilt Components for different payment methods into your own checkout flows across desktop and mobile. ## Including monei.js[​](#including-moneijs "Direct link to Including monei.js") Include the **monei.js** script on the checkout page of your site — it should always be loaded directly from `https://js.monei.com`, rather than included in a bundle or hosted yourself. ``` ``` ### Using monei.js as a module[​](#using-moneijs-as-a-module "Direct link to Using monei.js as a module") We also provide an npm package that makes it easier to load and use monei.js as a module. ``` npm i @monei-js/components ``` ## `monei` object[​](#monei-object "Direct link to monei-object") The monei object is your entrypoint to the rest of the monei.js SDK. ## Component Instance API[​](#component-instance-api "Direct link to Component Instance API") Every MONEI Component (`CardInput`, `PayPal`, `Bizum`, `PaymentRequest`) returns a component instance with the following methods: ### `render(container)`[​](#rendercontainer "Direct link to rendercontainer") Mounts the component into the DOM. Accepts a CSS selector string or an `HTMLElement`. ``` const cardInput = monei.CardInput({paymentId: '...', ...options}); // Using a CSS selector cardInput.render('#card_input_container'); // Using an HTMLElement cardInput.render(document.getElementById('card_input_container')); ``` ### `submit(options?)`[​](#submitoptions "Direct link to submitoptions") Tokenizes the current card data and returns a [`SubmitResult`](#submitresult). Available on `CardInput` instances only. ``` declare const submit: (options?: {cardholderName?: string}) => Promise; ``` Example: ``` const result = await cardInput.submit({cardholderName: 'Jane Doe'}); if (result.error) { // Show validation error to user } else { // result.paymentMethod === 'card' await monei.confirmPayment({paymentId: '...', paymentToken: result.token}); } ``` ### `updateProps(newProps)`[​](#updatepropsnewprops "Direct link to updatepropsnewprops") Updates component props after render. Useful for reactive prop changes in vanilla JS. Returns a `Promise` that resolves when the update is delivered to the component. ``` // Update language dynamically await cardInput.updateProps({language: 'es'}); // Update style await cardInput.updateProps({ style: { input: {fontSize: '18px'} } }); ``` note When using framework packages ([React](https://docs.monei.com/monei-js/react/.md), [Vue](https://docs.monei.com/monei-js/vue/.md), [Angular](https://docs.monei.com/monei-js/angular/.md), [Svelte](https://docs.monei.com/monei-js/svelte/.md)), prop updates are handled automatically — you don't need to call `updateProps()` manually. ### `destroy()`[​](#destroy "Direct link to destroy") Removes the component from the DOM and cleans up all internal resources (event listeners, iframe connections). After calling `destroy()`, the instance cannot be reused. ``` cardInput.destroy(); ``` ### `close()`[​](#close "Direct link to close") Alias for [`destroy()`](#destroy). Removes the component and cleans up resources. ## Framework Integration[​](#framework-integration "Direct link to Framework Integration") MONEI Components are available as native components for popular frameworks. Each framework package handles mounting, prop syncing, and cleanup automatically. | Package | Framework | Guide | | ------------------------------ | --------- | ----------------------------------------------------------------- | | `@monei-js/react-components` | React | [React Components](https://docs.monei.com/monei-js/react/.md) | | `@monei-js/vue-components` | Vue 3 | [Vue Components](https://docs.monei.com/monei-js/vue/.md) | | `@monei-js/angular-components` | Angular | [Angular Components](https://docs.monei.com/monei-js/angular/.md) | | `@monei-js/svelte-components` | Svelte 5 | [Svelte Components](https://docs.monei.com/monei-js/svelte/.md) | tip The legacy `.driver()` API is deprecated. See the [Migration Guide](https://docs.monei.com/monei-js/migration/.md) for upgrade instructions. ## `CardInput` Component[​](#cardinput-component "Direct link to cardinput-component") CardInput is a customizable Component used to collect sensitive card information in your payment forms. ### Create an instance of the CardInput Component.[​](#create-an-instance-of-the-cardinput-component "Direct link to Create an instance of the CardInput Component.") ``` const cardInput = monei.CardInput({ paymentId: 'af6029f80f5fc73a8ad2753eea0b1be0', ...otherOptions }); // render Component on the page cardInput.render('#card_input_container'); ``` ### CardInput options[​](#cardinput-options "Direct link to CardInput options") | Prop | Type | Required | Description | | --------------- | ------------------------------------------------------------------ | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `paymentId` | string | Yes\* | Payment ID from [create payment](https://docs.monei.com/apis/rest/payments-create/.md). Generated token will be bound to this payment. | | `accountId` | string | Yes\* | Your MONEI account ID. Use with `sessionId` instead of `paymentId` to generate a token before creating the payment. | | `sessionId` | string | Cond. | Unique session ID in your system. Provide a different `sessionId` for each customer to ensure the token-generating customer matches the paying customer. Required with `accountId` if passing a token to your server. Must match the value in [create payment](https://docs.monei.com/apis/rest/schemas/payment/.md). | | `orderId` | string | No | Alias for `sessionId` — normalizes to `sessionId` internally. | | `language` | string | No | [ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) language code. Supported: `en`, `es`, `ca`, `pt`, `de`, `it`, `fr`, `nl`, `et`, `fi`, `lv`, `no`, `pl`, `ru`. Auto-detected by default based on geolocation and browser preferences. | | `style` | [CardInputStyle](#cardinput-style-object) | No | Customize appearance using CSS properties. See [Style object](#cardinput-style-object) below. | | `fonts` | [FontConfig](#custom-fonts)\[] | No | Load custom web fonts inside the iframe so a `style.base.fontFamily` reference actually renders. See [Custom fonts](#custom-fonts) below. | | `placeholders` | object | No | Custom input placeholders. See [Placeholders](#cardinput-placeholders) below. | | `errorMessages` | object | No | Custom error messages. See [Error messages](#cardinput-error-messages) below. | | `onFocus` | () => void | No | Called when card input is focused. | | `onBlur` | () => void | No | Called when card input is blurred. | | `onLoad` | () => void | No | Called when card input is fully loaded. | | `onEnter` | () => void | No | Called when user presses **Enter** inside card input. | | `onChange` | (event: [CardInputOnChangeEvent](#cardinputonchangeevent)) => void | No | Called on every user input. Used for real-time validation. | | `onError` | (error: Error) => void | No | Called when there is an error. | \* Either `paymentId` or `accountId` is required. **Cond.** = required when using `accountId`. #### CardInput placeholders[​](#cardinput-placeholders "Direct link to CardInput placeholders") | Prop | Type | Default | | ------------ | ------ | ------------- | | `cardNumber` | string | "Card number" | | `expiryDate` | string | "MM/YY" | | `cvc` | string | "CVC" | #### CardInput error messages[​](#cardinput-error-messages "Direct link to CardInput error messages") | Prop | Type | Default | | ------------------- | ------ | ---------------------------------------- | | `emptyCardNumber` | string | "Enter a card number" | | `invalidCardNumber` | string | "Card number is invalid" | | `emptyExpiryDate` | string | "Enter an expiry date" | | `monthOutOfRange` | string | "Expiry month must be between 01 and 12" | | `yearOutOfRange` | string | "Expiry year cannot be in the past" | | `dateOutOfRange` | string | "Expiry date cannot be in the past" | | `invalidExpiryDate` | string | "Expiry date is invalid" | | `invalidCardType` | string | "Card type is not supported" | | `emptyCVC` | string | "Enter a CVC" | | `invalidCVC` | string | "CVC is invalid" | #### `CardInputOnChangeEvent`[​](#cardinputonchangeevent "Direct link to cardinputonchangeevent") | Property | Type | Description | | ------------- | ------- | --------------------------------------------------- | | `isTouched` | boolean | Whether the card input has been touched. | | `isSubmitted` | boolean | Whether the form has been submitted. | | `cardType` | string? | Detected card type (e.g. `visa`, `mastercard`). | | `error` | string? | Validation error message. Display this to the user. | ### CardInput Style object[​](#cardinput-style-object "Direct link to CardInput Style object") components are styled using a Style object. It consists of CSS properties nested under objects for any of the following variants: * **base** `object` - base Component style * **loading** `object` - base Component style when Component is loading * **invalid** `object` - applied when the Component has invalid input * **input** `object` - applied to individual inputs * **cardNumber** `object` - applied to card number input * **expiryDate** `object` - applied to expiry date input * **cvc** `object` - applied to cvc input * **icon** `object` - applied to icon The following pseudo-classes and pseudo-elements can also be styled using a nested object inside of a variant: * `:focus` * `:hover` * `::placeholder` * `::selection` * `:-webkit-autofill` ``` const style = { base: { height: '45px', lineHeight: '45px', padding: '8px 12px', fontSize: '16px' }, invalid: { color: '#dc2727' } }; const cardInput = monei.CardInput({ paymentId: 'af6029f80f5fc73a8ad2753eea0b1be0', style: style, ...otherOptions }); // render Component on the page cardInput.render('#card_input_container'); ``` ## `createToken` function[​](#createtoken-function "Direct link to createtoken-function") Deprecated `createToken()` is deprecated. Use [`instance.submit()`](#submitoptions) instead, which is available directly on the CardInput instance: ``` const {token, error} = await cardInput.submit(); ``` See the [Migration Guide](https://docs.monei.com/monei-js/migration/.md) for details. Use this function to generate payment token. note Payment tokens generated by monei.js Components expire as soon as they are used or 5 days after creation. Pass an instance of CardInput Component. ``` declare const createToken: (Component: MoneiComponent) => Promise; ``` Example: ``` monei .createToken(cardInput) // pass a reference to an instance of your CardInput Component .then(function (result) { console.log(result); if (result.error) { // Inform the user if there was an error. } else { // Confirm payment using the token. moneiTokenHandler(result.token); } }) .catch(function (error) { // Something went wrong while generating token console.log(error); }); ``` ## `PayPal` Component[​](#paypal-component "Direct link to paypal-component") PayPal is a customizable Component that renders a PayPal payment button. ### Create an instance of the PayPal Component.[​](#create-an-instance-of-the-paypal-component "Direct link to Create an instance of the PayPal Component.") ``` const paypal = monei.PayPal({ paymentId: 'af6029f80f5fc73a8ad2753eea0b1be0', onSubmit(result) { if (result.error) { // Inform the user if there was an error. } else { // result.paymentMethod === 'paypal' // Confirm payment using the token. moneiTokenHandler(result.token); } }, onError(error) { console.log(error); }, ...otherOptions }); // render Component on the page paypal.render('#paypal_container'); ``` ### PayPal options[​](#paypal-options "Direct link to PayPal options") | Prop | Type | Required | Description | | ------------------------- | ----------------------------------------------------------------------------------------------------------------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `paymentId` | string | Yes\* | Payment ID from [create payment](https://docs.monei.com/apis/rest/payments-create/.md). Generated token will be bound to this payment. | | `accountId` | string | Yes\* | Your MONEI account ID. Use with `sessionId` instead of `paymentId` to generate a token before creating the payment. | | `sessionId` | string | Cond. | Unique session ID in your system. Provide a different `sessionId` for each customer to ensure the token-generating customer matches the paying customer. Required with `accountId`. Must match the value in [create payment](https://docs.monei.com/apis/rest/schemas/payment/.md). | | `amount` | number | Cond. | Amount in the smallest currency unit (e.g., 100 = 1.00 USD). Required with `accountId`. | | `currency` | string | Cond. | Three-letter [ISO currency code](https://en.wikipedia.org/wiki/ISO_4217), in uppercase. Required with `accountId`. | | `transactionType` | 'SALE' \| 'AUTH' | No | Controls when funds are captured. `SALE` (default): capture immediately. `AUTH`: authorize only, capture later. | | `language` | string | No | Language for the PayPal button. Auto-detected by default. [Supported languages](https://developer.paypal.com/docs/checkout/reference/customize-sdk/#locale). | | `cspNonce` | string | No | Nonce value for Content Security Policy. Pass this if your page uses a CSP `script-src` nonce. | | `borderRadius` | number \| string | No | Custom border radius for the PayPal button container. | | `requestShipping` | boolean | No | Enable shipping address collection in the PayPal checkout. Requires `accountId` flow (incompatible with `paymentId`). See [Express Checkout](https://docs.monei.com/integrations/express-checkout/.md). | | `shippingOptions` | [ShippingOption](#shippingoption)\[] | No | Available shipping options displayed in the PayPal checkout. Requires `requestShipping: true`. | | `onShippingAddressChange` | (address: [Address](#address)) => Promise<[ShippingAddressChangeResult](#shippingaddresschangeresult)> | No | Called when the customer changes their shipping address in the PayPal checkout. Return updated shipping options and/or amount. | | `onShippingOptionChange` | (option: [ShippingOption](#shippingoption)) => Promise<[ShippingOptionChangeResult](#shippingoptionchangeresult)> | No | Called when the customer selects a different shipping option. Return updated amount. | | `onSubmit` | (result: [SubmitResult](#submitresult)) => void | Yes | Called when the customer approves the payment. Returns a [`SubmitResult`](#submitresult) with `paymentMethod: 'paypal'`. | | `onBeforeOpen` | () => boolean | No | Called before the PayPal window is opened. Return `false` to prevent the window from opening. | | `onLoad` | (isSupported: boolean) => void | No | Called when PayPal is fully loaded. If PayPal is not supported, the component will not render and `onLoad` fires with `false`. | | `onError` | (error: Error) => void | No | Called when there is an error. | | `style` | object | No | Customize the button appearance. See style properties below. | \* Either `paymentId` or `accountId` is required. **Cond.** = required when using `accountId`. note PayPal always returns payer information (name, email) regardless of configuration — there is no separate `requestBilling` prop for PayPal. Billing details are always included in the [`SubmitResult`](#submitresult). #### PayPal style[​](#paypal-style "Direct link to PayPal style") | Prop | Type | Default | Description | | -------------- | ------------------------------------------------------------------------ | ------- | -------------------------------------------------- | | `height` | number \| string | — | Button height in pixels. Values from `25` to `55`. | | `color` | 'gold' \| 'blue' \| 'silver' \| 'white' \| 'black' | — | Button color theme. | | `shape` | 'pill' \| 'rect' | — | Button shape. | | `layout` | 'horizontal' \| 'vertical' | — | Button layout when multiple buttons are available. | | `label` | 'checkout' \| 'credit' \| 'pay' \| 'buynow' \| 'paypal' \| 'installment' | — | Button label text. | | `size` | 'small' \| 'medium' \| 'large' \| 'responsive' | — | Button size preset. | | `borderRadius` | number \| string | — | Custom border radius for the button. | ## `PaymentRequest` Component[​](#paymentrequest-component "Direct link to paymentrequest-component") PaymentRequest is a customizable Component that renders a Google Pay or Apple Pay payment button depending on the browser and operating system of the user. PaymentRequest replaces the deprecated `GooglePay` component — it automatically shows Google Pay, Apple Pay, or Click to Pay based on device support. note Apple Pay requires [domain verification](https://docs.monei.com/payment-methods/apple-pay/.md#register-your-domain-with-apple-pay) in both development and production. ### Create an instance of the PaymentRequest Component.[​](#create-an-instance-of-the-paymentrequest-component "Direct link to Create an instance of the PaymentRequest Component.") ``` const paymentRequest = monei.PaymentRequest({ paymentId: 'af6029f80f5fc73a8ad2753eea0b1be0', onSubmit(result) { if (result.error) { // Inform the user if there was an error. } else { // result.paymentMethod === 'applePay' or 'googlePay' // Confirm payment using the token. moneiTokenHandler(result.token); } }, onError(error) { console.log(error); }, ...otherOptions }); // render Component on the page paymentRequest.render('#payment_request'); ``` ### PaymentRequest options[​](#paymentrequest-options "Direct link to PaymentRequest options") | Prop | Type | Required | Description | | ------------------------- | ----------------------------------------------------------------------------------------------------------------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `paymentId` | string | Yes\* | Payment ID from [create payment](https://docs.monei.com/apis/rest/payments-create/.md). Generated token will be bound to this payment. | | `accountId` | string | Yes\* | Your MONEI account ID. Use with `sessionId` instead of `paymentId` to generate a token before creating the payment. | | `sessionId` | string | Cond. | Unique session ID in your system. Provide a different `sessionId` for each customer to ensure the token-generating customer matches the paying customer. Required with `accountId`. Must match the value in [create payment](https://docs.monei.com/apis/rest/schemas/payment/.md). | | `amount` | number | Cond. | Amount in the smallest currency unit (e.g., 100 = 1.00 USD). Required with `accountId`. | | `currency` | string | Cond. | Three-letter [ISO currency code](https://en.wikipedia.org/wiki/ISO_4217), in uppercase. Required with `accountId`. | | `language` | string | No | [ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) language code. Supported: `en`, `es`, `ca`, `pt`, `de`, `it`, `fr`, `nl`, `et`, `fi`, `lv`, `no`, `pl`, `ru`. Auto-detected by default. | | `requestShipping` | boolean | No | Enable shipping address collection in the Apple Pay / Google Pay wallet UI. Requires `accountId` flow (incompatible with `paymentId`). See [Express Checkout](https://docs.monei.com/integrations/express-checkout/.md). | | `requestBilling` | boolean | No | Enable billing address collection. Works with both `accountId` and `paymentId` flows. | | `shippingOptions` | [ShippingOption](#shippingoption)\[] | No | Available shipping options displayed in the wallet UI. Requires `requestShipping: true`. | | `onShippingAddressChange` | (address: [Address](#address)) => Promise<[ShippingAddressChangeResult](#shippingaddresschangeresult)> | No | Called when the customer changes their shipping address in the wallet UI. Return updated shipping options and/or amount. The address is redacted mid-flow (no street-level data — only country, city, state, zip). | | `onShippingOptionChange` | (option: [ShippingOption](#shippingoption)) => Promise<[ShippingOptionChangeResult](#shippingoptionchangeresult)> | No | Called when the customer selects a different shipping option. Return updated amount. | | `onSubmit` | (result: [SubmitResult](#submitresult)) => void | Yes | Called when the customer approves the payment. Returns a [`SubmitResult`](#submitresult) with `paymentMethod: 'applePay'` or `'googlePay'`. | | `onBeforeSubmit` | () => void | No | Called before payment is submitted. Use for validation or analytics. | | `onBeforeOpen` | () => boolean | No | Called before the payment window is opened. Return `false` to prevent the window from opening. | | `onLoad` | (isSupported: boolean) => void | No | Called when the component is fully loaded. If the payment method is not supported, the component will not render and `onLoad` fires with `false`. | | `onError` | (error: Error) => void | No | Called when there is an error. | | `style` | object | No | Customize the button appearance. See style properties below. | \* Either `paymentId` or `accountId` is required. **Cond.** = required when using `accountId`. #### PaymentRequest style[​](#paymentrequest-style "Direct link to PaymentRequest style") | Prop | Type | Default | Description | | -------------- | ------------------------------- | --------- | --------------------------------------------------------------------------------------------------------------------------------------------- | | `height` | string \| number | — | Button height in pixels. Values from `25` to `55`. | | `color` | 'default' \| 'black' \| 'white' | 'default' | Button color theme. | | `type` | 'buy' \| 'plain' \| 'donate' | 'plain' | Button label: `'buy'` = "Buy with Google Pay / Apple Pay", `'donate'` = "Donate with Google Pay / Apple Pay", `'plain'` = no additional text. | | `borderRadius` | number \| string | — | Custom border radius for the button. | | `fontFamily` | string | — | Custom font family for the button text. | ## `Bizum` Component[​](#bizum-component "Direct link to bizum-component") Bizum is a customizable Component that renders a Bizum payment button. ### Create an instance of the Bizum Component.[​](#create-an-instance-of-the-bizum-component "Direct link to Create an instance of the Bizum Component.") ``` const bizum = monei.Bizum({ paymentId: 'af6029f80f5fc73a8ad2753eea0b1be0', onSubmit(result) { if (result.error) { // Inform the user if there was an error. } else { // result.paymentMethod === 'bizum' // Confirm payment using the token. moneiTokenHandler(result.token); } }, onError(error) { console.log(error); }, ...otherOptions }); // render Component on the page bizum.render('#bizum'); ``` ### Bizum options[​](#bizum-options "Direct link to Bizum options") | Prop | Type | Required | Description | | ----------------- | ----------------------------------------------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `paymentId` | string | Yes\* | Payment ID from [create payment](https://docs.monei.com/apis/rest/payments-create/.md). Generated token will be bound to this payment. | | `accountId` | string | Yes\* | Your MONEI account ID. Use with `sessionId` instead of `paymentId` to generate a token before creating the payment. | | `sessionId` | string | Cond. | Unique session ID in your system. Provide a different `sessionId` for each customer to ensure the token-generating customer matches the paying customer. Required with `accountId`. Must match the value in [create payment](https://docs.monei.com/apis/rest/schemas/payment/.md). | | `phoneNumber` | string | No | Pre-fill the customer's phone number for the Bizum payment flow. | | `amount` | number | Cond. | Amount in the smallest currency unit (e.g., 100 = 1.00 USD). Required with `accountId`. | | `currency` | string | Cond. | Three-letter [ISO currency code](https://en.wikipedia.org/wiki/ISO_4217), in uppercase. Required with `accountId`. | | `transactionType` | 'SALE' \| 'AUTH' | No | Controls when funds are captured. `SALE` (default): capture immediately. `AUTH`: authorize only, capture later. | | `fullscreen` | boolean | No | Set to `true` to open the Bizum payment window in fullscreen mode. | | `language` | string | No | [ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) language code. Supported: `en`, `es`, `ca`, `pt`, `de`, `it`, `fr`, `nl`, `et`, `fi`, `lv`, `no`, `pl`, `ru`. Auto-detected by default. | | `onSubmit` | (result: [SubmitResult](#submitresult)) => void | Yes | Called when the customer approves the payment. Returns a [`SubmitResult`](#submitresult) with `paymentMethod: 'bizum'`. | | `onBeforeOpen` | () => boolean | No | Called before the Bizum window is opened. Return `false` to prevent the window from opening. | | `onOpen` | () => void | No | Called when the Bizum payment window is opened. | | `onLoad` | (isSupported: boolean) => void | No | Called when the component is fully loaded. If Bizum is not supported, the component will not render and `onLoad` fires with `false`. | | `onError` | (error: Error) => void | No | Called when there is an error. | | `style` | object | No | Customize the button appearance. See style properties below. | | `fonts` | [FontConfig](#custom-fonts)\[] | No | Load custom web fonts so a `style.fontFamily` reference actually renders. See [Custom fonts](#custom-fonts). | \* Either `paymentId` or `accountId` is required. **Cond.** = required when using `accountId`. #### Bizum style[​](#bizum-style "Direct link to Bizum style") | Prop | Type | Default | Description | | -------------- | ---------------- | ------- | ------------------------------------------------------------------------- | | `height` | string \| number | — | Button height in pixels. Values from `25` to `55`. | | `type` | 'pay' \| 'plain' | 'plain' | Button label: `'pay'` = "Pay with Bizum", `'plain'` = no additional text. | | `borderRadius` | number \| string | — | Custom border radius for the button. | | `fontFamily` | string | — | Custom font family for the button text. | ## Custom fonts[​](#custom-fonts "Direct link to Custom fonts") Mirrors Stripe Elements' `fonts` API. Use the `fonts` option to load merchant-chosen web fonts inside the component iframe so a `style.base.fontFamily` (or `style.fontFamily` for Bizum) reference actually paints in the requested font, not whatever the customer's device has installed. ### Supported components[​](#supported-components "Direct link to Supported components") `fonts` is accepted by: * [`CardInput`](#cardinput-component) * [`Bizum`](#bizum-component) `fonts` is **not** accepted by [`PayPal`](#paypal-component), [`PaymentRequest`](#paymentrequest-component), or `GooglePay` — wallet button glyphs are rendered by the wallet SDK in vendor-controlled DOM that ignores host CSS, so loading a custom font there would have no visible effect. ### `FontConfig`[​](#fontconfig "Direct link to fontconfig") Each entry in the `fonts` array is one of: ``` type FontFace = { family: string; // e.g. 'Inter', 'Roboto Mono', 'Source Sans 3' src: string; // url(https://...) or url(data:font/woff2;base64,...) weight?: string | number; // 100..1000 or 'normal' | 'bold' | 'lighter' | 'bolder' style?: 'normal' | 'italic' | 'oblique'; display?: 'auto' | 'block' | 'swap' | 'fallback' | 'optional'; unicodeRange?: string; // e.g. 'U+0020-007F, U+30??' }; type FontConfig = {cssSrc: string} | FontFace; ``` ### Two forms[​](#two-forms "Direct link to Two forms") **1. `cssSrc`** — link an external stylesheet that contains `@font-face` rules. Today this works only with **Google Fonts** (`fonts.googleapis.com`); other CDNs (Adobe Fonts, Bunny Fonts) are not in the default Content Security Policy allowlist. ``` const cardInput = monei.CardInput({ paymentId: '...', style: {base: {fontFamily: 'Inter, sans-serif'}}, fonts: [{cssSrc: 'https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap'}] }); ``` **2. Explicit `FontFace`** — provide all `@font-face` descriptors yourself. Works for **any HTTPS host** plus inlined `data:` URLs. Use this for self-hosted fonts. ``` const cardInput = monei.CardInput({ paymentId: '...', style: {base: {fontFamily: 'Inter, sans-serif'}}, fonts: [ { family: 'Inter', src: 'url(https://your-cdn.example.com/fonts/inter-400.woff2)', weight: 400, display: 'swap' }, { family: 'Inter', src: 'url(https://your-cdn.example.com/fonts/inter-700.woff2)', weight: 700, display: 'swap' } ] }); ``` ### Multiple weights[​](#multiple-weights "Direct link to Multiple weights") Pass one entry per `(family, weight, style)` combination. Same family with different weights produces multiple `@font-face` rules — the browser picks the matching weight when CSS requests bold or italic. ### Loading semantics[​](#loading-semantics "Direct link to Loading semantics") * The component iframe injects a `` (for `cssSrc`) or registers each `FontFace` (for explicit), then waits up to **3 seconds** for fonts to load before first paint. If a font CDN is slow or unreachable, the component renders with the next family in the stack — the page is never blocked indefinitely. * Default `font-display` for explicit `FontFace` entries is `swap`. Override per entry if you need a different policy. * Validation runs on every entry; malformed values (e.g. invalid `weight`, non-`https:`/non-`data:` `src`, suspicious characters in `family`) are silently dropped to prevent CSS injection. ### Migration[​](#migration "Direct link to Migration") Already passing `style.base.fontFamily` (or `style.fontFamily`) to a component? Behavior is unchanged — without a matching `fonts` entry, the customer's device renders whatever it has installed, same as today. To opt into deterministic rendering, pair the existing `fontFamily` with a `fonts` entry that loads it. ``` // Before — works only on devices that already have Inter monei.CardInput({ paymentId: '...', style: {base: {fontFamily: 'Inter, sans-serif'}} }); // After — Inter loads via Google Fonts on every device monei.CardInput({ paymentId: '...', style: {base: {fontFamily: 'Inter, sans-serif'}}, fonts: [{cssSrc: 'https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700'}] }); ``` ## `confirmPayment` function[​](#confirmpayment-function "Direct link to confirmpayment-function") After you generate the **paymentToken** using one of the Components, use this function to confirm the payment passing the obtained `paymentToken`. It will automatically show a popup window with a 3D Secure confirmation screen if required. When called without a `paymentToken`, `confirmPayment` opens the MONEI Payment Modal where the customer can select a payment method and complete the payment. See [Use Payment Modal](https://docs.monei.com/integrations/use-payment-modal/.md) for the full integration guide. important Not all payment methods are available in the Payment Modal. Apple Pay is not supported in the modal — use the [PaymentRequest](#paymentrequest-component) component instead. You can provide additional customer information in parameters. ``` declare const confirmPayment: (params: ConfirmPaymentParams) => Promise; ``` ### Confirm payment params[​](#confirm-payment-params "Direct link to Confirm payment params") | Param | Type | Required | Description | | ----------------------- | ------------------------------------------------------------------------------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `paymentId` | string | Yes | Payment ID from [create payment](https://docs.monei.com/apis/rest/payments-create/.md) | | `paymentToken` | string | No | Token generated by monei.js. If present the popup opens directly to 3D Secure confirmation (if needed) | | `generatePaymentToken` | boolean | No | If `true`, generates a permanent token representing the payment method used | | `fullscreen` | boolean | No | If `true`, opens a fullscreen confirmation window | | `language` | string | No | Two-letter [ISO 639-1](https://en.wikipedia.org/wiki/ISO_639-1) language code. Supported: `en`, `es`, `ca`, `pt`, `de`, `it`, `fr`, `nl`, `et`, `fi`, `lv`, `no`, `pl`, `ru`. Overrides browser language | | `paymentMethod` | [PaymentMethod](#paymentmethod) | No | Pre-fill payment method details (e.g. cardholder name/email) | | `allowedPaymentMethods` | string\[] | No | Restrict available payment methods. Supported: `card`, `googlePay`, `clickToPay`, `bizum`, `paypal` | | `customDomain` | string | No | Custom domain for the payment popup. Required if you have a custom domain configured | | `customer` | [Customer](https://docs.monei.com/apis/rest/schemas/payment-customer/.md) | No | Customer information (name, email, phone) | | `billingDetails` | [BillingDetails](https://docs.monei.com/apis/rest/schemas/payment-billingdetails/.md) | No | Billing address and contact details | | `shippingDetails` | [BillingDetails](https://docs.monei.com/apis/rest/schemas/payment-billingdetails/.md) | No | Shipping address and contact details (same shape as billingDetails) | | `style` | {width: string, height: string} | No | Popup window dimensions (e.g. `"400px"`, `"100%"`) | #### `PaymentMethod`[​](#paymentmethod "Direct link to paymentmethod") | Field | Type | Description | | ---------------------- | ------ | ---------------------------- | | `card.cardholderName` | string | Cardholder name to pre-fill | | `card.cardholderEmail` | string | Cardholder email to pre-fill | Check [confirm payment](https://docs.monei.com/apis/rest/payments-confirm/.md) for the full list of parameters. tip When using [express checkout](https://docs.monei.com/integrations/express-checkout/.md) with shipping (accountId flow), create the payment server-side passing `paymentToken`, `billingDetails`, and `shippingDetails` from the [`SubmitResult`](#submitresult). For billing-only checkout (paymentId flow), pass `billingDetails` to `confirmPayment`. ### Payment result[​](#payment-result "Direct link to Payment result") | Prop | Type | Description | | ------------------------- | ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `id` | string | Unique identifier for the payment | | `status` | string | The status of the payment | | `amount` | positive integer | Amount intended to be collected by this payment. A positive integer representing how much to charge in the smallest currency unit (e.g., 100 cents to charge 1.00 USD) | | `currency` | string | Three-letter [ISO currency code](https://en.wikipedia.org/wiki/ISO_4217), in uppercase | | `accountId` | string | MONEI account ID | | `orderId` | string | An order ID from your system. A unique identifier that can be used to reconcile the payment with your internal system | | `statusCode` | string | Payment status code | | `statusMessage` | string | Human readable status message, can be displayed to a user | | `nextAction` | object | If present, tells you what actions you need to take for your customer to fulfill a payment using the provided source | | `nextAction.type` | string | The type of next action | | `nextAction.mustRedirect` | boolean | Whether the customer must be redirected | | `nextAction.redirectUrl` | string | URL to redirect the customer to | Check [payment object](https://docs.monei.com/apis/rest/schemas/payment/.md) for the full description of each field Example: ``` monei .confirmPayment({ paymentId: 'af6029f80f5fc73a8ad2753eea0b1be0', paymentToken: 'fe6786e08ded3191cf2f623e120a0bacda715bf2', ...otherOptions }) .then(function (result) { // Payment result console.log(result); }) .catch(function (error) { // Something went wrong while confirming payment console.log(error); }); ``` ## Type Reference[​](#type-reference "Direct link to Type Reference") ### `SubmitResult`[​](#submitresult "Direct link to submitresult") Returned by all component `onSubmit` callbacks and `CardInput.submit()`. | Property | Type | Description | | ----------------- | --------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | | `token` | string | Payment token. Use with `confirmPayment` or pass to your server. | | `error` | string | Validation error message. Present instead of `token` when tokenization fails. | | `paymentMethod` | [PaymentMethodType](#paymentmethodtype) | Which payment method was used: `'card'`, `'applePay'`, `'googlePay'`, `'paypal'`, or `'bizum'`. | | `finalAmount` | number | Wallet-authorized total in minor units. May differ from initial `amount` if shipping changed the total. Only present for express checkout. | | `billingDetails` | [BillingDetails](#billingdetails) | Billing address and contact info collected by the wallet. Only present when `requestBilling` is true (or always for PayPal). | | `shippingDetails` | [BillingDetails](#billingdetails) | Shipping address and contact info collected by the wallet. Only present when `requestShipping` is true. | | `shippingOption` | [ShippingOption](#shippingoption) | The shipping option selected by the customer. Only present when `requestShipping` is true. | ### `PaymentMethodType`[​](#paymentmethodtype "Direct link to paymentmethodtype") ``` type PaymentMethodType = 'card' | 'applePay' | 'googlePay' | 'paypal' | 'bizum'; ``` ### `ShippingOption`[​](#shippingoption "Direct link to shippingoption") | Property | Type | Required | Description | | ------------- | ---------------------- | -------- | ---------------------------------------------------------- | | `id` | string | Yes | Unique identifier for the shipping option. | | `label` | string | Yes | Display label (e.g., "Standard Shipping"). | | `description` | string | No | Additional description (e.g., "5-7 business days"). | | `amount` | number | Yes | Shipping cost in minor units (e.g., 500 = 5.00 EUR). | | `type` | 'SHIPPING' \| 'PICKUP' | No | Shipping type. Defaults to `'SHIPPING'`. Used by PayPal. | | `selected` | boolean | No | Whether this option is initially selected. Used by PayPal. | ### `ShippingAddressChangeResult`[​](#shippingaddresschangeresult "Direct link to shippingaddresschangeresult") Returned from `onShippingAddressChange` callback. | Property | Type | Description | | ----------------- | ------------------------------------ | --------------------------------------------------------- | | `shippingOptions` | [ShippingOption](#shippingoption)\[] | Updated shipping options for the new address. | | `amount` | number | Updated total amount in minor units (product + shipping). | ### `ShippingOptionChangeResult`[​](#shippingoptionchangeresult "Direct link to shippingoptionchangeresult") Returned from `onShippingOptionChange` callback. | Property | Type | Description | | -------- | ------ | --------------------------------------------------------- | | `amount` | number | Updated total amount in minor units (product + shipping). | ### `BillingDetails`[​](#billingdetails "Direct link to billingdetails") | Property | Type | Description | | --------- | ------------------- | --------------- | | `name` | string | Full name. | | `email` | string | Email address. | | `phone` | string | Phone number. | | `company` | string | Company name. | | `address` | [Address](#address) | Postal address. | ### `Address`[​](#address "Direct link to address") | Property | Type | Description | | --------- | ------ | ---------------------------- | | `country` | string | Two-letter ISO country code. | | `city` | string | City name. | | `line1` | string | Street address line 1. | | `line2` | string | Street address line 2. | | `zip` | string | Postal / ZIP code. | | `state` | string | State, province, or region. | --- # Svelte Components Use `@monei-js/svelte-components` to add MONEI payment components to your Svelte 5 app. Each component uses runes-based props and `bind:this` for `submit()`. ## Install[​](#install "Direct link to Install") * npm * yarn * pnpm ``` npm install @monei-js/svelte-components @monei-js/components ``` ``` yarn add @monei-js/svelte-components @monei-js/components ``` ``` pnpm add @monei-js/svelte-components @monei-js/components ``` Requires Svelte 5 or later. All components use Svelte 5 runes (`$props()`, `$state`, `$effect`) — Svelte 4 is not supported. ## Components[​](#components "Direct link to Components") | Component | Description | | ---------------- | ------------------------------------------ | | `CardInput` | Secure card input (iframe) with `submit()` | | `Bizum` | Bizum button + phone verification modal | | `PayPal` | PayPal checkout button | | `PaymentRequest` | Apple Pay / Google Pay button | ## Card Input[​](#card-input "Direct link to Card Input") The Card Input component collects card number, expiry, and CVC in a single secure iframe. Use `bind:this` to call `submit()` and get a payment token. ```
{#if error}

{error}

{/if}
``` See the [API Reference](https://docs.monei.com/monei-js/reference/.md#cardinput-component) for all CardInput props (style, placeholders, error messages, event callbacks). ## Bizum[​](#bizum "Direct link to Bizum") The [Bizum](https://docs.monei.com/payment-methods/bizum/.md) component renders a Bizum payment button. When the customer clicks it, a phone verification modal opens to complete the payment. ``` ``` ## PayPal[​](#paypal "Direct link to PayPal") The [PayPal](https://docs.monei.com/payment-methods/paypal/.md) component renders a PayPal checkout button. When the customer approves, you receive a token to confirm the payment. ``` ``` ## PaymentRequest (Apple Pay / Google Pay)[​](#paymentrequest-apple-pay--google-pay "Direct link to PaymentRequest (Apple Pay / Google Pay)") The [PaymentRequest](https://docs.monei.com/payment-methods/apple-pay/.md) component renders an Apple Pay or Google Pay button depending on the customer's browser and device. note Apple Pay requires [domain verification](https://docs.monei.com/payment-methods/apple-pay/.md#register-your-domain-with-apple-pay) in both development and production. ``` ``` ## Payment Modal[​](#payment-modal "Direct link to Payment Modal") Calling `confirmPayment()` **without** a `paymentToken` opens the MONEI Payment Modal — a full in-page checkout where the customer can select a payment method and complete the payment. ``` ``` important Apple Pay is not available in the Payment Modal. Use the [PaymentRequest](#paymentrequest-apple-pay--google-pay) component instead. See [Use Payment Modal](https://docs.monei.com/integrations/use-payment-modal/.md) for the full integration guide. ## Next steps[​](#next-steps "Direct link to Next steps") * Check the [API Reference](https://docs.monei.com/monei-js/reference/.md) for all component options and methods * This is a new package — there was no previous Svelte driver. See the [Migration Guide](https://docs.monei.com/monei-js/migration/.md) for general v2 → v3 changes --- # Vue Components Use `@monei-js/vue-components` to add MONEI payment components to your Vue 3 app. Each component is a native Vue component with typed props and template ref `submit()`. ## Install[​](#install "Direct link to Install") * npm * yarn * pnpm ``` npm install @monei-js/vue-components @monei-js/components ``` ``` yarn add @monei-js/vue-components @monei-js/components ``` ``` pnpm add @monei-js/vue-components @monei-js/components ``` Requires Vue 3.3 or later. ## Components[​](#components "Direct link to Components") | Component | Description | | ---------------- | ------------------------------------------ | | `CardInput` | Secure card input (iframe) with `submit()` | | `Bizum` | Bizum button + phone verification modal | | `PayPal` | PayPal checkout button | | `PaymentRequest` | Apple Pay / Google Pay button | ## Card Input[​](#card-input "Direct link to Card Input") The Card Input component collects card number, expiry, and CVC in a single secure iframe. Use a template ref to call `submit()` and get a payment token. ``` ``` Open in CodeSandbox See the [API Reference](https://docs.monei.com/monei-js/reference/.md#cardinput-component) for all CardInput props (style, placeholders, error messages, event callbacks). ## Bizum[​](#bizum "Direct link to Bizum") The [Bizum](https://docs.monei.com/payment-methods/bizum/.md) component renders a Bizum payment button. When the customer clicks it, a phone verification modal opens to complete the payment. ``` ``` Open in CodeSandbox ## PayPal[​](#paypal "Direct link to PayPal") The [PayPal](https://docs.monei.com/payment-methods/paypal/.md) component renders a PayPal checkout button. When the customer approves, you receive a token to confirm the payment. ``` ``` Open in CodeSandbox ## PaymentRequest (Apple Pay / Google Pay)[​](#paymentrequest-apple-pay--google-pay "Direct link to PaymentRequest (Apple Pay / Google Pay)") The [PaymentRequest](https://docs.monei.com/payment-methods/apple-pay/.md) component renders an Apple Pay or Google Pay button depending on the customer's browser and device. note Apple Pay requires [domain verification](https://docs.monei.com/payment-methods/apple-pay/.md#register-your-domain-with-apple-pay) in both development and production. ``` ``` Open in CodeSandbox ## Payment Modal[​](#payment-modal "Direct link to Payment Modal") Calling `confirmPayment()` **without** a `paymentToken` opens the MONEI Payment Modal — a full in-page checkout where the customer can select a payment method and complete the payment. ``` ``` important Apple Pay is not available in the Payment Modal. Use the [PaymentRequest](#paymentrequest-apple-pay--google-pay) component instead. See [Use Payment Modal](https://docs.monei.com/integrations/use-payment-modal/.md) for the full integration guide. ## Next steps[​](#next-steps "Direct link to Next steps") * Check the [API Reference](https://docs.monei.com/monei-js/reference/.md) for all component options and methods * See the [Migration Guide](https://docs.monei.com/monei-js/migration/.md) if you're upgrading from the `.driver('vue3')` API --- # Android App Integration Accept NFC payments from your Android app using the **MONEI Pay Android SDK**. The SDK handles intent launching, result parsing, and error handling. **Source:** [github.com/MONEI/monei-pay-android-sdk](https://github.com/MONEI/monei-pay-android-sdk) No special signing needed Uses standard Android intents — no special signing, entitlements, or platform approvals required. ## Payment Modes[​](#payment-modes "Direct link to Payment Modes") The SDK supports two modes: * **Direct** (`PaymentMode.DIRECT`) — Launches CloudCommerce directly. MONEI Pay is not required. * **Via MONEI Pay** (`PaymentMode.VIA_MONEI_PAY`) — Launches MONEI Pay, which handles the NFC payment. | | Direct | Via MONEI Pay | | ----------------- | ------------------------- | ---------------------------- | | POS auth token | Required | Required | | MONEI Pay app | Not needed | Required | | CloudCommerce app | Required | Not required | | Best for | CloudCommerce-only setups | Full MONEI Pay merchant flow | ## Download Required Apps[​](#download-required-apps "Direct link to Download Required Apps") **MONEI Pay** (Via MONEI Pay mode) [![Get MONEI Pay on Google Play](/img/google-play-icon.svg)](https://play.google.com/store/apps/details?id=com.monei.pay) **CloudCommerce** (Direct mode) [![Get CloudCommerce on Google Play](/img/google-play-icon.svg)](https://play.google.com/store/apps/details?id=com.mastercard.cpos) ## Prerequisites[​](#prerequisites "Direct link to Prerequisites") * [MONEI account](https://dashboard.monei.com/register) * Android 8.0+ (API 26), NFC-capable device * POS auth token from your backend — see [Getting Started](https://docs.monei.com/monei-pay/app-integration/getting-started/.md) * **Direct mode:** [CloudCommerce](https://play.google.com/store/apps/details?id=com.mastercard.cpos) installed * **Via MONEI Pay mode:** [MONEI Pay](https://play.google.com/store/apps/details?id=com.monei.pay) installed ## Integration[​](#integration "Direct link to Integration") ### 1. Add the Dependency[​](#1-add-the-dependency "Direct link to 1. Add the Dependency") * GitHub Packages (recommended) * JitPack (no auth) Requires a PAT with `read:packages` (or `GITHUB_TOKEN` in CI): gradle.properties ``` gpr.user=YOUR_GITHUB_USERNAME gpr.key=YOUR_GITHUB_TOKEN ``` settings.gradle.kts ``` dependencyResolutionManagement { repositories { google() mavenCentral() maven { url = uri("https://maven.pkg.github.com/MONEI/monei-pay-android-sdk") credentials { username = providers.gradleProperty("gpr.user") .orElse(providers.environmentVariable("GITHUB_ACTOR")) .get() password = providers.gradleProperty("gpr.key") .orElse(providers.environmentVariable("GITHUB_TOKEN")) .get() } } } } ``` app/build.gradle.kts ``` dependencies { implementation("com.monei:monei-pay-sdk:0.2.0") } ``` settings.gradle.kts ``` dependencyResolutionManagement { repositories { google() mavenCentral() maven { url = uri("https://jitpack.io") } } } ``` app/build.gradle.kts ``` dependencies { implementation("com.github.MONEI.monei-pay-android-sdk:sdk:v0.2.0") } ``` [![](https://jitpack.io/v/MONEI/monei-pay-android-sdk.svg)](https://jitpack.io/#MONEI/monei-pay-android-sdk) ### 2. Configure AndroidManifest[​](#2-configure-androidmanifest "Direct link to 2. Configure AndroidManifest") AndroidManifest.xml ``` ``` ### 3. Accept a Payment[​](#3-accept-a-payment "Direct link to 3. Accept a Payment") * Direct Mode * Via MONEI Pay ``` import com.monei.pay.sdk.MoneiPay import com.monei.pay.sdk.PaymentMode import com.monei.pay.sdk.MoneiPayException try { val result = MoneiPay.acceptPayment( context = this, token = "eyJ...", amount = 1500, description = "Order #123", customerName = "John Doe", customerEmail = "john@example.com", customerPhone = "+34600000000", mode = PaymentMode.DIRECT ) if (result.success) { println("Payment approved: ${result.transactionId}") println("Card: ${result.cardBrand} ${result.maskedCardNumber}") } } catch (e: MoneiPayException.CloudCommerceNotInstalled) { // Prompt user to install CloudCommerce } catch (e: MoneiPayException.PaymentCancelled) { // User cancelled } catch (e: MoneiPayException.InvalidToken) { // Token expired or invalid } catch (e: MoneiPayException.PaymentFailed) { println("Payment failed: ${e.reason}") } catch (e: MoneiPayException) { println("Error: ${e.message}") } ``` ``` import com.monei.pay.sdk.MoneiPay import com.monei.pay.sdk.PaymentMode import com.monei.pay.sdk.MoneiPayException try { val result = MoneiPay.acceptPayment( context = this, token = "eyJ...", amount = 1500, description = "Order #123", customerName = "John Doe", customerEmail = "john@example.com", customerPhone = "+34600000000", mode = PaymentMode.VIA_MONEI_PAY ) if (result.success) { println("Payment approved: ${result.transactionId}") println("Card: ${result.cardBrand} ${result.maskedCardNumber}") } } catch (e: MoneiPayException.MoneiPayNotInstalled) { // Prompt user to install MONEI Pay } catch (e: MoneiPayException.PaymentCancelled) { // User cancelled } catch (e: MoneiPayException.InvalidToken) { // Token expired or invalid } catch (e: MoneiPayException) { println("Payment failed: ${e.message}") } ``` ### SDK Reference[​](#sdk-reference "Direct link to SDK Reference") #### `MoneiPay.acceptPayment(...)`[​](#moneipayacceptpayment "Direct link to moneipayacceptpayment") Suspending function — call from a coroutine scope. | Parameter | Type | Required | Description | | --------------- | ------------- | -------- | ------------------------------------------ | | `context` | `Context` | Yes | Activity or Application context | | `token` | `String` | Yes | Raw JWT auth token (no `"Bearer "` prefix) | | `amount` | `Int` | Yes | Amount in cents | | `description` | `String?` | No | Payment description | | `customerName` | `String?` | No | Customer name | | `customerEmail` | `String?` | No | Customer email | | `customerPhone` | `String?` | No | Customer phone | | `mode` | `PaymentMode` | No | `DIRECT` (default) or `VIA_MONEI_PAY` | #### `PaymentResult`[​](#paymentresult "Direct link to paymentresult") | Property | Type | Description | | ------------------ | --------- | -------------------------------------- | | `transactionId` | `String` | MONEI transaction ID | | `success` | `Boolean` | Whether the payment was approved | | `amount` | `Int?` | Payment amount in cents | | `cardBrand` | `String?` | Card brand (e.g. `visa`, `mastercard`) | | `maskedCardNumber` | `String?` | Masked card number (e.g. `****1234`) | #### Error Types[​](#error-types "Direct link to Error Types") | Exception | Description | | --------------------------- | ---------------------------------------------- | | `MoneiPayNotInstalled` | MONEI Pay not installed (VIA\_MONEI\_PAY mode) | | `CloudCommerceNotInstalled` | CloudCommerce not installed (DIRECT mode) | | `PaymentInProgress` | Another payment is already active | | `PaymentCancelled` | User cancelled | | `PaymentFailed` | Payment declined or failed (has `reason`) | | `InvalidParameters` | Invalid input (e.g. non-positive amount) | | `InvalidToken` | Auth token invalid or expired | *** ## Manual Integration (Intent)[​](#manual-integration-intent "Direct link to Manual Integration (Intent)") For integration without the SDK using Android intents directly. Show manual intent integration ### Configure Your Manifest[​](#configure-your-manifest "Direct link to Configure Your Manifest") AndroidManifest.xml ``` ``` ### Launch the Payment Intent[​](#launch-the-payment-intent "Direct link to Launch the Payment Intent") ``` class MainActivity : AppCompatActivity() { private val paymentLauncher = registerForActivityResult( ActivityResultContracts.StartActivityForResult() ) { result -> when (result.resultCode) { RESULT_OK -> handleSuccess(result.data) RESULT_CANCELED -> handleError(result.data) } } fun acceptPayment(amountInCents: Int) { val intent = Intent("com.monei.pay.ACCEPT_PAYMENT").apply { setPackage("com.monei.moneibusiness") putExtra("amount_cents", amountInCents) putExtra("auth_token", "eyJ...") } if (intent.resolveActivity(packageManager) == null) { return } paymentLauncher.launch(intent) } } ``` ### Handle the Result[​](#handle-the-result "Direct link to Handle the Result") ``` private fun handleSuccess(data: Intent?) { val success = data?.getBooleanExtra("success", false) ?: false val transactionId = data?.getStringExtra("transaction_id") val amount = data?.getIntExtra("amount", 0) val cardBrand = data?.getStringExtra("card_brand") val maskedCard = data?.getStringExtra("masked_card_number") } private fun handleError(data: Intent?) { val errorCode = data?.getStringExtra("error_code") ?: "UNKNOWN" val errorMessage = data?.getStringExtra("error_message") ?: "Payment failed" } ``` ### Intent Parameters[​](#intent-parameters "Direct link to Intent Parameters") #### Request Extras[​](#request-extras "Direct link to Request Extras") | Extra | Type | Required | Description | | ---------------- | ------ | -------- | ------------------------------------------------- | | `amount_cents` | Int | Yes | Payment amount in cents (e.g. `1500` = 15.00 EUR) | | `auth_token` | String | Yes | POS auth token (raw JWT) | | `description` | String | No | Payment description | | `customer_name` | String | No | Customer name | | `customer_email` | String | No | Customer email | | `customer_phone` | String | No | Customer phone | #### Result Extras (RESULT\_OK)[​](#result-extras-result_ok "Direct link to Result Extras (RESULT_OK)") | Extra | Type | Description | | -------------------- | ------- | --------------------------------------- | | `transaction_id` | String | MONEI transaction ID | | `success` | Boolean | `true` if approved, `false` if declined | | `amount` | Int | Payment amount in cents | | `card_brand` | String | Card brand (e.g. `visa`, `mastercard`) | | `masked_card_number` | String | Masked card number (e.g. `****1234`) | #### Result Extras (RESULT\_CANCELED)[​](#result-extras-result_canceled "Direct link to Result Extras (RESULT_CANCELED)") | Extra | Type | Description | | --------------- | ------ | ------------------------------------------------------- | | `error_code` | String | Error code (e.g. `PAYMENT_FAILED`, `NOT_AUTHENTICATED`) | | `error_message` | String | Human-readable error description | ## Example App[​](#example-app "Direct link to Example App") The [`examples/merchant-demo/`](https://github.com/MONEI/monei-pay-android-sdk/tree/master/examples/merchant-demo) directory contains a minimal app demonstrating the full flow. Run `./gradlew assembleDebug` and install on an NFC-capable device. The project uses `includeBuild` to reference the SDK locally, so SDK changes apply immediately. ## Troubleshooting[​](#troubleshooting "Direct link to Troubleshooting") ### `CloudCommerceNotInstalled`[​](#cloudcommercenotinstalled "Direct link to cloudcommercenotinstalled") CloudCommerce is a separate app from MONEI Pay. Install from [Google Play](https://play.google.com/store/apps/details?id=com.mastercard.cpos) and verify your manifest includes the `` and `cloud_payment://` scheme in ``. ### `MoneiPayNotInstalled`[​](#moneipaynotinstalled "Direct link to moneipaynotinstalled") Install MONEI Pay from [Google Play](https://play.google.com/store/apps/details?id=com.monei.pay). Verify your manifest includes the `com.monei.pay.ACCEPT_PAYMENT` action in ``. ### `InvalidToken`[​](#invalidtoken "Direct link to invalidtoken") The POS auth token has a 24h lifetime. Generate a fresh token from your backend. Pass the raw JWT string — not `"Bearer ..."`. ### Payment fails on API 30+[​](#payment-fails-on-api-30 "Direct link to Payment fails on API 30+") Android 11+ requires `` for package visibility. Ensure your manifest has the full queries block from [Configure AndroidManifest](#2-configure-androidmanifest). ### Dependency resolution fails[​](#dependency-resolution-fails "Direct link to Dependency resolution fails") * **JitPack:** Add `google()`, `mavenCentral()`, and `https://jitpack.io` to `settings.gradle.kts` under `dependencyResolutionManagement`. * **GitHub Packages:** Check `gpr.user` / `gpr.key` in `gradle.properties` and the `maven.pkg.github.com/MONEI/monei-pay-android-sdk` repository block. --- # Getting Started Accept NFC payments from your own merchant app using the MONEI Pay SDKs. ## How It Works[​](#how-it-works "Direct link to How It Works") 1. Your **backend** generates a POS auth token using your MONEI API key 2. Your **merchant app** receives the token via your own API 3. The app calls `acceptPayment()` with the token and amount 4. The SDK opens MONEI Pay (or CloudCommerce on Android) for NFC tap-to-pay 5. The payment result is returned to your app iOS Beta MONEI Pay for iOS is in beta. Join via TestFlight: ### Download MONEI Pay[​](#download-monei-pay "Direct link to Download MONEI Pay") [![Download MONEI Pay on the App Store](/img/app-store-icon.svg)](https://apps.apple.com/app/monei-pay/id6478438783)[![Get MONEI Pay on Google Play](/img/google-play-icon.svg)](https://play.google.com/store/apps/details?id=com.monei.pay) ## Step 1: Get Your API Key[​](#step-1-get-your-api-key "Direct link to Step 1: Get Your API Key") 1. Sign up at [dashboard.monei.com](https://dashboard.monei.com/register) 2. Go to **Settings → API Keys** 3. Use the **test** key for development, **live** key for production ## Step 2: Generate a POS Auth Token[​](#step-2-generate-a-pos-auth-token "Direct link to Step 2: Generate a POS Auth Token") Your backend calls the MONEI API to create a token for each payment session. The token is valid for **24 hours** — you can reuse it for multiple transactions within that window. Never expose your API key in the merchant app. See the full [Create POS Auth Token](https://docs.monei.com/apis/rest/pos-auth-token-create/.md) API reference. * cURL * Node.js * Python * PHP ``` curl -X POST https://api.monei.com/v1/pos/auth-token \ -H "Authorization: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{}' # Optional: include pointOfSaleId to associate payments with a specific terminal # -d '{"pointOfSaleId": "pos_abc123"}' ``` server.js ``` import {Monei} from '@monei-js/node-sdk'; const monei = new Monei('YOUR_API_KEY'); const {token} = await monei.posAuthToken.create({ // pointOfSaleId: 'pos_abc123', // optional // storeId: 'store_xyz', // optional }); // Send `token` to your merchant app ``` server.py ``` import Monei monei = Monei.MoneiClient(api_key="YOUR_API_KEY") result = monei.pos_auth_token.create( # point_of_sale_id="pos_abc123", # optional # store_id="store_xyz", # optional ) token = result.token # Send `token` to your merchant app ``` server.php ``` posAuthToken->create( new CreatePosAuthTokenRequest([ // 'point_of_sale_id' => 'pos_abc123', // optional // 'store_id' => 'store_xyz', // optional ]) ); $token = $result->getToken(); // Send $token to your merchant app ?> ``` ### Request Parameters[​](#request-parameters "Direct link to Request Parameters") | Parameter | Type | Required | Description | | --------------- | ------ | -------- | ----------------------------------------------------------------------------------------------------- | | `pointOfSaleId` | String | No | A unique identifier of the Point of Sale. If specified the payment is attached to this Point of Sale. | | `storeId` | String | No | A unique identifier of the Store. If specified the payment is attached to this Store. | ### Response[​](#response "Direct link to Response") ``` { "token": "eyJhbGciOiJSUzI1NiIs..." } ``` The token is a JWT (RS256-signed) containing the account ID and merchant metadata. It expires after **24 hours**. Generate one per session — you don't need a new token for each transaction. ## Step 3: Integrate Your App[​](#step-3-integrate-your-app "Direct link to Step 3: Integrate Your App") Install the SDK, configure your project, call `acceptPayment()` with the token from Step 2, and handle results. Each guide covers installation, platform setup, SDK reference, example app, and troubleshooting. * **[iOS](https://docs.monei.com/monei-pay/app-integration/ios/.md)** — Swift SDK via SPM or CocoaPods * **[Android](https://docs.monei.com/monei-pay/app-integration/android/.md)** — Kotlin SDK via GitHub Packages or JitPack, Direct vs Via MONEI Pay modes * **[React Native](https://docs.monei.com/monei-pay/app-integration/react-native/.md)** — Expo module, cross-platform with one API ## Verify Payments Server-Side[​](#verify-payments-server-side "Direct link to Verify Payments Server-Side") The SDK returns a `PaymentResult` to your app, but you should **always verify the payment from your backend** before fulfilling an order. This prevents client-side tampering. Use the [Get Payment](https://docs.monei.com/apis/rest/payments-get/.md) endpoint with the `transactionId` returned in the result: ``` curl https://api.monei.com/v1/payments/{transactionId} \ -H "Authorization: YOUR_API_KEY" ``` Alternatively, configure a `callbackUrl` when creating payments to receive asynchronous webhook notifications. See [Verify signature](https://docs.monei.com/guides/verify-signature/.md) for details on validating webhook payloads. ## Common Issues[​](#common-issues "Direct link to Common Issues") | Problem | Cause | Solution | | ------------------------------------------------------ | -------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | | SDK returns "app not found" | MONEI Pay (or CloudCommerce on Android Direct mode) is not installed | Install the required app on the device | | Token rejected / 401 | Token expired (>24h) or wrong API key environment | Generate a fresh token; ensure test key for test mode, live key for production | | NFC not working | NFC disabled or device unsupported | Check device settings; see [MONEI Pay overview](https://docs.monei.com/monei-pay/overview/.md) for device requirements | | Payment succeeds on device but backend shows no record | Missing server-side verification | Always verify via API or webhooks (see above) | ## Next Steps[​](#next-steps "Direct link to Next Steps") * [MONEI Pay overview](https://docs.monei.com/monei-pay/overview/.md) — product features and device requirements * [MONEI REST API](https://docs.monei.com/apis/rest/.md) — full API reference * [Testing](https://docs.monei.com/testing/.md) — test cards and sandbox environment * [Verify signature](https://docs.monei.com/guides/verify-signature/.md) — validate webhook payloads --- # iOS App Integration Accept NFC payments from your iOS app using the **MoneiPaySDK**. The SDK handles URL building, callback parsing, timeouts, and error handling. **Source:** [github.com/MONEI/monei-pay-ios-sdk](https://github.com/MONEI/monei-pay-ios-sdk) iOS Beta MONEI Pay for iOS is in beta. Join TestFlight to install: No entitlements needed Uses standard URL schemes — no special entitlements, certificates, or Apple approvals required. ## How It Works[​](#how-it-works "Direct link to How It Works") 1. Your app calls `MoneiPay.acceptPayment(...)` with a token and amount 2. The SDK opens MONEI Pay for the NFC tap-to-pay transaction 3. MONEI Pay redirects back to your app with the result 4. The SDK parses the callback and resolves a `PaymentResult` ## Prerequisites[​](#prerequisites "Direct link to Prerequisites") * [MONEI account](https://dashboard.monei.com/register) * iOS 15.0+, Swift 5.9+ * MONEI Pay installed on the device * POS auth token from your backend (see [Getting Started](https://docs.monei.com/monei-pay/app-integration/getting-started/.md)) ## Integration[​](#integration "Direct link to Integration") ### 1. Install the SDK[​](#1-install-the-sdk "Direct link to 1. Install the SDK") * Swift Package Manager * CocoaPods In Xcode: **File → Add Package Dependencies** → enter `https://github.com/MONEI/monei-pay-ios-sdk` → **Up to Next Major Version** from `0.2.2`. Or in `Package.swift`: Package.swift ``` dependencies: [ .package(url: "https://github.com/MONEI/monei-pay-ios-sdk", from: "0.2.2") ] ``` Podfile ``` pod 'MoneiPaySDK', :git => 'https://github.com/MONEI/monei-pay-ios-sdk.git', :tag => 'v0.2.2' ``` Run `pod install` and open the `.xcworkspace`. ### 2. Configure Info.plist[​](#2-configure-infoplist "Direct link to 2. Configure Info.plist") Info.plist ``` CFBundleURLTypes CFBundleURLSchemes your-app LSApplicationQueriesSchemes monei-pay ``` warning Replace `your-app` with your app's unique URL scheme (e.g. your bundle ID). Each merchant app must use a different scheme. ### 3. Wire the Callback Handler[​](#3-wire-the-callback-handler "Direct link to 3. Wire the Callback Handler") * SwiftUI * UIKit YourApp.swift ``` import SwiftUI import MoneiPaySDK @main struct YourApp: App { var body: some Scene { WindowGroup { ContentView() .onOpenURL { url in MoneiPay.handleCallback(url: url) } } } } ``` AppDelegate.swift ``` import MoneiPaySDK func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any] = [:]) -> Bool { return MoneiPay.handleCallback(url: url) } ``` ### 4. Accept a Payment[​](#4-accept-a-payment "Direct link to 4. Accept a Payment") ``` import MoneiPaySDK func acceptPayment() async { do { let result = try await MoneiPay.acceptPayment( token: "eyJ...", amount: 1500, description: "Order #123", customerName: "John Doe", customerEmail: "john@example.com", callbackScheme: "your-app" ) if result.success { print("Payment approved: \(result.transactionId)") print("Card: \(result.cardBrand ?? "") \(result.maskedCardNumber ?? "")") } } catch let error as MoneiPayError { switch error { case .moneiPayNotInstalled: break case .paymentCancelled: break case .paymentTimeout: break case .paymentFailed(let reason): print("Payment failed: \(reason ?? "unknown")") default: print("Error: \(error.localizedDescription)") } } } ``` ### SDK Reference[​](#sdk-reference "Direct link to SDK Reference") #### `MoneiPay.acceptPayment(...)`[​](#moneipayacceptpayment "Direct link to moneipayacceptpayment") | Parameter | Type | Required | Description | | ---------------- | --------------- | -------- | ------------------------------------------------- | | `token` | `String` | Yes | POS auth token (raw JWT, no "Bearer " prefix) | | `amount` | `Int` | Yes | Payment amount in cents (e.g. `1500` = 15.00 EUR) | | `description` | `String?` | No | Payment description | | `customerName` | `String?` | No | Customer name | | `customerEmail` | `String?` | No | Customer email | | `customerPhone` | `String?` | No | Customer phone | | `callbackScheme` | `String` | Yes | Your app's registered URL scheme | | `timeout` | `TimeInterval?` | No | Timeout in seconds (default: 60) | #### `PaymentResult`[​](#paymentresult "Direct link to paymentresult") | Property | Type | Description | | ------------------ | --------- | -------------------------------------- | | `transactionId` | `String` | MONEI transaction ID | | `success` | `Bool` | Whether the payment was approved | | `amount` | `Int?` | Payment amount in cents | | `cardBrand` | `String?` | Card brand (e.g. `visa`, `mastercard`) | | `maskedCardNumber` | `String?` | Masked card number (e.g. `****1234`) | #### Error Types[​](#error-types "Direct link to Error Types") | Error | Description | | ------------------------ | ---------------------------------------- | | `moneiPayNotInstalled` | MONEI Pay is not installed | | `paymentInProgress` | Another payment is already active | | `paymentTimeout` | No response within the timeout | | `paymentCancelled` | User cancelled | | `paymentFailed(reason:)` | Payment declined or failed | | `invalidParameters(_:)` | Invalid input (e.g. non-positive amount) | | `failedToOpen` | Could not open MONEI Pay | *** ## Manual Integration (URL Scheme)[​](#manual-integration-url-scheme "Direct link to Manual Integration (URL Scheme)") If you prefer not to use the SDK, you can integrate directly via URL schemes. Show manual URL scheme integration ### Open the Payment URL[​](#open-the-payment-url "Direct link to Open the Payment URL") ``` func acceptPayment(amountInCents: Int) { var components = URLComponents(string: "monei-pay://accept-payment")! components.queryItems = [ URLQueryItem(name: "amount", value: String(amountInCents)), URLQueryItem(name: "auth_token", value: "eyJ..."), URLQueryItem(name: "callback", value: "your-app://payment-result") ] guard let url = components.url else { return } UIApplication.shared.open(url) } ``` ### Handle the Callback[​](#handle-the-callback "Direct link to Handle the Callback") ``` struct PaymentResult { let success: Bool let transactionId: String? let amount: String? let cardBrand: String? let maskedCardNumber: String? let error: String? init(from url: URL) { let params = URLComponents(url: url, resolvingAgainstBaseURL: false)? .queryItems? .reduce(into: [String: String]()) { $0[$1.name] = $1.value } ?? [:] self.success = params["success"] == "true" self.transactionId = params["transaction_id"] self.amount = params["amount"] self.cardBrand = params["card_brand"] self.maskedCardNumber = params["masked_card_number"] self.error = params["error"] } } ``` ### URL Parameters[​](#url-parameters "Direct link to URL Parameters") #### Request Parameters[​](#request-parameters "Direct link to Request Parameters") | Parameter | Type | Required | Description | | ---------------- | ------- | -------- | ------------------------------------------------------------------------------------------------- | | `amount` | Integer | Yes | Payment amount in cents (e.g. `1500` = 15.00 EUR) | | `auth_token` | String | Yes | POS auth token (raw JWT) | | `callback` | String | No | Custom URL scheme where MONEI Pay sends the result. Must be a custom scheme (not `http`/`https`). | | `description` | String | No | Payment description | | `customer_name` | String | No | Customer name | | `customer_email` | String | No | Customer email | | `customer_phone` | String | No | Customer phone | #### Callback Parameters (Success)[​](#callback-parameters-success "Direct link to Callback Parameters (Success)") | Parameter | Type | Description | | -------------------- | ------ | -------------------------------------- | | `success` | String | `"true"` | | `transaction_id` | String | MONEI transaction ID | | `amount` | String | Payment amount in cents | | `card_brand` | String | Card brand (e.g. `visa`, `mastercard`) | | `masked_card_number` | String | Masked card number (e.g. `****1234`) | #### Callback Parameters (Error)[​](#callback-parameters-error "Direct link to Callback Parameters (Error)") | Parameter | Type | Description | | --------- | ------ | ------------------------------------------------------------------------- | | `success` | String | `"false"` | | `error` | String | Error code (e.g. `PAYMENT_FAILED`, `INVALID_AMOUNT`, `NOT_AUTHENTICATED`) | ## Example App[​](#example-app "Direct link to Example App") The [`examples/MerchantDemo`](https://github.com/MONEI/monei-pay-ios-sdk/tree/master/examples/MerchantDemo) directory contains a SwiftUI app demonstrating the full flow. Open `MerchantDemo.xcodeproj`, set your signing team, and run on a physical device with MONEI Pay installed. The project references the SDK as a local package, so SDK changes apply immediately. ## Troubleshooting[​](#troubleshooting "Direct link to Troubleshooting") ### `moneiPayNotInstalled`[​](#moneipaynotinstalled "Direct link to moneipaynotinstalled") MONEI Pay must be installed on the device. During beta, install via TestFlight: ### `failedToOpen`[​](#failedtoopen "Direct link to failedtoopen") Verify `monei-pay` is listed in `LSApplicationQueriesSchemes` in your `Info.plist`. Without it, iOS blocks the `canOpenURL` check. ### `paymentTimeout`[​](#paymenttimeout "Direct link to paymenttimeout") Default timeout is 60 seconds. Increase via the `timeout` parameter if needed. The timer uses wall-clock time — backgrounding your app does not pause it. ### Callback not received[​](#callback-not-received "Direct link to Callback not received") Check that your URL scheme is registered under `CFBundleURLTypes` in `Info.plist`, and that `MoneiPay.handleCallback(url:)` is called in `onOpenURL` (SwiftUI) or `application(_:open:options:)` (UIKit). See [Wire the Callback Handler](#3-wire-the-callback-handler). ### Payment works in simulator but not on device[​](#payment-works-in-simulator-but-not-on-device "Direct link to Payment works in simulator but not on device") NFC payments require a physical device with MONEI Pay installed. Simulators are not supported. --- # React Native App Integration Accept NFC payments from your React Native app using [`@monei-js/monei-pay-react-native-sdk`](https://www.npmjs.com/package/@monei-js/monei-pay-react-native-sdk). Built as an Expo module — works with both Expo and bare React Native projects. **Source:** [github.com/MONEI/monei-pay-react-native-sdk](https://github.com/MONEI/monei-pay-react-native-sdk) Cross-platform One API for both platforms. The SDK handles URL schemes on iOS and intents on Android automatically. ## How It Works[​](#how-it-works "Direct link to How It Works") 1. Your app calls `MoneiPay.acceptPayment(...)` with a token and amount 2. **iOS:** the SDK opens MONEI Pay via URL scheme 3. **Android:** the SDK launches CloudCommerce (default) or MONEI Pay via intent 4. The payment result resolves as a promise ## Prerequisites[​](#prerequisites "Direct link to Prerequisites") * [MONEI account](https://dashboard.monei.com/register) * React Native 0.73+ / Expo SDK 50+ * POS auth token from your backend (see [Getting Started](https://docs.monei.com/monei-pay/app-integration/getting-started/.md)) * **iOS:** MONEI Pay installed on the device * **Android (Direct):** CloudCommerce installed * **Android (Via MONEI Pay):** MONEI Pay installed Development build required This SDK includes native code — [development builds](https://docs.expo.dev/develop/development-builds/introduction/) only. Expo Go is not supported. ## Integration[​](#integration "Direct link to Integration") ### 1. Install the SDK[​](#1-install-the-sdk "Direct link to 1. Install the SDK") ``` npx expo install @monei-js/monei-pay-react-native-sdk ``` Or install directly from GitHub: ``` npx expo install @monei-js/monei-pay-react-native-sdk@github:MONEI/monei-pay-react-native-sdk ``` ### 2. Platform Configuration[​](#2-platform-configuration "Direct link to 2. Platform Configuration") #### iOS[​](#ios "Direct link to iOS") Add to `app.json` (or `Info.plist` directly): app.json ``` { "expo": { "scheme": "your-app", "ios": { "infoPlist": { "LSApplicationQueriesSchemes": ["monei-pay"] } } } } ``` Wire the callback handler: App.tsx ``` import {Linking} from 'react-native'; import * as MoneiPay from '@monei-js/monei-pay-react-native-sdk'; import {useEffect} from 'react'; export default function App() { useEffect(() => { const subscription = Linking.addEventListener('url', ({url}) => { MoneiPay.handleCallback(url); }); return () => subscription.remove(); }, []); // ... } ``` #### Android[​](#android "Direct link to Android") No configuration needed. The SDK's `AndroidManifest.xml` includes the required `` entries, merged automatically by the build system. ### 3. Accept a Payment[​](#3-accept-a-payment "Direct link to 3. Accept a Payment") ``` import * as MoneiPay from '@monei-js/monei-pay-react-native-sdk'; async function acceptPayment() { try { const result = await MoneiPay.acceptPayment({ token: 'eyJ...', amount: 1500, description: 'Order #123', customerName: 'John Doe', customerEmail: 'john@example.com', callbackScheme: 'your-app', // iOS only mode: 'direct' // Android only: 'direct' (default) or 'via-monei-pay' }); if (result.success) { console.log('Payment approved:', result.transactionId); console.log('Card:', result.cardBrand, result.maskedCardNumber); } } catch (error) { console.error('Payment error:', error.message); } } ``` ### SDK Reference[​](#sdk-reference "Direct link to SDK Reference") #### `acceptPayment(params)`[​](#acceptpaymentparams "Direct link to acceptpaymentparams") | Parameter | Type | Required | Description | | ---------------- | -------- | ----------------- | ------------------------------------------------- | | `token` | `string` | Yes | POS auth token (raw JWT, no "Bearer " prefix) | | `amount` | `number` | Yes | Payment amount in cents (e.g. `1500` = 15.00 EUR) | | `description` | `string` | No | Payment description | | `customerName` | `string` | No | Customer name | | `customerEmail` | `string` | No | Customer email | | `customerPhone` | `string` | No | Customer phone | | `callbackScheme` | `string` | Yes (iOS only) | Your app's registered URL scheme | | `mode` | `string` | No (Android only) | `'direct'` (default) or `'via-monei-pay'` | #### `handleCallback(url)`[​](#handlecallbackurl "Direct link to handlecallbackurl") Handle the callback URL from MONEI Pay (iOS only). Wire into your `Linking` handler. Returns `boolean` — `true` if the URL was handled. #### `cancelPendingPayment()`[​](#cancelpendingpayment "Direct link to cancelpendingpayment") Cancel any pending payment. The promise rejects with `'CANCELLED'`. #### `PaymentResult`[​](#paymentresult "Direct link to paymentresult") | Property | Type | Description | | ------------------ | --------- | -------------------------------------- | | `transactionId` | `string` | MONEI transaction ID | | `success` | `boolean` | Whether the payment was approved | | `amount` | `number` | Payment amount in cents | | `cardBrand` | `string` | Card brand (e.g. `visa`, `mastercard`) | | `maskedCardNumber` | `string` | Masked card number (e.g. `****1234`) | #### Error Codes[​](#error-codes "Direct link to Error Codes") | Code | Description | | --------------------- | ---------------------------------------- | | `NOT_INSTALLED` | MONEI Pay or CloudCommerce not installed | | `PAYMENT_IN_PROGRESS` | Another payment is already active | | `PAYMENT_FAILED` | Payment declined or failed | | `PAYMENT_TIMEOUT` | No response in time (iOS) | | `CANCELLED` | User cancelled | | `INVALID_PARAMS` | Invalid input parameters | | `INVALID_TOKEN` | Auth token invalid or expired | | `FAILED_TO_OPEN` | Could not open MONEI Pay (iOS) | ## Example App[​](#example-app "Direct link to Example App") The [`example/`](https://github.com/MONEI/monei-pay-react-native-sdk/tree/master/example) directory contains a merchant demo app. From that folder run `npm install`, then `npx expo run:ios` or `npx expo run:android`. Use a **physical device** — NFC is not available in simulators or emulators. --- # MONEI Pay MONEI Pay is available as a **mobile app** (iOS and Android) and a **[web app](https://pay.monei.com/)** that works in any browser and can be installed to your home screen. The mobile app supports NFC tap-to-pay and QR code payments. The web app supports QR code payments only (no NFC). ## Features[​](#features "Direct link to Features") * **NFC Tap-to-Pay** — Accept cards and digital wallets by tapping against your phone (mobile only) * **QR Code Payments** — Generate one-time or permanent QR codes for customers to scan and pay ([learn more](https://docs.monei.com/integrations/use-qr-payments/.md)) * **Web App** — Accept QR code payments from any browser at [pay.monei.com](https://pay.monei.com/) — can be installed to your home screen, no app store needed * **App-to-App Integration** — Trigger payments from your own merchant app using native SDKs ([see below](#app-to-app-integration)) * **Multi-store Support** — Manage multiple points of sale under one MONEI account ## Download[​](#download "Direct link to Download") [![Download MONEI Pay on the App Store](/img/app-store-icon.svg)](https://apps.apple.com/app/monei-pay/id6478438783)[![Get MONEI Pay on Google Play](/img/google-play-icon.svg)](https://play.google.com/store/apps/details?id=com.monei.pay) Or use the web app at **[pay.monei.com](https://pay.monei.com/)** — works in any browser and can be installed to your home screen. ## Supported Platforms[​](#supported-platforms "Direct link to Supported Platforms") | Platform | NFC Tap-to-Pay | QR Payments | Requirements | | -------- | -------------- | ----------- | ----------------------------------------- | | iOS | Yes | Yes | iPhone XS or later, iOS 17.4+ | | Android | Yes | Yes | Android 8.0+ (API 26), NFC-capable device | | Web | No | Yes | Any modern browser | ## App-to-App Integration[​](#app-to-app-integration "Direct link to App-to-App Integration") Launch MONEI Pay from your own merchant app to accept NFC payments and receive results back. Your backend generates a short-lived POS auth token; the SDKs handle the rest. No special entitlements or platform approvals required. **[Get started with the MONEI Pay SDKs](https://docs.monei.com/monei-pay/app-integration/getting-started/.md)** — backend setup, SDK installation, and platform-specific guides. ## Before You Begin[​](#before-you-begin "Direct link to Before You Begin") 1. Create a [MONEI account](https://dashboard.monei.com/register). 2. Install MONEI Pay on the device that will accept payments. 3. Sign in with your MONEI account credentials. --- # Apple Pay * Web * Native iOS App ## Web Integration[​](#web-integration "Direct link to Web Integration") You can start accepting Apple Pay payments on the Web using [Hosted Payment Page](https://docs.monei.com/integrations/use-prebuilt-payment-page/.md) or [Payment Request Component](https://docs.monei.com/monei-js/reference/.md#paymentrequest-component). No additional configuration is required to use Apple Pay in Hosted Payment Page. Our [Payment Request Component](https://docs.monei.com/monei-js/reference/.md#paymentrequest-component) gives you a single integration for Apple Pay and Google Pay. Customers see a Google Pay or an Apple Pay button, depending on what their device and browser combination supports. info Open this page in Safari to see the Apple Pay button. If you prefer to integrate directly against the Apple Pay API, follow the [direct API integration guide](#direct-api-integration) below. ### Register your domain with Apple Pay[​](#register-your-domain-with-apple-pay "Direct link to Register your domain with Apple Pay") If you are using [WooCommerce Plugin](https://docs.monei.com/e-commerce/woocommerce/.md) or [custom domain](https://dashboard.monei.com/settings/custom-domain) with [MONEI Hosted Payment Page](https://docs.monei.com/integrations/use-prebuilt-payment-page/.md) your domain is verified automatically. To register your domain with Apple, you will need to first verify your ownership of the domain. Go to your [MONEI Dashboard → Settings → Payment Methods](https://dashboard.monei.com/settings/payment-methods), choose **Register domain with Apple** and follow the instructions in the popup. You can also verify your domain with Apple using [MONEI REST API](https://docs.monei.com/apis/rest/apple-pay-domain-register/.md). ### Express Checkout[​](#express-checkout "Direct link to Express Checkout") Use express checkout to collect shipping and billing addresses directly in the Apple Pay payment sheet. See the [Express Checkout guide](https://docs.monei.com/integrations/express-checkout/.md) for setup and examples. ### Direct API Integration[​](#direct-api-integration "Direct link to Direct API Integration") Before you start, you need to: * Add a card to your Wallet for Safari. * Serve your application over HTTPS. This is a requirement both in development and in production. One way to get up and running is to use a service like [ngrok](https://ngrok.com/). * [Register your domain with Apple Pay](#register-your-domain-with-apple-pay), both in development and production. * Follow [Apples's instructions](https://developer.apple.com/documentation/apple_pay_on_the_web). Include `monei.js` on your checkout page by adding the script tag to the `head` of your HTML file. checkout.html ``` Checkout ``` Create Apple Pay Session ``` const session = new window.ApplePaySession(3, request); session.onvalidatemerchant = async (event: any) => { try { const merchantSession = await monei.api.createApplePaySession({ accountId: 'MONEI_ACCOUNT_ID', displayName: 'Test Merchant', domainName: 'example.com', validationUrl: event.validationURL }); session.completeMerchantValidation(merchantSession); } catch (error) { session.abort(); } }; ``` Exchange Apple Pay token for MONEI Payment Token that can be used to confirm payment. ``` session.onpaymentauthorized = async (event) => { // Encode Apple Pay token as a base64 string const paymentToken = JSON.stringify(event.payment.token); const token = window.btoa(paymentToken); try { const result = await monei.api.createToken({ paymentId: '{{payment_id}}', paymentMethod: { applePay: {token} } }); session.completePayment({ status: window.ApplePaySession.STATUS_SUCCESS }); return moneiTokenHandler(result.paymentToken); } catch (error) { session.completePayment({ status: window.ApplePaySession.STATUS_FAILURE }); } }; session.begin(); ``` ### Confirm the Payment[​](#confirm-the-payment "Direct link to Confirm the Payment") After you have obtained the MONEI Payment Token, you can confirm the payment using the token. ``` async function moneiTokenHandler(token) { try { const result = await monei.confirmPayment({ paymentId: '{{payment_id}}', paymentToken: token }); // At this moment you can show a customer the payment result // But you should always rely on the result passed to the callback endpoint // on your server to update the order status console.log(result); } catch (error) { console.error(error); } } ``` ## Native iOS App Integration[​](#native-ios-app-integration "Direct link to Native iOS App Integration") If you're building a native iOS application with Apple Pay, you need to create a custom Apple Pay Payment Processing Certificate. This certificate allows your app to decrypt Apple Pay tokens and process payments through MONEI. ### Create a Custom Certificate[​](#create-a-custom-certificate "Direct link to Create a Custom Certificate") 1. Go to [Apple Pay Certificates Settings](https://dashboard.monei.com/settings/apple-pay-certificates) in your MONEI Dashboard 2. Click **Create certificate** to generate a Certificate Signing Request (CSR) 3. Download the CSR file 4. Go to [Apple Developer Portal - Certificates](https://developer.apple.com/account/resources/certificates/list) 5. Click the **+** button to create a new certificate 6. Select **Apple Pay Payment Processing Certificate** 7. Select your Merchant ID and click Continue 8. Upload the CSR file you downloaded from MONEI 9. Download the generated certificate (.cer file) 10. Return to [MONEI Dashboard](https://dashboard.monei.com/settings/apple-pay-certificates) and upload the certificate to activate it info The private key is securely generated and stored by MONEI. You never need to handle private keys directly. ### Initialize Apple Pay[​](#initialize-apple-pay "Direct link to Initialize Apple Pay") Create your `PKPaymentRequest` in Swift. The `merchantIdentifier` is provided by MONEI - obtain it from the [Get PaymentMethods](https://docs.monei.com/apis/rest/payment-methods-get/.md) API under `metadata.applePay.merchantId` (both test and production: `merchant.com.monei`): ``` let paymentRequest = PKPaymentRequest() paymentRequest.merchantIdentifier = "merchant.com.monei" // From MONEI API paymentRequest.countryCode = "ES" paymentRequest.currencyCode = "EUR" paymentRequest.supportedNetworks = [.visa, .masterCard, .amex] paymentRequest.merchantCapabilities = .capability3DS paymentRequest.paymentSummaryItems = [ PKPaymentSummaryItem(label: "Your Store Name", amount: NSDecimalNumber(value: 10.00)) ] ``` ### Process Payments[​](#process-payments "Direct link to Process Payments") Once the user authorizes the payment, you'll receive a `PKPayment` object. Send the payment token to your backend, then use the MONEI API to process it: 1. Base64 encode the Apple Pay token from `payment.token.paymentData` 2. Create a MONEI payment token using the Create Token API 3. Confirm the payment using the token ``` // In your PKPaymentAuthorizationViewControllerDelegate func paymentAuthorizationViewController( _ controller: PKPaymentAuthorizationViewController, didAuthorizePayment payment: PKPayment, handler completion: @escaping (PKPaymentAuthorizationResult) -> Void ) { // Send payment.token.paymentData to your backend let tokenData = payment.token.paymentData.base64EncodedString() // Your backend calls MONEI API to process the payment } ``` On your backend, exchange the Apple Pay token for a MONEI payment token and confirm the payment. ## Before you go live[​](#before-you-go-live "Direct link to Before you go live") * Make sure that you are using [live (production) mode](https://docs.monei.com/testing/.md) Account ID and API Key. * Make sure that you have at least one [enabled card processor](https://dashboard.monei.com/settings/payment-methods/card). * Contact our [Support Team](https://support.monei.com/hc/requests/new) to configure Apple Pay in production. --- # Bizum Accept [Bizum](https://bizum.es/) payments on your website or mobile app using the [Hosted Payment Page](https://docs.monei.com/integrations/use-prebuilt-payment-page/.md) or [Bizum Component](https://docs.monei.com/monei-js/reference/.md#bizum-component). No extra configuration is needed for the Hosted Payment Page. The [Bizum Component](https://docs.monei.com/monei-js/reference/.md#bizum-component) renders a Bizum button on your payment page. When customers select Bizum, an overlay appears where they enter their registered phone number to complete the payment. ## Before you begin[​](#before-you-begin "Direct link to Before you begin") **Bizum is activated automatically — you do not need to do anything.** Once your account is fully approved, Bizum is enabled within **2–3 business days** on average. Please [contact our Support Team](https://support.monei.com/hc/requests/new) if it has not been activated after 7 days. For automatic activation to succeed, your website must be publicly accessible. If it is password-protected, provide the credentials during onboarding or submit them by [opening a Support Team request](https://support.monei.com/hc/requests/new) — otherwise Bizum will not be activated. Once activated, Bizum appears in [MONEI Dashboard → Settings → Payment Methods](https://dashboard.monei.com/settings/payment-methods). To test your integration: * Use your [test mode](https://docs.monei.com/testing/.md) Account ID and API Key. * Use the test [phone numbers](https://docs.monei.com/testing/.md#test-bizum-phone-numbers). * You can check the status of a test payment in your [MONEI Dashboard → Payments](https://dashboard.monei.com/payments) (in test mode). ## Integration[​](#integration "Direct link to Integration") ### 1. Create a Payment `Server-side`[​](#1-create-a-payment-server-side "Direct link to 1-create-a-payment-server-side") Create a [Payment](https://docs.monei.com/apis/rest/schemas/payment/.md) on your server with an amount and currency. Always decide how much to charge on the server side, a trusted environment, as opposed to the client. This prevents malicious customers from being able to choose their own prices. * cURL * Node.js * PHP * Python POST https\://api.monei.com/v1/payments ``` curl --request POST 'https://api.monei.com/v1/payments' \ --header 'Authorization: YOUR_API_KEY' \ --header 'Content-Type: application/json' \ --data-raw '{ "amount": 110, "currency": "EUR", "orderId": "14379133960355", "description": "Test Shop - #14379133960355", "customer": { "email": "email@example.com" }, "callbackUrl": "https://example.com/checkout/callback" }' ``` (Replace `YOUR_API_KEY` with your actual MONEI API key) server.js ``` import {Monei} from '@monei-js/node-sdk'; // Replace YOUR_API_KEY with your actual MONEI API key const monei = new Monei('YOUR_API_KEY'); const payment = await monei.payments.create({ amount: 110, currency: 'EUR', orderId: '14379133960355', description: 'Test Shop - #14379133960355', customer: { email: 'email@example.com' }, callbackUrl: 'https://example.com/checkout/callback' }); // Pass payment.id to your client-side const paymentId = payment.id; ``` server.php ``` payments->create( new CreatePaymentRequest([ 'amount' => 110, 'currency' => 'EUR', 'order_id' => '14379133960355', 'description' => 'Test Shop - #14379133960355', 'customer' => new PaymentCustomer([ 'email' => 'email@example.com' ]), 'callback_url' => 'https://example.com/checkout/callback' ]) ); // Pass payment ID to your client-side $paymentId = $payment->getId(); ?> ``` server.py ``` import Monei from Monei import CreatePaymentRequest, PaymentCustomer # Replace YOUR_API_KEY with your actual MONEI API key monei = Monei.MoneiClient(api_key="YOUR_API_KEY") payment = monei.payments.create( CreatePaymentRequest( amount=110, currency="EUR", order_id="14379133960355", description="Test Shop - #14379133960355", customer=PaymentCustomer( email="email@example.com" ), callback_url="https://example.com/checkout/callback" ) ) # Pass payment ID to your client-side payment_id = payment.id ``` The following parameters are required: * **amount** positive integer - Amount intended to be collected by this payment. A positive integer representing how much to charge in the smallest currency unit (e.g., 100 cents to charge 1.00 USD) * **currency** string - Three-letter [ISO currency code](https://en.wikipedia.org/wiki/ISO_4217), in uppercase. Must be a supported currency. * **orderId** string - An order ID from your system. A unique identifier that can be used to reconcile the payment with your internal system. * **callbackUrl** string - The URL to which a payment result should be sent asynchronously. Check all available [request parameters](https://docs.monei.com/apis/rest/payments-create/.md). Included in the returned Payment object is a payment `id`, which is used on the client side to securely complete the payment process instead of passing the entire Payment object. ### 2. Add Bizum to your payment page `Client-side`[​](#2-add-bizum-to-your-payment-page-client-side "Direct link to 2-add-bizum-to-your-payment-page-client-side") Include `monei.js` on your checkout page by adding the script tag to the `head` of your HTML file. checkout.html ``` Checkout ``` Add MONEI [Bizum Component](https://docs.monei.com/monei-js/reference/.md#bizum-component) to your payment page. Create empty DOM node (container) with unique ID in your payment form. checkout.html ```
``` Initialize Bizum Component client.js ``` // Create an instance of the Bizum component. const bizum = monei.Bizum({ paymentId: '{{payment_id}}', onSubmit(result) { // result.paymentMethod === 'bizum' moneiTokenHandler(result.token); }, onError(error) { console.log(error); } }); // Render an instance of the Bizum component into the `bizum_container`
. bizum.render('#bizum_container'); ``` note Bizum Component is also available as a [React](https://docs.monei.com/monei-js/react/.md), [Vue](https://docs.monei.com/monei-js/vue/.md), [Angular](https://docs.monei.com/monei-js/angular/.md), and [Svelte](https://docs.monei.com/monei-js/svelte/.md) component. Check the [MONEI JS Reference](https://docs.monei.com/monei-js/reference/.md#bizum-component) for more options. ### 3. Confirm the payment `Client-side`[​](#3-confirm-the-payment-client-side "Direct link to 3-confirm-the-payment-client-side") To complete the payment you need to confirm it using monei.js [confirmPayment](https://docs.monei.com/monei-js/reference/.md#confirmpayment-function) function. You need to provide a `paymentId` (obtained in [step 1](#1-create-a-payment-server-side)) and `paymentToken` generated with Bizum Component. You can also provide additional parameters like `customer.email`. Check all available [parameters](https://docs.monei.com/apis/rest/payments-confirm/.md). client.js ``` // Confirm the payment async function moneiTokenHandler(token) { try { const result = await monei.confirmPayment({ paymentId: '{{payment_id}}', paymentToken: token }); // At this moment you can show a customer the payment result // But you should always rely on the result passed to the callback endpoint // on your server to update the order status console.log(result); } catch (error) { console.error(error); } } ``` note As an alternative process you can submit generated `paymentToken` to your server and then [confirm payment](https://docs.monei.com/apis/rest/payments-confirm/.md) on the server-side. ### 4. Process Webhook Notification `Server-side`[​](#4-process-webhook-notification-server-side "Direct link to 4-process-webhook-notification-server-side") After the client-side interaction and any necessary background processing, MONEI sends the final, authoritative payment status via an asynchronous HTTP POST request to the `callbackUrl` you provided in Step 1. The request body contains the full [Payment object](https://docs.monei.com/apis/rest/schemas/payment/.md) in JSON format. This webhook is the **only reliable way** to confirm the definitive payment outcome. **Crucially, you must:** 1. **Verify the `MONEI-Signature` header** included in the request. This confirms the webhook genuinely came from MONEI. See the [Verify Signatures guide](https://docs.monei.com/guides/verify-signature/.md) for implementation details. 2. **Return a `200 OK` HTTP status code** immediately upon receiving the webhook to acknowledge receipt. Any other status code tells MONEI the notification failed. If MONEI doesn't receive a `200 OK`, it will retry sending the webhook. Once the signature is verified, inspect the `status` field in the Payment object (`SUCCEEDED`, `FAILED`, `CANCELED`, etc.) to determine whether to fulfill the order or handle the failure. ## Before you go live[​](#before-you-go-live "Direct link to Before you go live") * Make sure that you are using [live (production) mode](https://docs.monei.com/testing/.md) Account ID and API Key. * Make sure that you have connected your Bizum business account in [MONEI Dashboard](https://dashboard.monei.com/settings/payment-methods). ## Additional information[​](#additional-information "Direct link to Additional information") ### Payment status monitoring[​](#payment-status-monitoring "Direct link to Payment status monitoring") MONEI actively monitors Bizum transaction status to ensure consistency between the payment gateway and processor, preventing discrepancies that could affect merchants or consumers. ### Amount limits[​](#amount-limits "Direct link to Amount limits") Online Bizum transactions have no maximum amount limit. If a transaction fails, it may be due to the issuing bank imposing its own limit or insufficient funds. Unlike peer-to-peer (P2P) limits, there is no monthly cap on online purchases. ### Pre-authentications[​](#pre-authentications "Direct link to Pre-authentications") Bizum supports pre-authentications (`transactionType: AUTH`) to verify the Bizum number belongs to the account holder without holding funds. After successful authentication, you have up to 30 days to capture the payment. Both full and partial captures are supported. If insufficient funds are available at capture time, the transaction will not proceed. No additional SCA is required during capture. Pre-authentications are available only if the customer's bank supports the RTP (Request to Pay) flow. ### Refunds[​](#refunds "Direct link to Refunds") Bizum transactions can be refunded within 180 days. Refunds may fail if: * The customer has disconnected their Bizum account. * The customer has changed the link between their phone number and IBAN. * The issuing bank is experiencing internal issues with Bizum notifications. ### Subscriptions[​](#subscriptions "Direct link to Subscriptions") You can use Bizum for subscriptions or recurring payments, similar to card-based subscriptions. Set Bizum as the payment method when creating a subscription through the MONEI API. Key considerations: * Bank coverage is still being deployed, with 90%+ user coverage targeted. If the customer's bank does not support Bizum subscriptions, the subscription will not work. Confirm this directly with your customer. * The customer authorizes only the first payment. Subsequent payments are processed automatically via the MONEI subscriptions engine, or you can manage them manually using the recurring payments API. * Only one recurring payment per month can be made through Bizum, and the subscription amount cannot be changed after the first payment. ### Payment Request[​](#payment-request "Direct link to Payment Request") You can [send a payment request](https://docs.monei.com/apis/rest/payments-send-request/.md) directly to the customer's phone. If the phone number is registered with Bizum, the customer receives a push notification to confirm the payment in their banking app. If not, they receive a payment link via WhatsApp. This feature works independently of the UI Component. Example of a Bizum push notification: ![Bizum Push Notification](/img/bizum-push-notification.png) --- # Cards You can start accepting Card payments on the Web using [Hosted Payment Page](https://docs.monei.com/integrations/use-prebuilt-payment-page/.md) or [Card Input Component](https://docs.monei.com/monei-js/reference/.md#cardinput-component). No additional configuration is required for the Hosted Payment Page. It already supports all available payment methods and does not require coding. Our [Card Input Component](https://docs.monei.com/monei-js/reference/.md#cardinput-component) renders a card input to your custom payment page. The Card Input Component lets you securely collect card information all within one component. It includes a dynamically-updating card brand icon as well as inputs for number, expiry and CVC. It is responsive, optimized for mobile devices, completely customizable and localized to 14 languages. [](https://payments-demo.monei.com) [Live demo](https://payments-demo.monei.com) [Source code](https://github.com/MONEI/monei-payments-demo) ## Before you begin[​](#before-you-begin "Direct link to Before you begin") This page explains how to add Card Input Component to your custom payment page. If you don't need a custom checkout experience we recommend using our [Hosted Payment Page](https://docs.monei.com/integrations/use-prebuilt-payment-page/.md). To accept card payments you need to have at least one configured Card processor. To configure Card processors go to [MONEI Dashboard → Settings → Payment Methods → Card payments](https://dashboard.monei.com/settings/payment-methods/card). To test your integration: * Use your [test mode](https://docs.monei.com/testing/.md) Account ID and API Key. * Use the test [card numbers](https://docs.monei.com/testing/.md#test-card-numbers). * You can check the status of a test payment in your [MONEI Dashboard → Payments](https://dashboard.monei.com/payments) (in test mode). ## Integration[​](#integration "Direct link to Integration") ### 1. Create a Payment `Server-side`[​](#1-create-a-payment-server-side "Direct link to 1-create-a-payment-server-side") Create a [Payment](https://docs.monei.com/apis/rest/schemas/payment/.md) on your server with an amount and currency. Always decide how much to charge on the server side, a trusted environment, as opposed to the client. This prevents malicious customers from being able to choose their own prices. * cURL * Node.js * PHP * Python POST https\://api.monei.com/v1/payments ``` curl --request POST 'https://api.monei.com/v1/payments' \ --header 'Authorization: YOUR_API_KEY' \ --header 'Content-Type: application/json' \ --data-raw '{ "amount": 110, "currency": "EUR", "orderId": "14379133960355", "description": "Test Shop - #14379133960355", "customer": { "email": "email@example.com" }, "callbackUrl": "https://example.com/checkout/callback" }' ``` (Replace `YOUR_API_KEY` with your actual MONEI API key) server.js ``` import {Monei} from '@monei-js/node-sdk'; // Replace YOUR_API_KEY with your actual MONEI API key const monei = new Monei('YOUR_API_KEY'); const payment = await monei.payments.create({ amount: 110, currency: 'EUR', orderId: '14379133960355', description: 'Test Shop - #14379133960355', customer: { email: 'email@example.com' }, callbackUrl: 'https://example.com/checkout/callback' }); // Pass payment.id to your client-side const paymentId = payment.id; ``` server.php ``` payments->create( new CreatePaymentRequest([ 'amount' => 110, 'currency' => 'EUR', 'order_id' => '14379133960355', 'description' => 'Test Shop - #14379133960355', 'customer' => new PaymentCustomer([ 'email' => 'email@example.com' ]), 'callback_url' => 'https://example.com/checkout/callback' ]) ); // Pass payment ID to your client-side $paymentId = $payment->getId(); ?> ``` server.py ``` import Monei from Monei import CreatePaymentRequest, PaymentCustomer # Replace YOUR_API_KEY with your actual MONEI API key monei = Monei.MoneiClient(api_key="YOUR_API_KEY") payment = monei.payments.create( CreatePaymentRequest( amount=110, currency="EUR", order_id="14379133960355", description="Test Shop - #14379133960355", customer=PaymentCustomer( email="email@example.com" ), callback_url="https://example.com/checkout/callback" ) ) # Pass payment ID to your client-side payment_id = payment.id ``` The following parameters are required: * **amount** positive integer - Amount intended to be collected by this payment. A positive integer representing how much to charge in the smallest currency unit (e.g., 100 cents to charge 1.00 USD) * **currency** string - Three-letter [ISO currency code](https://en.wikipedia.org/wiki/ISO_4217), in uppercase. Must be a supported currency. * **orderId** string - An order ID from your system. A unique identifier that can be used to reconcile the payment with your internal system. * **callbackUrl** string - The URL to which a payment result should be sent asynchronously. Check all available [request parameters](https://docs.monei.com/apis/rest/payments-create/.md). Included in the returned Payment object is a payment `id`, which is used on the client side to securely complete the payment process instead of passing the entire Payment object. ### 2. Collect card details `Client-side`[​](#2-collect-card-details-client-side "Direct link to 2-collect-card-details-client-side") Include `monei.js` on your checkout page by adding the script tag to the `head` of your HTML file. checkout.html ``` Checkout ``` Add MONEI [Card Input Component](https://docs.monei.com/monei-js/reference/.md#cardinput-component) to your payment page. Create empty DOM nodes (containers) with unique IDs in your payment form. checkout.html ```
``` Initialize Card Input Component client.js ``` const container = document.getElementById('card-input'); const errorText = document.getElementById('card-error'); // Create an instance of the Card Input using payment_id. const cardInput = monei.CardInput({ paymentId: '{{payment_id}}', onChange: function (event) { // Handle real-time validation errors. if (event.isTouched && event.error) { container.classList.add('is-invalid'); errorText.innerText = event.error; } else { container.classList.remove('is-invalid'); errorText.innerText = ''; } } }); // Render an instance of the Card Input into the `card_input`
. cardInput.render(container); ``` The Card Input Component simplifies the form and minimizes the number of required fields by inserting a single, flexible input field that securely collects all necessary card details. note Card Input Component is also available as a [React](https://docs.monei.com/monei-js/react/.md), [Vue](https://docs.monei.com/monei-js/vue/.md), [Angular](https://docs.monei.com/monei-js/angular/.md), and [Svelte](https://docs.monei.com/monei-js/svelte/.md) component. Check the [MONEI JS Reference](https://docs.monei.com/monei-js/reference/.md#cardinput-component) for more options. ### 3. Confirm the payment `Client-side`[​](#3-confirm-the-payment-client-side "Direct link to 3-confirm-the-payment-client-side") To complete the payment you need to confirm it using monei.js [confirmPayment](https://docs.monei.com/monei-js/reference/.md#confirmpayment-function) function. You need to provide a `paymentId` (obtained in [step 1](#1-create-a-payment-server-side)) and `paymentToken` generated with Card Input Component. You can also provide additional parameters like `customer.email`. Check all available [parameters](https://docs.monei.com/apis/rest/payments-confirm/.md). client.js ``` // Handle form submission. const paymentForm = document.getElementById('payment-form'); const paymentButton = document.getElementById('payment-button'); paymentForm.addEventListener('submit', async function (event) { event.preventDefault(); paymentButton.disabled = true; try { // Generate a payment token from the card input const {token, error} = await cardInput.submit(); if (error) { // Inform the user if there was an error. container.classList.add('is-invalid'); errorText.innerText = error; return; } container.classList.remove('is-invalid'); errorText.innerText = ''; // Confirm the payment with the generated token const result = await monei.confirmPayment({ paymentId: '{{payment_id}}', paymentToken: token, paymentMethod: {card: {cardholderName: 'JOHN DOE'}} }); // At this moment you can show a customer the payment result // But you should always rely on the result passed to the callback endpoint on your server // to update the order status console.log(result); } catch (error) { console.error(error); } finally { paymentButton.disabled = false; } }); ``` After the form is submitted MONEI will automatically show a popup window with 3d secure confirmation screen (if needed) note As an alternative process you can submit generated `paymentToken` to your server and then [confirm payment](https://docs.monei.com/apis/rest/payments-confirm/.md) on the server-side. ### 4. Process Webhook Notification `Server-side`[​](#4-process-webhook-notification-server-side "Direct link to 4-process-webhook-notification-server-side") After the client-side interaction and any necessary background processing (like 3D Secure or bank authorization), MONEI sends the final, authoritative payment status via an asynchronous HTTP POST request to the `callbackUrl` you provided in Step 1. The request body contains the full [Payment object](https://docs.monei.com/apis/rest/schemas/payment/.md) in JSON format. This webhook is the **only reliable way** to confirm the definitive payment outcome. **Crucially, you must:** 1. **Verify the `MONEI-Signature` header** included in the request. This confirms the webhook genuinely came from MONEI. See the [Verify Signatures guide](https://docs.monei.com/guides/verify-signature/.md) for implementation details. 2. **Return a `200 OK` HTTP status code** immediately upon receiving the webhook to acknowledge receipt. Any other status code tells MONEI the notification failed. If MONEI doesn't receive a `200 OK`, it will retry sending the webhook. Once the signature is verified, inspect the `status` field in the Payment object (`SUCCEEDED`, `FAILED`, `CANCELED`, etc.) to determine whether to fulfill the order or handle the failure. ## Before you go live[​](#before-you-go-live "Direct link to Before you go live") * Make sure that you are using [live (production) mode](https://docs.monei.com/testing/.md) Account ID and API Key. * Make sure that you have at least one [enabled card processor](https://dashboard.monei.com/settings/payment-methods/card). ## Additional information[​](#additional-information "Direct link to Additional information") ### Transaction limits[​](#transaction-limits "Direct link to Transaction limits") The default maximum amount per card transaction is 4,000 EUR. This limit can be increased — contact our [Support Team](https://support.monei.com/hc/requests/new) to adjust it for your account. ### Refunds[​](#refunds "Direct link to Refunds") Businesses can issue refunds directly through the [MONEI Dashboard](https://dashboard.monei.com) within 180 days of the transaction date. For refunds on older transactions, please contact our [Support Team](https://support.monei.com/hc/requests/new). --- # Click to Pay Improve the checkout experience by letting customers save their payment details for future orders with Click to Pay - a fast, secure payment method supported by Mastercard, Visa, American Express and Discover ![Click to Pay](/assets/images/click-to-pay-preview-d8589d546f88c6a058a27eb85a2a376e.png) * Improve the checkout experience by letting customers save their payment details for future orders with Click to Pay. * Customers can choose to remember their device and browser for faster checkout. * Click to Pay complies with industry standards for online transactions and is supported by global payment brands. note Currently Click to Pay is only available through our [Hosted Payment Page](https://docs.monei.com/integrations/use-prebuilt-payment-page/.md) and [Payment Modal](https://docs.monei.com/integrations/use-payment-modal/.md) integrations. To enable Click to Pay payments please [contact our support](https://support.monei.com/hc/requests/new). --- # Google Pay * Web * Native Android App ## Web Integration[​](#web-integration "Direct link to Web Integration") You can start accepting Google Pay payments on the Web using [Hosted Payment Page](https://docs.monei.com/integrations/use-prebuilt-payment-page/.md) or [Payment Request Component](https://docs.monei.com/monei-js/reference/.md#paymentrequest-component). No additional configuration is required. Our [Payment Request Component](https://docs.monei.com/monei-js/reference/.md#paymentrequest-component) gives you a single integration for Apple Pay and Google Pay. Customers see a Google Pay or an Apple Pay button, depending on what their device and browser combination supports. If you prefer to integrate directly against the Google Pay API, follow the [direct API integration guide](#direct-api-integration) below. ### Before you begin[​](#before-you-begin "Direct link to Before you begin") To accept Google Pay payments you need to have at least one configured card processor. To configure card processors go to [MONEI Dashboard → Settings → Payment Methods → Card payments](https://dashboard.monei.com/settings/payment-methods/card). Before you start, you need to: * Make sure that you have Google Pay enabled in [MONEI Dashboard → Settings → Payment Methods](https://dashboard.monei.com/settings/payment-methods). * Add a card in Chrome. * Serve your application over HTTPS. This is a requirement both in development and in production. One way to get up and running is to use a service like [ngrok](https://ngrok.com/). To test your integration: * Use your [test mode](https://docs.monei.com/testing/.md) Account ID and API Key. * You can use any real card details, you will not be charged in the test mode (card details are automatically replaced with the test card). * You can check the status of the test payment in your [MONEI Dashboard → Payments](https://dashboard.monei.com/payments) (in test mode). Google Pay Terms By integrating Google Pay™, you adhere to the Google Pay APIs [Acceptable Use Policy](https://payments.developers.google.com/terms/aup) and accept the terms defined in the Google Pay API [Terms of Service](https://payments.developers.google.com/terms/sellertos). ### Express Checkout[​](#express-checkout "Direct link to Express Checkout") Use express checkout to collect shipping and billing addresses directly in the Google Pay payment sheet. See the [Express Checkout guide](https://docs.monei.com/integrations/express-checkout/.md) for setup and examples. ### Direct API Integration[​](#direct-api-integration "Direct link to Direct API Integration") If you prefer to integrate directly against the Google Pay API, follow [Google's instructions](https://developers.google.com/pay/api/web/guides/setup). Specify following tokenization specification: ``` const tokenizationSpecification = { type: 'PAYMENT_GATEWAY', parameters: { gateway: 'monei', gatewayMerchantId: 'MONEI_ACCOUNT_ID' } }; ``` Use MONEI's `merchantId` from the [Get PaymentMethods](https://docs.monei.com/apis/rest/payment-methods-get/.md) API (`metadata.googlePay.merchantId`). No separate registration with Google is required. ``` paymentDataRequest.merchantInfo = { merchantName: 'Your Business Name', // Get merchantId from Get PaymentMethods API (metadata.googlePay.merchantId) // Test: 12345678901234567890, Production: BCR2DN6T37ENLJ3M merchantId: 'MONEI_GOOGLE_PAY_MERCHANT_ID' }; ``` Exchange Google Pay token for MONEI Payment Token that can be used to confirm payment: ``` async function processPayment(paymentData) { // Encode Google Pay token as a base64 string const token = window.btoa(paymentData.paymentMethodData.tokenizationData.token); const result = await monei.api.createToken({ paymentId: '{{payment_id}}', paymentMethod: { googlePay: { token: token } } }); return moneiTokenHandler(result.paymentToken); } ``` ### Confirm the Payment[​](#confirm-the-payment "Direct link to Confirm the Payment") After you have obtained the MONEI Payment Token, you can confirm the payment using the token. ``` async function moneiTokenHandler(token) { try { const result = await monei.confirmPayment({ paymentId: '{{payment_id}}', paymentToken: token }); // At this moment you can show a customer the payment result // But you should always rely on the result passed to the callback endpoint // on your server to update the order status console.log(result); } catch (error) { console.error(error); } } ``` ## Native Android App Integration[​](#native-android-app-integration "Direct link to Native Android App Integration") Google Pay works out of the box on Android with no additional certificate setup required. Simply integrate the Google Pay API and use MONEI as your payment gateway. ### Prerequisites[​](#prerequisites "Direct link to Prerequisites") * Google Pay enabled in [MONEI Dashboard → Settings → Payment Methods](https://dashboard.monei.com/settings/payment-methods) * At least one configured card processor in [MONEI Dashboard](https://dashboard.monei.com/settings/payment-methods/card) * Android device or emulator with Google Play Services ### Add Dependencies[​](#add-dependencies "Direct link to Add Dependencies") Add the Google Pay library to your app's `build.gradle`: ``` dependencies { implementation 'com.google.android.gms:play-services-wallet:19.2.1' } ``` Add the Google Pay API meta-data to your `AndroidManifest.xml`: ``` ``` ### Check Google Pay Availability[​](#check-google-pay-availability "Direct link to Check Google Pay Availability") Before showing the Google Pay button, verify it's available on the device: ``` val paymentsClient = Wallet.getPaymentsClient( this, Wallet.WalletOptions.Builder() .setEnvironment(WalletConstants.ENVIRONMENT_TEST) // Use ENVIRONMENT_PRODUCTION for live .build() ) val isReadyToPayRequest = IsReadyToPayRequest.fromJson(""" { "apiVersion": 2, "apiVersionMinor": 0, "allowedPaymentMethods": [{ "type": "CARD", "parameters": { "allowedAuthMethods": ["PAN_ONLY", "CRYPTOGRAM_3DS"], "allowedCardNetworks": ["VISA", "MASTERCARD", "AMEX", "DISCOVER", "JCB"] } }] } """) paymentsClient.isReadyToPay(isReadyToPayRequest) .addOnCompleteListener { task -> if (task.isSuccessful) { // Show Google Pay button } } ``` ### Configure Payment Request[​](#configure-payment-request "Direct link to Configure Payment Request") Create a payment request with MONEI as the gateway. Use the `merchantId` from the [Get PaymentMethods](https://docs.monei.com/apis/rest/payment-methods-get/.md) API (`metadata.googlePay.merchantId`). No separate registration with Google is required: ``` val paymentDataRequest = PaymentDataRequest.fromJson(""" { "apiVersion": 2, "apiVersionMinor": 0, "allowedPaymentMethods": [{ "type": "CARD", "parameters": { "allowedAuthMethods": ["PAN_ONLY", "CRYPTOGRAM_3DS"], "allowedCardNetworks": ["VISA", "MASTERCARD", "AMEX", "DISCOVER", "JCB"] }, "tokenizationSpecification": { "type": "PAYMENT_GATEWAY", "parameters": { "gateway": "monei", "gatewayMerchantId": "YOUR_MONEI_ACCOUNT_ID" } } }], "merchantInfo": { "merchantName": "Your Store Name", "merchantId": "MONEI_GOOGLE_PAY_MERCHANT_ID" }, "transactionInfo": { "totalPrice": "10.00", "totalPriceStatus": "FINAL", "currencyCode": "EUR", "countryCode": "ES" } } """) ``` ### Launch Google Pay[​](#launch-google-pay "Direct link to Launch Google Pay") Launch the Google Pay payment sheet when the user taps the button: ``` private val googlePayLauncher = registerForActivityResult( ActivityResultContracts.StartActivityForResult() ) { result -> when (result.resultCode) { Activity.RESULT_OK -> { result.data?.let { intent -> val paymentData = PaymentData.getFromIntent(intent) handlePaymentSuccess(paymentData) } } Activity.RESULT_CANCELED -> { // User cancelled } AutoResolveHelper.RESULT_ERROR -> { // Handle error } } } fun requestPayment() { val task = paymentsClient.loadPaymentData(paymentDataRequest) AutoResolveHelper.resolveTask(task, this, GOOGLE_PAY_REQUEST_CODE) } ``` ### Process the Payment[​](#process-the-payment "Direct link to Process the Payment") Extract the token from the payment data and send it to your backend: ``` private fun handlePaymentSuccess(paymentData: PaymentData?) { val paymentInfo = paymentData?.toJson() ?: return val json = JSONObject(paymentInfo) // Extract the Google Pay token val token = json .getJSONObject("paymentMethodData") .getJSONObject("tokenizationData") .getString("token") // Base64 encode the token val encodedToken = Base64.encodeToString(token.toByteArray(), Base64.NO_WRAP) // Send to your backend to create MONEI payment token and confirm payment sendToBackend(encodedToken) } ``` ### Backend Integration[​](#backend-integration "Direct link to Backend Integration") On your backend, exchange the Google Pay token for a MONEI payment token: ``` # 1. Create a payment curl -X POST https://api.monei.com/v1/payments \ -H "Authorization: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "amount": 1000, "currency": "EUR", "orderId": "order_123" }' # 2. Create a token from Google Pay token curl -X POST https://api.monei.com/v1/payment-tokens \ -H "Authorization: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "paymentId": "PAYMENT_ID_FROM_STEP_1", "paymentMethod": { "googlePay": { "token": "BASE64_ENCODED_GOOGLE_PAY_TOKEN" } } }' # 3. Confirm the payment curl -X POST https://api.monei.com/v1/payments/PAYMENT_ID/confirm \ -H "Authorization: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "paymentToken": "MONEI_TOKEN_FROM_STEP_2" }' ``` ## Before you go live[​](#before-you-go-live "Direct link to Before you go live") * Make sure that you are using [live (production) mode](https://docs.monei.com/testing/.md) Account ID and API Key. * Make sure that you have at least one [enabled card processor](https://dashboard.monei.com/settings/payment-methods/card). * Make sure that you have Google Pay enabled in [MONEI Dashboard → Settings → Payment Methods](https://dashboard.monei.com/settings/payment-methods). * For direct API integration, use the `merchantId` from the [Get PaymentMethods](https://docs.monei.com/apis/rest/payment-methods-get/.md) API. --- # Payment Methods Overview MONEI supports a wide range of payment methods to help you maximize your conversion rates and reach customers globally. Below is an overview of all available payment methods: ## Card Payments[​](#card-payments "Direct link to Card Payments") * [Cards](https://docs.monei.com/payment-methods/card/.md) - Accept all major credit and debit cards * [Click to Pay](https://docs.monei.com/payment-methods/click-to-pay/.md) - Streamlined card payments with Click to Pay ## Digital Wallets[​](#digital-wallets "Direct link to Digital Wallets") * [Apple Pay](https://docs.monei.com/payment-methods/apple-pay/.md) - Accept payments through Apple Pay * [Google Pay](https://docs.monei.com/payment-methods/google-pay/.md) - Enable Google Pay payments * [PayPal](https://docs.monei.com/payment-methods/paypal/.md) - Integrate PayPal payments ## Local Payment Methods[​](#local-payment-methods "Direct link to Local Payment Methods") * [Bizum](https://docs.monei.com/payment-methods/bizum/.md) - Spanish mobile payment method * [SEPA Request to Pay](https://docs.monei.com/payment-methods/sepa-request-to-pay/.md) - European bank transfer payments ## Integration Options[​](#integration-options "Direct link to Integration Options") You can integrate these payment methods in several ways: 1. [Build a Custom Checkout](https://docs.monei.com/integrations/build-custom-checkout/.md) - Full control over the checkout experience 2. [Use Payment Modal](https://docs.monei.com/integrations/use-payment-modal/.md) - Quick integration with a pre-built modal 3. [Use Prebuilt Payment Page](https://docs.monei.com/integrations/use-prebuilt-payment-page/.md) - Fastest way to start accepting payments 4. [Pay by Link](https://docs.monei.com/integrations/pay-by-link/.md) - Share payment links with customers 5. [QR Payments](https://docs.monei.com/integrations/use-qr-payments/.md) - Enable QR code-based payments Each payment method has its own dedicated documentation page with detailed integration instructions, testing information, and best practices. --- # PayPal You can start accepting PayPal payments on the Web using [Hosted Payment Page](https://docs.monei.com/integrations/use-prebuilt-payment-page/.md) or [PayPal Component](https://docs.monei.com/monei-js/reference/.md#paypal-component). No additional configuration is required to use PayPal in Hosted Payment Page. Our [PayPal Component](https://docs.monei.com/monei-js/reference/.md#paypal-component) renders PayPal button to your payment page. When a customer selects PayPal, the component presents a PayPal overlay, where a customer can log in with their PayPal account details to complete the payment process. ## Before you begin[​](#before-you-begin "Direct link to Before you begin") This page explains how to add PayPal to your custom payment page. If you don't need a custom checkout experience we recommend using our [prebuilt payment page](https://docs.monei.com/integrations/use-prebuilt-payment-page/.md). It already supports all available payment methods and does not require coding. To accept PayPal payments you need to connect your [PayPal business account](https://www.paypal.com/business). To connect your PayPal business account go to [MONEI Dashboard → Settings → Payment Methods](https://dashboard.monei.com/settings/payment-methods). To test your integration: * Use your [test mode](https://docs.monei.com/testing/.md) Account ID and API Key. * Connect test [PayPal Business account](https://docs.monei.com/testing/.md#test-paypal-accounts) in your [MONEI Dashboard](https://dashboard.monei.com/settings/payment-methods) (in test mode) * Use the test [PayPal Personal account](https://docs.monei.com/testing/.md#test-paypal-accounts) for payments. * You can check the status of a test payment in your [MONEI Dashboard → Payments](https://dashboard.monei.com/payments) (in test mode). ## Express Checkout[​](#express-checkout "Direct link to Express Checkout") Use express checkout to collect shipping addresses directly in the PayPal checkout flow. See the [Express Checkout guide](https://docs.monei.com/integrations/express-checkout/.md) for setup and examples. ## Integration[​](#integration "Direct link to Integration") ### 1. Create a Payment `Server-side`[​](#1-create-a-payment-server-side "Direct link to 1-create-a-payment-server-side") Create a [Payment](https://docs.monei.com/apis/rest/schemas/payment/.md) on your server with an amount and currency. Always decide how much to charge on the server side, a trusted environment, as opposed to the client. This prevents malicious customers from being able to choose their own prices. * cURL * Node.js * PHP * Python POST https\://api.monei.com/v1/payments ``` curl --request POST 'https://api.monei.com/v1/payments' \ --header 'Authorization: YOUR_API_KEY' \ --header 'Content-Type: application/json' \ --data-raw '{ "amount": 110, "currency": "EUR", "orderId": "14379133960355", "description": "Test Shop - #14379133960355", "customer": { "email": "email@example.com" }, "callbackUrl": "https://example.com/checkout/callback" }' ``` (Replace `YOUR_API_KEY` with your actual MONEI API key) server.js ``` import {Monei} from '@monei-js/node-sdk'; // Replace YOUR_API_KEY with your actual MONEI API key const monei = new Monei('YOUR_API_KEY'); const payment = await monei.payments.create({ amount: 110, currency: 'EUR', orderId: '14379133960355', description: 'Test Shop - #14379133960355', customer: { email: 'email@example.com' }, callbackUrl: 'https://example.com/checkout/callback' }); // Pass payment.id to your client-side const paymentId = payment.id; ``` server.php ``` payments->create( new CreatePaymentRequest([ 'amount' => 110, 'currency' => 'EUR', 'order_id' => '14379133960355', 'description' => 'Test Shop - #14379133960355', 'customer' => new PaymentCustomer([ 'email' => 'email@example.com' ]), 'callback_url' => 'https://example.com/checkout/callback' ]) ); // Pass payment ID to your client-side $paymentId = $payment->getId(); ?> ``` server.py ``` import Monei from Monei import CreatePaymentRequest, PaymentCustomer # Replace YOUR_API_KEY with your actual MONEI API key monei = Monei.MoneiClient(api_key="YOUR_API_KEY") payment = monei.payments.create( CreatePaymentRequest( amount=110, currency="EUR", order_id="14379133960355", description="Test Shop - #14379133960355", customer=PaymentCustomer( email="email@example.com" ), callback_url="https://example.com/checkout/callback" ) ) # Pass payment ID to your client-side payment_id = payment.id ``` The following parameters are required: * **amount** positive integer - Amount intended to be collected by this payment. A positive integer representing how much to charge in the smallest currency unit (e.g., 100 cents to charge 1.00 USD) * **currency** string - Three-letter [ISO currency code](https://en.wikipedia.org/wiki/ISO_4217), in uppercase. Must be a supported currency. * **orderId** string - An order ID from your system. A unique identifier that can be used to reconcile the payment with your internal system. * **callbackUrl** string - The URL to which a payment result should be sent asynchronously. Check all available [request parameters](https://docs.monei.com/apis/rest/payments-create/.md). Included in the returned Payment object is a payment `id`, which is used on the client side to securely complete the payment process instead of passing the entire Payment object. ### 2. Add PayPal to your payment page `Client-side`[​](#2-add-paypal-to-your-payment-page-client-side "Direct link to 2-add-paypal-to-your-payment-page-client-side") Include `monei.js` on your checkout page by adding the script tag to the `head` of your HTML file. checkout.html ``` Checkout ``` Add MONEI [PayPal Component](https://docs.monei.com/monei-js/reference/.md#paypal-component) to your payment page. Create empty DOM node (container) with unique ID in your payment form. checkout.html ```
``` Initialize PayPal Component client.js ``` // Create an instance of the PayPal component. const payPal = monei.PayPal({ paymentId: '{{payment_id}}', onSubmit(result) { moneiTokenHandler(result.token); }, onError(error) { console.log(error); } }); // Render an instance of the PayPal component into the `paypal_container`
. payPal.render('#paypal_container'); ``` note PayPal Component is also available as a [React](https://docs.monei.com/monei-js/react/.md), [Vue](https://docs.monei.com/monei-js/vue/.md), [Angular](https://docs.monei.com/monei-js/angular/.md), and [Svelte](https://docs.monei.com/monei-js/svelte/.md) component. Check the [MONEI JS Reference](https://docs.monei.com/monei-js/reference/.md#paypal-component) for more options. ### 3. Confirm the payment `Client-side`[​](#3-confirm-the-payment-client-side "Direct link to 3-confirm-the-payment-client-side") To complete the payment you need to confirm it using monei.js [confirmPayment](https://docs.monei.com/monei-js/reference/.md#confirmpayment-function) function. You need to provide a `paymentId` (obtained in [step 1](#1-create-a-payment-server-side)) and `paymentToken` generated with PayPal Component. You can also provide additional parameters like `customer.email`. Check all available [parameters](https://docs.monei.com/apis/rest/payments-confirm/.md). client.js ``` // Confirm the payment async function moneiTokenHandler(token) { try { const result = await monei.confirmPayment({ paymentId: '{{payment_id}}', paymentToken: token }); // At this moment you can show a customer the payment result // But you should always rely on the result passed to the callback endpoint // on your server to update the order status console.log(result); } catch (error) { console.error(error); } } ``` note As an alternative process you can submit generated `paymentToken` to your server and then [confirm payment](https://docs.monei.com/apis/rest/payments-confirm/.md) on the server-side. ### 4. Process Webhook Notification `Server-side`[​](#4-process-webhook-notification-server-side "Direct link to 4-process-webhook-notification-server-side") After the client-side interaction and any necessary background processing, MONEI sends the final, authoritative payment status via an asynchronous HTTP POST request to the `callbackUrl` you provided in Step 1. The request body contains the full [Payment object](https://docs.monei.com/apis/rest/schemas/payment/.md) in JSON format. This webhook is the **only reliable way** to confirm the definitive payment outcome. **Crucially, you must:** 1. **Verify the `MONEI-Signature` header** included in the request. This confirms the webhook genuinely came from MONEI. See the [Verify Signatures guide](https://docs.monei.com/guides/verify-signature/.md) for implementation details. 2. **Return a `200 OK` HTTP status code** immediately upon receiving the webhook to acknowledge receipt. Any other status code tells MONEI the notification failed. If MONEI doesn't receive a `200 OK`, it will retry sending the webhook. Once the signature is verified, inspect the `status` field in the Payment object (`SUCCEEDED`, `FAILED`, `CANCELED`, etc.) to determine whether to fulfill the order or handle the failure. ## Before you go live[​](#before-you-go-live "Direct link to Before you go live") * Make sure that you are using [live (production) mode](https://docs.monei.com/testing/.md) Account ID and API Key. * Make sure that you have connected your PayPal business account in [MONEI Dashboard](https://dashboard.monei.com/settings/payment-methods). --- # SEPA Request to Pay (SRTP) SEPA Request to Pay (SRTP) is a payment scheme defined by the European Payments Council (EPC) that uses real-time messaging to initiate payments. A merchant sends a payment request to the customer, who approves it through their bank. MONEI supports SRTP, enabling merchants to request and receive SEPA-based payments directly through the API. ## Features and Benefits[​](#features-and-benefits "Direct link to Features and Benefits") * **One-click payment approval:** Customers receive a payment request and approve it with a single click — no need to manually enter IBAN or bank details. * **24/7 availability:** Payment requests can be created and sent at any time, independent of banking hours. * **Flexible payment timing:** Customers can approve requests immediately or at a later time before expiration. * **Real-time status tracking:** All SRTP transaction statuses (pending, accepted, rejected) are visible in the MONEI Dashboard in real time. * **Checkout integration:** SRTP can be offered as a payment method on your checkout page for e-commerce flows. * **Cash flow control:** Customers decide when to approve incoming payment requests, giving them flexibility over payment timing. * **No chargebacks:** SRTP uses SEPA Instant Credit Transfer. Once approved and executed, payments are irrevocable. ## Messaging Flow[​](#messaging-flow "Direct link to Messaging Flow") The diagram below shows the SRTP message flow in a four-corner model (payer and payee each with their own SRTP service provider), followed by a step-by-step explanation: ![SEPA Request to Pay](/assets/images/SEPA-Request-to-Pay-SRTP-03c1380728137e19fde5dd05f28c44cd.jpg) 1. **Payment method selection:** The payer selects **SEPA Request to Pay (SRTP)** as the payment method on the merchant’s payment page (checkout). 2. **Request initiation:** The payee (merchant) notifies MONEI (the payee’s SRTP service provider) of a new payment request, providing all necessary payment details. MONEI then creates an SRTP message for this request. 3. **Delivery to payer’s provider:** MONEI, acting on behalf of the payee, sends the SRTP message to the payer’s SRTP service provider (typically the payer’s bank or payment service). 4. **Payer notification:** The payer’s service provider notifies the payer (e.g. via mobile app or online banking) that a payment request is awaiting their approval. The payer can review the request details and choose to **accept** or **reject** the request. 5. **Status reporting:** Once the payer accepts or rejects the request, the outcome (approval or rejection status) is reported back to all parties. MONEI and the merchant receive a status update confirming whether the SRTP was accepted (and the payment initiated) or declined by the payer. This status update can occur in real-time or via a callback mechanism. ## API Endpoints[​](#api-endpoints "Direct link to API Endpoints") MONEI provides a set of REST API endpoints to integrate the SRTP scheme, allowing creation and management of Request to Pay messages. Below are the main endpoints in the SRTP flow, with their details: ### Create a new SRTP[​](#create-a-new-srtp "Direct link to Create a new SRTP") **Description:** This endpoint allows the payee’s SRTP service provider (e.g., MONEI on behalf of the merchant) to post a new SEPA Request-to-Pay to the payer’s SRTP service provider. In practice, it creates a payment request that will be delivered to the payer for approval. **Endpoint:** `https://api.monei.com/v1/sepa-request-to-pay-requests` **Instructions:** * All parameters in the request must comply with the SRTP rulebook and the official *SRTP Implementation Guidelines*. * The fields **ReqdExctnDt** (requested execution date/time) and **XpryDt** (expiration date/time) must be provided and must be in the future (not past dates), otherwise the request will be rejected. * For each new SRTP creation call, use a unique **resourceId**. This ID acts as an idempotency key for the request; sending a duplicate **resourceId** will be treated as the same request. **Example JSON Request:** ``` { "callbackUrl": "https://testing-srtp.com/005/callback", "Document": { "CdtrPmtActvtnReq": { "GrpHdr": { "MsgId": "Id20***3731", "CreDtTm": "2024-04-30T15:59:30.000Z", "NbOfTxs": "1", "InitgPty": { "Nm": "SRTPTestEPCXX", "Id": { "OrgId": { "AnyBIC": "AAAAZZ12" } } } }, "PmtInf": [ { "PmtInfId": "Id20***3317", "PmtMtd": "TRF", "ReqdAdvcTp": { "CdtAdvc": { "Cd": "ADND" }, "DbtAdvc": { "Cd": "ADND" } }, "ReqdExctnDt": { "DtTm": "2024-06-26T15:59:14.000Z" }, "XpryDt": { "DtTm": "2024-06-29T18:00:00.000Z" }, "Dbtr": { "Nm": "Max140Text_EPC259-22_V3.0_DS02", "PstlAdr": { "Ctry": "FR", "AdrLine": ["01 Rue de Paris"] }, "Id": { "OrgId": { "AnyBIC": "AAAAZZ12" } } }, "DbtrAcct": { "Id": { "IBAN": "ES9131906664658225183334" }, "Nm": "Nm" }, "DbtrAgt": { "FinInstnId": { "BICFI": "MMMMES69" } }, "CdtTrfTx": [ { "PmtId": { "InstrId": "InstrId", "EndToEndId": "Id20***5809" }, "PmtTpInf": { "SvcLvl": { "Cd": "SRTP" }, "LclInstrm": { "Cd": "CTP" }, "CtgyPurp": { "Cd": " " } }, "PmtCond": { "AmtModAllwd": false, "EarlyPmtAllwd": true, "GrntedPmtReqd": false }, "Amt": { "InstdAmt": 2001 }, "ChrgBr": "SLEV", "CdtrAgt": { "FinInstnId": { "BICFI": "AAAAZZ11234" } }, "Cdtr": { "Nm": "Max140Text_EPC259-22_V3.0_DS02", "PstlAdr": { "Ctry": "FR", "AdrLine": ["01 Rue de Paris"] }, "Id": { "OrgId": { "AnyBIC": "AAAAZZ12" } } }, "CdtrAcct": { "Id": { "IBAN": "ES9131906664658225183334" } }, "InstrForCdtrAgt": [ { "InstrInf": "ATS007 Positive functional confirmation requested" } ], "Purp": { "Cd": "ADCS" }, "RltdRmtInf": { "RmtId": "RmtId", "RmtLctnDtls": [ { "Mtd": "URID", "ElctrncAdr": "test@monei.com" } ] }, "RmtInf": { "Ustrd": ["Ustrd"] } } ] } ] } }, "resourceId": "8410-8600-1312-3709" } ``` **Example JSON Response:** ``` { "resourceId": "8410-8600-1312-3709", "Document": { "CdtrPmtActvtnReqStsRpt": { "GrpHdr": { "MsgId": "2f5424439ad4a3590203e9afbdc185762fe", "CreDtTm": "2024-06-25T09:36:45.764Z", "InitgPty": { "Id": { "OrgId": { "AnyBIC": "MMMMES69" } } } }, "OrgnlGrpInfAndSts": { "OrgnlMsgId": "Id20***3731", "OrgnlMsgNmId": "pain.013.001.10", "OrgnlCreDtTm": "2024-04-30T15:59:30.000Z" }, "OrgnlPmtInfAndSts": [ { "OrgnlPmtInfId": "Id20***3317", "TxInfAndSts": { "StsId": "a6128f3fc0692ae3b3834c397555893baf1", "OrgnlInstrId": "InstrId", "OrgnlEndToEndId": "Id20***5809", "TxSts": "ACTC", "StsRsnInf": { "Orgtr": { "Id": { "OrgId": { "AnyBIC": "MMMMES69" } } }, "Rsn": { "Cd": "EDTR" } }, "OrgnlTxRef": { "Amt": { "InstdAmt": 2001 }, "ReqdExctnDt": { "DtTm": "2024-06-26T15:59:14.000Z" }, "XpryDt": { "DtTm": "2024-06-29T18:00:00.000Z" }, "PmtTpInf": { "SvcLvl": { "Cd": "SRTP" }, "LclInstrm": { "Cd": "CTP" } }, "DbtrAgt": { "FinInstnId": { "BICFI": "MMMMES69" } }, "CdtrAgt": { "FinInstnId": { "BICFI": "AAAAZZ11234" } }, "Cdtr": { "Nm": "Max140Text_EPC259-22_V3.0_DS02", "Id": { "OrgId": { "AnyBIC": "AAAAZZ12" } } }, "CdtrAcct": { "Id": { "IBAN": "ES9131906664658225183334" } }, "RmtInf": { "Ustrd": "Ustrd" } } } } ] } } } ``` ### Status-update[​](#status-update "Direct link to Status-update") **Description:** This endpoint is used by the payee’s SRTP service provider to query the status of a previously created Request to Pay. It asks the payer’s SRTP service provider for an update on whether the payer has accepted, rejected, or not yet acted on the payment request. **Endpoint:** `https://api.monei.com/v1/sepa-request-to-pay-requests/{{resourceId}}/status-update` **Instructions:** * All parameters must follow the SRTP rulebook and Implementation Guidelines. * The `{resourceId}` path parameter in the endpoint URL should be the same **resourceId** that was returned when the SRTP was created. (In other words, you are requesting the status of that specific payment request.) For example, if the original resourceId is `8410-8600-1312-3709`, the status endpoint would be:
`.../sepa-request-to-pay-requests/8410-8600-1312-3709/status-update` * If the status information is available, the API server will respond immediately with the current status. Otherwise (e.g. if the payer has not responded yet), the server will return a pending acknowledgment and later send the status update asynchronously to the provided callback URL. * This call does not create any new resource, so using the same resourceId for multiple status queries will simply retrieve the same status (it’s idempotent in that sense). **Example JSON Request:** ``` { "resourceId": "5427-9966-1810-4084", "callbackUrl": "https://testing-srtp.com/005/callback", "Document": { "FIToFIPmtStsReq": { "GrpHdr": { "MsgId": "Id20***6359", "CreDtTm": "2024-04-19T15:40:14.000Z", "InstgAgt": { "FinInstnId": { "BICFI": "AAAAZZ11", "LEI": "00000032411889200037", "Nm": "SRTPTestEPCXX", "Othr": { "Id": "Id20***6848", "SchmeNm": { "Cd": "aaaa", "Prtry": "Max35Text" }, "Issr": " Issr" } } } }, "TxInf": [ { "StsReqId": "StsReqId", "OrgnlGrpInf": { "OrgnlMsgId": "Id20***8079", "OrgnlMsgNmId": "pain.013.001.10", "OrgnlCreDtTm": "2024-04-13T15:02:05.000Z" }, "OrgnlInstrId": "InstrId", "OrgnlEndToEndId": "Id2024041915393549256381", "OrgnlTxId": "OrgnlTxId", "OrgnlTxRef": { "Amt": { "InstdAmt": 2013 }, "ReqdExctnDt": { "DtTm": "2024-05-02T15:02:04.000Z" }, "PmtTpInf": { "SvcLvl": { "Cd": "SRTP" }, "LclInstrm": { "Cd": "CTP" } }, "RmtInf": { "Ustrd": ["Ustrd"] }, "DbtrAgt": { "FinInstnId": { "BICFI": "MMMMES69" } }, "CdtrAgt": { "FinInstnId": { "BICFI": "AAAAZZ11234" } }, "Cdtr": { "Pty": { "Nm": "Max140Text_EPC259-22_V3.0_DS02", "Id": { "OrgId": { "AnyBIC": "AAAAZZ12" } } } }, "CdtrAcct": { "Id": { "IBAN": "FR7630003035710005023922834" } } } } ] } } } ``` **Example JSON Response:** ``` { "resourceId": "5427-9966-1810-4084", "Document": { "CdtrPmtActvtnReqStsRpt": { "GrpHdr": { "MsgId": "a5f786c715aba67ab04e34ad62286c72fa1", "CreDtTm": "2024-06-25T09:39:17.015Z", "InitgPty": { "Id": { "OrgId": { "AnyBIC": "MMMMES69" } } } }, "OrgnlGrpInfAndSts": { "OrgnlMsgId": "Id20***6359", "OrgnlMsgNmId": "pacs.028.001.03", "OrgnlCreDtTm": "2024-04-30T15:59:30.000Z" }, "OrgnlPmtInfAndSts": [ { "OrgnlPmtInfId": "Id20***3317", "TxInfAndSts": [ { "StsId": "5f79f32400bf21b7053a91def757f7fc418", "OrgnlInstrId": "InstrId", "OrgnlEndToEndId": "Id2024041915393549256381", "StsRsnInf": { "Orgtr": { "Id": { "OrgId": { "AnyBIC": "MMMMES69" } } }, "Rsn": { "Cd": "AEXR" } }, "OrgnlTxRef": { "Amt": { "InstdAmt": 2013 }, "ReqdExctnDt": { "DtTm": "2024-05-02T15:02:04.000Z" }, "XpryDt": { "DtTm": "2024-06-29T18:00:00.000Z" }, "PmtTpInf": { "SvcLvl": { "Cd": "SRTP" }, "LclInstrm": { "Cd": "CTP" } }, "DbtrAgt": { "FinInstnId": { "BICFI": "MMMMES69" } }, "CdtrAgt": { "FinInstnId": { "BICFI": "AAAAZZ11234" } }, "Cdtr": { "Nm": "Max140Text_EPC259-22_V3.0_DS02", "Id": { "OrgId": { "AnyBIC": "AAAAZZ12" } } }, "CdtrAcct": { "Id": { "IBAN": "FR7630003035710005023922834" } }, "RmtInf": { "Ustrd": "Ustrd" } } } ] } ] } } } ``` ### Cancellation-request[​](#cancellation-request "Direct link to Cancellation-request") **Description:** This endpoint is used by the payee’s SRTP service provider to request cancellation of a previously sent Request to Pay. Essentially, it sends a cancellation message to the payer’s SRTP service provider indicating that the payee (merchant) wishes to cancel the payment request. **Endpoint:** `https://api.monei.com/v1/sepa-request-to-pay-requests/{{resourceId}}/cancellation-requests` **Instructions:** * All parameters must follow the SRTP rulebook and Implementation Guidelines for cancellation messages. * The `{resourceId}` in the endpoint URL is the original SRTP’s resourceId (the same ID used when creating the Request to Pay). This identifies which payment request is being cancelled. For example:
`.../sepa-request-to-pay-requests/8410-8600-1312-3709/cancellation-requests` * In the request body, provide a new unique **resourceId**. This will serve as the identifier for the cancellation request itself (often referred to as the **cancellationResourceId**). This ID must be different from the original payment’s resourceId, as it will be used in the cancellation status endpoint. * When possible, the payer’s API may respond immediately with a cancellation result. If an immediate result is not available, the API will acknowledge the request and later send the cancellation outcome via the callback URL. **Example JSON Request:** ``` { "callbackUrl": "https://testing-srtp.com/005/callback", "Document": { "CstmrPmtCxlReq": { "Assgnmt": { "Id": "Id20***7140", "Assgnr": { "Pty": { "Id": { "OrgId": { "AnyBIC": "AAAAZZ12" } } } }, "Assgne": { "Pty": { "Id": { "OrgId": { "AnyBIC": "MMMMES69" } } } }, "CreDtTm": "2024-04-23T15:58:37.000Z" }, "Undrlyg": { "OrgnlPmtInfAndCxl": [ { "PmtCxlId": "Id20***5990", "OrgnlPmtInfId": "Id20***9456", "OrgnlGrpInf": { "OrgnlMsgId": "Id20***8505", "OrgnlMsgNmId": "pain.013.001.10", "OrgnlCreDtTm": "2024-04-24T15:46:07.000Z" }, "TxInf": [ { "CxlId": "Id20***2849", "OrgnlInstrId": "InstrId", "OrgnlEndToEndId": "Id20***4837", "CxlRsnInf": { "Orgtr": { "Nm": "SRTPTestEPCXX", "Id": { "OrgId": { "AnyBIC": "AAAAZZ12" } } }, "Rsn": { "Cd": "TECH" }, "AddtlInf": ["ATS005/2024-05-08T15:46:06.000Z"] }, "OrgnlTxRef": { "Amt": { "InstdAmt": 2018 }, "ReqdExctnDt": { "DtTm": "2024-05-13T15:46:06.000Z" }, "PmtTpInf": { "SvcLvl": { "Cd": "SRTP" }, "LclInstrm": { "Cd": "CTP" } }, "RmtInf": { "Ustrd": "Ustrd" }, "DbtrAgt": { "FinInstnId": { "BICFI": "MMMMES69" } }, "CdtrAgt": { "FinInstnId": { "BICFI": "AAAAZZ11234" } }, "Cdtr": { "Pty": { "Nm": "Max140Text_EPC259-22_V3.0_DS02", "Id": { "OrgId": { "AnyBIC": "AAAAZZ12" } } } }, "CdtrAcct": { "Id": { "IBAN": "FR7630003035710005023922834" } } } } ] } ] } } }, "resourceId": "8410-8600-1312-3592" } ``` **Example JSON Response:** ``` { "resourceId": "8410-8600-1312-3593", "SepaRequestToPayCancellationResponse": { "Document": { "RsltnOfInvstgtn": { "Assgnmt": { "Id": "Id20***7140", "Assgnr": { "Pty": { "Id": { "OrgId": { "AnyBIC": "MMMMES69" } } } }, "Assgne": { "Pty": { "Id": { "OrgId": { "AnyBIC": "AAAAZZ12" } } } }, "CreDtTm": "2024-04-23T15:58:37.000Z" }, "Sts": { "Conf": "CNCL" }, "CxlDtls": { "OrgnlPmtInfAndSts": [ { "OrgnlPmtInfId": "Id20***9456", "TxInfAndSts": [ { "OrgnlInstrId": "InstrId", "OrgnlEndToEndId": "Id20***4837" } ] } ], "TxInfAndSts": [ { "CxlStsId": "f4c9c8dba13b1aa99f9aa9c6ebd9fe61b73", "OrgnlGrpInf": { "OrgnlMsgId": "Id20***8505", "OrgnlMsgNmId": "pain.013.001.10", "OrgnlCreDtTm": "2024-04-24T15:46:07.000Z" }, "OrgnlInstrId": "InstrId", "OrgnlEndToEndId": "Id20***4837", "TxCxlSts": "ACCR", "CxlStsRsnInf": { "Orgtr": { "Id": { "OrgId": { "LEI": "95980008YL8WG2MZQQ40" } } }, "AddtlInf": ["ATS005/2024-05-13T15:46:06.000Z"] }, "OrgnlTxRef": { "Amt": { "InstdAmt": 2018 }, "ReqdExctnDt": { "DtTm": "2024-05-13T15:46:06.000Z" }, "PmtTpInf": { "SvcLvl": { "Cd": "SRTP" }, "LclInstrm": { "Cd": "CTP" } }, "DbtrAgt": { "FinInstnId": { "BICFI": "MMMMES69" } }, "CdtrAgt": { "FinInstnId": { "BICFI": "AAAAZZ11234" } }, "Cdtr": { "Pty": { "Nm": "Max140Text_EPC259-22_V3.0_DS02", "Id": { "OrgId": { "AnyBIC": "AAAAZZ12" } } } }, "CdtrAcct": { "Id": { "IBAN": "FR7630003035710005023922834" } }, "RmtInf": { "Ustrd": "Ustrd" } } } ] } } } } } ``` ### Cancellation status-update[​](#cancellation-status-update "Direct link to Cancellation status-update") **Description:** This endpoint allows the payee’s SRTP service provider to request a status update for a cancellation request that was previously made. In other words, after initiating a cancellation of an SRTP, the payee’s provider can use this endpoint to check whether that cancellation has been processed/acknowledged by the payer’s side. **Endpoint:** `https://api.monei.com/v1/sepa-request-to-pay-requests/{{resourceId}}/cancellation-requests/{{cancellationResourceId}}/status-update` **Instructions:** * All parameters must follow the SRTP rulebook and Implementation Guidelines. * The `{resourceId}` in the URL refers to the original payment’s SRTP resourceId (same as used in creation and cancellation-request). The `{cancellationResourceId}` corresponds to the unique resourceId that was used in the cancellation request. For example, if `resourceId = 8410-8600-1312-3709` and the cancellation’s resourceId was `8410-8600-1312-3593`, then:
`.../requests/8410-8600-1312-3709/cancellation-requests/8410-8600-1312-3593/status-update` * This status query is idempotent – requesting the status of the same cancellation more than once will return the same result (once the cancellation outcome is known, it won’t change on subsequent queries). * If the cancellation outcome is already available, the API will return it immediately. Otherwise, an acknowledgement is returned and the final status will be delivered later via the callback URL (as provided during the cancellation request). **Example JSON Request:** ``` { "resourceId": "9813-7776-2938-9347", "Document": { "CstmrPmtCxlReq": { "Assgnmt": { "Id": "123456U", "Assgnr": { "Pty": { "Id": { "OrgId": { "AnyBIC": "AAAAZZ12" } } } }, "Assgne": { "Pty": { "Id": { "OrgId": { "AnyBIC": "ZZZZAA12" } } } }, "CreDtTm": "2024-01-16T13:33:53.000Z" }, "Undrlyg": { "OrgnlPmtInfAndCxl": [ { "PmtCxlId": "0***07", "OrgnlPmtInfId": "0***06", "OrgnlGrpInf": { "OrgnlMsgId": "202***1", "OrgnlMsgNmId": "SRTPTestEPC", "OrgnlCreDtTm": "2024-01-16T13:33:53.000Z" }, "TxInf": [ { "CxlId": "123456789A", "OrgnlInstrId": "InstrId", "OrgnlEndToEndId": "EndtoEnd", "CxlRsnInf": { "Orgtr": { "Id": { "OrgId": { "AnyBIC": "MMMMES69" } } }, "Rsn": { "Cd": "AC02" } }, "OrgnlTxRef": { "Amt": { "InstdAmt": 2108 }, "ReqdExctnDt": { "DtTm": "2024-02-04T13:33:52.000Z" }, "PmtTpInf": { "SvcLvl": { "Cd": "SRTP" }, "LclInstrm": { "Cd": "CTP" } }, "DbtrAgt": { "FinInstnId": { "BICFI": "PECOFIHH" } }, "CdtrAgt": { "FinInstnId": { "BICFI": "AAAAZZ11" } }, "Cdtr": { "Pty": { "Nm": "Max140Text_EPC259-22_V3.0_DS02", "Id": { "OrgId": { "AnyBIC": "AAAAZZ12" } } } }, "CdtrAcct": { "Id": { "IBAN": "ES9131906664658225183334" } } } } ] } ] } } }, "callbackUrl": "https://testing-srtp.com/005/callback" } ``` **Example JSON Response:** ``` { "resourceId": "9813-7776-2938-9347", "Document": { "RsltnOfInvstgtn": { "Assgnmt": { "Id": "6bd60078b1f08bef6f486a324225de4344b", "Assgnr": { "Pty": { "Id": { "OrgId": { "AnyBIC": "ZZZZAA12" } } } }, "Assgne": { "Pty": { "Id": { "OrgId": { "AnyBIC": "AAAAZZ12" } } } }, "CreDtTm": "2024-04-23T15:58:37.000Z" }, "Sts": { "AssgnmtCxlConf": true }, "CxlDtls": { "OrgnlPmtInfAndSts": [ { "OrgnlPmtInfId": "Id20***9456", "TxInfAndSts": [ { "OrgnlEndToEndId": "Id20***4837", "OrgnlInstrId": "InstrId" } ] } ], "TxInfAndSts": [ { "CxlStsId": "a578f447abced8d534f42d29ee06fc7dd3e", "OrgnlGrpInf": { "OrgnlMsgId": "Id20***8505", "OrgnlMsgNmId": "camt.055.001.08", "OrgnlCreDtTm": "2024-04-23T15:58:37.000Z" }, "OrgnlInstrId": "InstrId", "OrgnlEndToEndId": "Id20***4837", "CxlStsRsnInf": { "Orgtr": { "Id": { "OrgId": { "LEI": "95980008YL8WG2MZQQ40" } } }, "AddtlInf": ["ATS005/2024-05-13T15:46:06.000Z"], "Rsn": { "Cd": "AEXR" } }, "OrgnlTxRef": { "Cdtr": { "Pty": { "Nm": "Max140Text_EPC259-22_V3.0_DS02", "Id": { "OrgId": { "AnyBIC": "AAAAZZ12" } } } }, "CdtrAgt": { "FinInstnId": { "BICFI": "AAAAZZ11234" } }, "PmtTpInf": { "SvcLvl": { "Cd": "SRTP" }, "LclInstrm": { "Cd": "CTP" } }, "ReqdExctnDt": { "DtTm": "2024-05-13T15:46:06.000Z" }, "CdtrAcct": { "Id": { "IBAN": "FR7630003035710005023922834" } }, "DbtrAgt": { "FinInstnId": { "BICFI": "MMMMES69" } }, "Amt": { "InstdAmt": 2018 }, "RmtInf": { "Ustrd": "Ustrd" } } } ] } } } } ``` ## Adherence and Integration[​](#adherence-and-integration "Direct link to Adherence and Integration") MONEI’s implementation of the SRTP scheme is provided through a secure REST API that handles the necessary messaging with banking systems. The endpoints described above enable the creation, status inquiry, and cancellation of Request to Pay messages in full compliance with the SRTP rulebook. This API ensures interoperability with banks and provides MONEI’s partners a smooth integration, abstracting much of the SRTP protocol complexity behind a simple web API. Notably, MONEI offers an **SRTP Integration Service** that streamlines the adoption of the SRTP scheme for payment service providers. This service includes testing tools and a controlled sandbox environment, allowing both automated and manual tests of SRTP message flows. Because MONEI manages the SRTP messaging and compliance, a bank or payer’s service provider using this integration does not need to undergo the full formal SRTP certification on its own. MONEI takes on the responsibility for conforming to technical specifications, significantly simplifying the process of adhering to the SRTP scheme. If you are a Payer’s SRTP Service Provider interested in SRTP integration, you can contact **MONEI** for detailed technical documentation and access credentials. MONEI will provide all the necessary information and support to connect to the SRTP API and begin testing the integration. With MONEI’s guidance, service providers can quickly incorporate SRTP into their offerings and start leveraging this new payment request scheme. --- # Subscriptions with custom checkout Collect payment details directly on your site using [MONEI Components](https://docs.monei.com/monei-js/overview/.md) to activate subscriptions. This gives you full control over the checkout experience. ## Before You Begin[​](#before-you-begin "Direct link to Before You Begin") * You need a MONEI account, your [API key](https://dashboard.monei.com/settings/api), and your **Account ID** (found in [Dashboard settings](https://dashboard.monei.com/settings/api)). * Use your [test mode keys](https://docs.monei.com/testing/.md) during development. * Ensure at least one [payment method is enabled](https://dashboard.monei.com/settings/payment-methods) in your account settings. ## Choose Your Flow[​](#choose-your-flow "Direct link to Choose Your Flow") There are two ways to activate a subscription with MONEI Components: | | Token first | Activate first | | ------------------ | -------------------------------------------------------------- | ------------------------------------------------------------- | | **How it works** | Collect payment details → generate token → activate with token | Activate → get payment ID → collect details → confirm payment | | **When to use** | Simpler flow, fewer server roundtrips | When you need the payment object before collecting details | | **Component init** | `accountId` + `sessionId` | `paymentId` | ## Token first (recommended)[​](#token-first-recommended "Direct link to Token first (recommended)") Generate a payment token on the client, then activate the subscription server-side with that token. ### 1. Create a subscription (Server-side)[​](#1-create-a-subscription-server-side "Direct link to 1. Create a subscription (Server-side)") Create a [Subscription](https://docs.monei.com/apis/rest/subscriptions-create/.md) on your server. This step is identical to the [prebuilt payment page](https://docs.monei.com/subscriptions/use-prebuilt-payment-page/.md#1-create-a-subscription-server-side) flow. * cURL * Node.js * PHP * Python POST https\://api.monei.com/v1/subscriptions ``` curl --request POST 'https://api.monei.com/v1/subscriptions' \ --header 'Authorization: YOUR_API_KEY' \ --header 'Content-Type: application/json' \ --data-raw '{ "amount": 1500, "currency": "EUR", "interval": "month", "intervalCount": 1, "description": "Pro Plan Monthly", "customer": { "name": "John Doe", "email": "john.doe@example.com" }, "callbackUrl": "https://example.com/subscriptions/callback", "paymentCallbackUrl": "https://example.com/payments/callback" }' ``` server.js ``` import {Monei} from '@monei-js/node-sdk'; const monei = new Monei('YOUR_API_KEY'); const subscription = await monei.subscriptions.create({ amount: 1500, currency: 'EUR', interval: 'month', intervalCount: 1, description: 'Pro Plan Monthly', customer: { name: 'John Doe', email: 'john.doe@example.com' }, callbackUrl: 'https://example.com/subscriptions/callback', paymentCallbackUrl: 'https://example.com/payments/callback' }); const subscriptionId = subscription.id; ``` server.php ``` subscriptions->create( new CreateSubscriptionRequest([ 'amount' => 1500, 'currency' => 'EUR', 'interval' => 'month', 'interval_count' => 1, 'description' => 'Pro Plan Monthly', 'customer' => new PaymentCustomer([ 'name' => 'John Doe', 'email' => 'john.doe@example.com' ]), 'callback_url' => 'https://example.com/subscriptions/callback', 'payment_callback_url' => 'https://example.com/payments/callback' ]) ); $subscriptionId = $subscription->getId(); ?> ``` server.py ``` import Monei from Monei import CreateSubscriptionRequest, PaymentCustomer monei = Monei.MoneiClient(api_key="YOUR_API_KEY") subscription = monei.subscriptions.create( CreateSubscriptionRequest( amount=1500, currency="EUR", interval="month", interval_count=1, description="Pro Plan Monthly", customer=PaymentCustomer( name="John Doe", email="john.doe@example.com" ), callback_url="https://example.com/subscriptions/callback", payment_callback_url="https://example.com/payments/callback" ) ) subscription_id = subscription.id ``` ### 2. Add Component to your page (Client-side)[​](#2-add-component-to-your-page-client-side "Direct link to 2. Add Component to your page (Client-side)") Include `monei.js` on your checkout page and mount the CardInput component using your `accountId` and a unique `sessionId`. checkout.html ``` Checkout
``` client.js ``` // Initialize CardInput with your accountId and a unique sessionId const cardElement = monei.CardInput({ accountId: 'YOUR_ACCOUNT_ID', sessionId: 'unique_session_id' // Unique per customer session }); // Render the Component into the container cardElement.render('#card-element'); ``` important Use a different `sessionId` for each customer session. This ensures the token-generating customer matches the paying customer. You must pass the **same `sessionId`** when activating the subscription in step 4. ### 3. Get the payment token (Client-side)[​](#3-get-the-payment-token-client-side "Direct link to 3. Get the payment token (Client-side)") When the customer clicks the subscribe button, submit the card input to generate a one-time `paymentToken`. client.js ``` document.getElementById('subscribe-button').addEventListener('click', async () => { // Generate a payment token from the card input const {token, error} = await cardElement.submit(); if (error) { // Show the error to the customer console.error('Error:', error); return; } // Send the token and sessionId to your server const response = await fetch('/activate-subscription', { method: 'POST', headers: {'Content-Type': 'application/json'}, body: JSON.stringify({ subscriptionId: '{{subscription_id}}', paymentToken: token, sessionId: 'unique_session_id' }) }); const result = await response.json(); // Handle the result (e.g., show success message) }); ``` ### 4. Activate with token (Server-side)[​](#4-activate-with-token-server-side "Direct link to 4. Activate with token (Server-side)") Activate the subscription with the `paymentToken` and `sessionId` received from the client. * cURL * Node.js * PHP * Python POST https\://api.monei.com/v1/subscriptions/{id}/activate ``` curl --request POST 'https://api.monei.com/v1/subscriptions/YOUR_SUBSCRIPTION_ID/activate' \ --header 'Authorization: YOUR_API_KEY' \ --header 'Content-Type: application/json' \ --data-raw '{ "paymentToken": "token_from_client", "sessionId": "unique_session_id" }' ``` server.js ``` // In your /activate-subscription route handler app.post('/activate-subscription', async (req, res) => { const {subscriptionId, paymentToken, sessionId} = req.body; const activation = await monei.subscriptions.activate(subscriptionId, { paymentToken, sessionId }); res.json({status: activation.status}); }); ``` server.php ``` subscriptions->activate( $body['subscriptionId'], new ActivateSubscriptionRequest([ 'payment_token' => $body['paymentToken'], 'session_id' => $body['sessionId'] ]) ); echo json_encode(['status' => $activation->getStatus()]); ?> ``` server.py ``` from Monei import ActivateSubscriptionRequest # In your /activate-subscription route handler activation = monei.subscriptions.activate( body["subscriptionId"], ActivateSubscriptionRequest( payment_token=body["paymentToken"], session_id=body["sessionId"] ) ) ``` ### 5. Handle webhooks (Server-side)[​](#5-handle-webhooks-server-side "Direct link to 5. Handle webhooks (Server-side)") Webhook handling is the same as the [prebuilt payment page](https://docs.monei.com/subscriptions/use-prebuilt-payment-page/.md#5-handle-webhooks-server-side) flow. MONEI sends payment callbacks to `paymentCallbackUrl` and subscription status changes to `callbackUrl`. Always [verify the signature](https://docs.monei.com/guides/verify-signature/.md) and return a `200` status code. *** ## Activate first (alternative)[​](#activate-first-alternative "Direct link to Activate first (alternative)") Activate the subscription first to get a payment ID, then collect payment details and confirm client-side. ### 1. Create a subscription[​](#1-create-a-subscription "Direct link to 1. Create a subscription") Same as step 1 above. ### 2. Activate the subscription (Server-side)[​](#2-activate-the-subscription-server-side "Direct link to 2. Activate the subscription (Server-side)") Activate without a `paymentToken` — the response is a [Payment object](https://docs.monei.com/apis/rest/schemas/payment/.md) with a `payment.id`. * cURL * Node.js * PHP * Python POST https\://api.monei.com/v1/subscriptions/{id}/activate ``` curl --request POST 'https://api.monei.com/v1/subscriptions/YOUR_SUBSCRIPTION_ID/activate' \ --header 'Authorization: YOUR_API_KEY' \ --header 'Content-Type: application/json' \ --data-raw '{ "completeUrl": "https://example.com/checkout/complete" }' ``` server.js ``` const activation = await monei.subscriptions.activate('YOUR_SUBSCRIPTION_ID', { completeUrl: 'https://example.com/checkout/complete' }); // Pass the payment ID to your client-side const paymentId = activation.id; ``` server.php ``` subscriptions->activate( 'YOUR_SUBSCRIPTION_ID', new ActivateSubscriptionRequest([ 'complete_url' => 'https://example.com/checkout/complete' ]) ); // Pass the payment ID to your client-side $paymentId = $activation->getId(); ?> ``` server.py ``` from Monei import ActivateSubscriptionRequest activation = monei.subscriptions.activate( "YOUR_SUBSCRIPTION_ID", ActivateSubscriptionRequest( complete_url="https://example.com/checkout/complete" ) ) # Pass the payment ID to your client-side payment_id = activation.id ``` important Use the `payment.id` from the response to initialize the CardInput component — do **not** redirect the customer to `nextAction.redirectUrl`. That URL is for the [prebuilt payment page](https://docs.monei.com/subscriptions/use-prebuilt-payment-page/.md) flow. ### 3. Mount Component and confirm payment (Client-side)[​](#3-mount-component-and-confirm-payment-client-side "Direct link to 3. Mount Component and confirm payment (Client-side)") Initialize the CardInput with the `paymentId` from the activation response, then confirm the payment. checkout.html ``` Checkout
``` client.js ``` // Initialize CardInput with the paymentId from the activation response const paymentId = '{{payment_id}}'; // Passed from your server const cardElement = monei.CardInput({paymentId: paymentId}); cardElement.render('#card-element'); document.getElementById('subscribe-button').addEventListener('click', async () => { const {token, error} = await cardElement.submit(); if (error) { console.error('Error:', error); return; } // Confirm the payment with the generated token const result = await monei.confirmPayment({ paymentId: paymentId, paymentToken: token }); // Show the result to the customer // Always rely on webhooks for the definitive payment status console.log('Payment status:', result.status); }); ``` ### 4. Handle webhooks[​](#4-handle-webhooks "Direct link to 4. Handle webhooks") Same as the [token first flow](#5-handle-webhooks-server-side) — MONEI sends webhooks for both payments and subscription status changes. ## Before You Go Live[​](#before-you-go-live "Direct link to Before You Go Live") * Switch to your [live mode](https://dashboard.monei.com/settings/api) API key and Account ID. * Ensure your [payment methods are enabled](https://dashboard.monei.com/settings/payment-methods) in live mode. * Test your webhook endpoints handle both payment and subscription callbacks correctly. Test mode limits In test mode, subscriptions have the following limits: * Maximum **3 active subscriptions** per account * Subscriptions are **auto-canceled after 12 payments** * **Minute and hour** billing intervals are available for faster testing --- # Handle failed subscription payments When a recurring subscription payment fails, MONEI automatically retries the charge according to a retry schedule. This process — known as dunning — helps recover failed payments before canceling the subscription. ## How retries work[​](#how-retries-work "Direct link to How retries work") 1. A recurring payment fails (e.g., insufficient funds, expired card). 2. The subscription moves to `PAST_DUE` status and a `SUBSCRIPTION_PAST_DUE` webhook is sent. 3. MONEI retries the payment according to the retry schedule. 4. If a retry succeeds, the subscription returns to `ACTIVE` and billing continues normally. 5. If all retries are exhausted, the subscription is `CANCELED` and a `SUBSCRIPTION_CANCELED` webhook is sent. ## Default retry schedule[​](#default-retry-schedule "Direct link to Default retry schedule") MONEI uses different retry schedules depending on the billing interval: | Billing interval | Retry 1 | Retry 2 | Retry 3 | | ----------------- | ------- | -------- | -------- | | Day | +1 hour | +2 hours | +3 hours | | Week, Month, Year | +1 day | +5 days | +9 days | Each retry interval is counted from the **previous attempt**, not from the initial failure. For example, if a monthly subscription payment fails: * **Retry 1** — 1 day after the initial failure * **Retry 2** — 5 days after retry 1 (6 days total) * **Retry 3** — 9 days after retry 2 (15 days total) * If all 3 retries fail, the subscription is canceled Test intervals In test mode, `minute` and `hour` intervals use shorter retry schedules (minutes instead of hours/days) for faster testing. ## Custom retry schedule[​](#custom-retry-schedule "Direct link to Custom retry schedule") You can override the default retry schedule when creating or updating a subscription using the `retrySchedule` parameter. Each entry in the array defines a retry interval: * cURL * Node.js * PHP * Python POST https\://api.monei.com/v1/subscriptions ``` curl --request POST 'https://api.monei.com/v1/subscriptions' \ --header 'Authorization: YOUR_API_KEY' \ --header 'Content-Type: application/json' \ --data-raw '{ "amount": 1500, "currency": "EUR", "interval": "month", "intervalCount": 1, "callbackUrl": "https://example.com/subscriptions/callback", "paymentCallbackUrl": "https://example.com/payments/callback", "retrySchedule": [ {"interval": "day", "intervalCount": 1}, {"interval": "day", "intervalCount": 3}, {"interval": "day", "intervalCount": 7}, {"interval": "day", "intervalCount": 14} ] }' ``` server.js ``` const subscription = await monei.subscriptions.create({ amount: 1500, currency: 'EUR', interval: 'month', intervalCount: 1, callbackUrl: 'https://example.com/subscriptions/callback', paymentCallbackUrl: 'https://example.com/payments/callback', retrySchedule: [ {interval: 'day', intervalCount: 1}, {interval: 'day', intervalCount: 3}, {interval: 'day', intervalCount: 7}, {interval: 'day', intervalCount: 14} ] }); ``` server.php ``` subscriptions->create( new CreateSubscriptionRequest([ 'amount' => 1500, 'currency' => 'EUR', 'interval' => 'month', 'interval_count' => 1, 'callback_url' => 'https://example.com/subscriptions/callback', 'payment_callback_url' => 'https://example.com/payments/callback', 'retry_schedule' => [ ['interval' => 'day', 'interval_count' => 1], ['interval' => 'day', 'interval_count' => 3], ['interval' => 'day', 'interval_count' => 7], ['interval' => 'day', 'interval_count' => 14] ] ]) ); ?> ``` server.py ``` subscription = monei.subscriptions.create( CreateSubscriptionRequest( amount=1500, currency="EUR", interval="month", interval_count=1, callback_url="https://example.com/subscriptions/callback", payment_callback_url="https://example.com/payments/callback", retry_schedule=[ {"interval": "day", "interval_count": 1}, {"interval": "day", "interval_count": 3}, {"interval": "day", "interval_count": 7}, {"interval": "day", "interval_count": 14} ] ) ) ``` This example retries after 1 day, 3 days, 7 days, and 14 days — giving the customer more time to resolve their payment issue. caution For custom retry schedules, the total duration cannot exceed the subscription billing interval. For example, a daily subscription cannot have retries that span more than 1 day. ## Webhook events[​](#webhook-events "Direct link to Webhook events") MONEI sends webhook notifications at each stage of the retry process: | Event | When | Sent to | | ------------------------ | --------------------------------------- | -------------------- | | Payment callback | Each retry attempt (success or failure) | `paymentCallbackUrl` | | `SUBSCRIPTION_PAST_DUE` | First payment failure | `callbackUrl` | | `SUBSCRIPTION_ACTIVATED` | Retry succeeds, subscription recovers | `callbackUrl` | | `SUBSCRIPTION_CANCELED` | All retries exhausted | `callbackUrl` | Use these webhooks to: * Notify customers about failed payments and prompt them to update their payment method * Update your system when a subscription recovers or is canceled * Track payment retry attempts for analytics ## Recover a past-due subscription[​](#recover-a-past-due-subscription "Direct link to Recover a past-due subscription") If a subscription is in `PAST_DUE` status, you can recover it by setting `skipIntervalCount` via the [update subscription](https://docs.monei.com/apis/rest/subscriptions-update/.md) endpoint. This tells the system to skip the failed billing cycle and move to the next one — the subscription returns to `ACTIVE` and the retry counter resets. * cURL * Node.js * PHP * Python PUT https\://api.monei.com/v1/subscriptions/{id} ``` curl --request PUT 'https://api.monei.com/v1/subscriptions/YOUR_SUBSCRIPTION_ID' \ --header 'Authorization: YOUR_API_KEY' \ --header 'Content-Type: application/json' \ --data-raw '{ "skipIntervalCount": 1 }' ``` server.js ``` const subscription = await monei.subscriptions.update('YOUR_SUBSCRIPTION_ID', { skipIntervalCount: 1 }); ``` server.php ``` subscriptions->update( 'YOUR_SUBSCRIPTION_ID', new UpdateSubscriptionRequest([ 'skip_interval_count' => 1 ]) ); ?> ``` server.py ``` from Monei import UpdateSubscriptionRequest subscription = monei.subscriptions.update( "YOUR_SUBSCRIPTION_ID", UpdateSubscriptionRequest( skip_interval_count=1 ) ) ``` This is useful when a customer has updated their payment method (via [re-activation](https://docs.monei.com/subscriptions/manage-subscriptions/.md#update-payment-method)) and you want to skip the failed cycle rather than waiting for the next retry. ## Email notifications[​](#email-notifications "Direct link to Email notifications") MONEI can automatically send email notifications to customers and account administrators when subscription events occur: * **Customer emails** — notify the customer when their subscription status changes (e.g., payment failed, subscription paused) * **Admin emails** — notify account administrators about subscription events These are configured in your [MONEI Dashboard notification settings](https://dashboard.monei.com/settings). No code changes are required. MONEI also sends automatic alerts to the account email when webhook delivery to your `callbackUrl` fails repeatedly in live mode. ## Test failed payments[​](#test-failed-payments "Direct link to Test failed payments") Use the test card number ending in **5565** to simulate failed recurring payments: 1. Create and activate a subscription in [test mode](https://docs.monei.com/testing/.md) using the test card `4242 4242 4242 5565`. 2. The **initial payment succeeds** — the subscription becomes `ACTIVE`. 3. The **first recurring payment fails** — the subscription moves to `PAST_DUE`. 4. MONEI retries according to the retry schedule. All retries will fail with this test card. 5. After 3 failed retries, the subscription is automatically **canceled**. This lets you verify your webhook handling for `SUBSCRIPTION_PAST_DUE` and `SUBSCRIPTION_CANCELED` events, and test any customer notification flows you've built. tip Use `minute` or `hour` billing intervals in test mode to speed up the retry cycle instead of waiting for days. --- # Manage subscriptions After a subscription is activated, you can manage its lifecycle using the MONEI API — pause, resume, cancel, skip payments, update the payment method, and modify subscription details. ## Pause a subscription[​](#pause-a-subscription "Direct link to Pause a subscription") Temporarily suspend billing without canceling the subscription. There are several ways to pause: ### Pause immediately[​](#pause-immediately "Direct link to Pause immediately") The subscription moves to `PAUSED` status right away. No further payments are charged until you resume it. * cURL * Node.js * PHP * Python POST https\://api.monei.com/v1/subscriptions/{id}/pause ``` curl --request POST 'https://api.monei.com/v1/subscriptions/YOUR_SUBSCRIPTION_ID/pause' \ --header 'Authorization: YOUR_API_KEY' \ --header 'Content-Type: application/json' ``` server.js ``` const subscription = await monei.subscriptions.pause('YOUR_SUBSCRIPTION_ID'); ``` server.php ``` subscriptions->pause('YOUR_SUBSCRIPTION_ID'); ?> ``` server.py ``` subscription = monei.subscriptions.pause("YOUR_SUBSCRIPTION_ID") ``` ### Pause at the end of the current billing period[​](#pause-at-the-end-of-the-current-billing-period "Direct link to Pause at the end of the current billing period") The subscription stays `ACTIVE` until the current billing period ends, then transitions to `PAUSED`. * cURL * Node.js * PHP * Python POST https\://api.monei.com/v1/subscriptions/{id}/pause ``` curl --request POST 'https://api.monei.com/v1/subscriptions/YOUR_SUBSCRIPTION_ID/pause' \ --header 'Authorization: YOUR_API_KEY' \ --header 'Content-Type: application/json' \ --data-raw '{ "pauseAtPeriodEnd": true, "pauseIntervalCount": 3 }' ``` server.js ``` const subscription = await monei.subscriptions.pause('YOUR_SUBSCRIPTION_ID', { pauseAtPeriodEnd: true, pauseIntervalCount: 3 }); ``` server.php ``` subscriptions->pause( 'YOUR_SUBSCRIPTION_ID', new PauseSubscriptionRequest([ 'pause_at_period_end' => true, 'pause_interval_count' => 3 ]) ); ?> ``` server.py ``` from Monei import PauseSubscriptionRequest subscription = monei.subscriptions.pause( "YOUR_SUBSCRIPTION_ID", PauseSubscriptionRequest( pause_at_period_end=True, pause_interval_count=3 ) ) ``` ### Auto-resume after N billing cycles[​](#auto-resume-after-n-billing-cycles "Direct link to Auto-resume after N billing cycles") Set `pauseIntervalCount` to automatically resume the subscription after a specific number of billing cycles. For example, if the subscription bills monthly and you set `pauseIntervalCount: 3`, it will pause for 3 months and then automatically resume. When the count reaches 0, the subscription transitions back to `ACTIVE` and billing resumes. ## Resume a subscription[​](#resume-a-subscription "Direct link to Resume a subscription") Resume a paused subscription to restart billing. The next payment is scheduled at the end of the current billing period. * cURL * Node.js * PHP * Python POST https\://api.monei.com/v1/subscriptions/{id}/resume ``` curl --request POST 'https://api.monei.com/v1/subscriptions/YOUR_SUBSCRIPTION_ID/resume' \ --header 'Authorization: YOUR_API_KEY' \ --header 'Content-Type: application/json' ``` server.js ``` const subscription = await monei.subscriptions.resume('YOUR_SUBSCRIPTION_ID'); ``` server.php ``` subscriptions->resume('YOUR_SUBSCRIPTION_ID'); ?> ``` server.py ``` subscription = monei.subscriptions.resume("YOUR_SUBSCRIPTION_ID") ``` Resuming clears any pending pause or cancel-at-period-end flags. ## Cancel a subscription[​](#cancel-a-subscription "Direct link to Cancel a subscription") Permanently stop a subscription. Once canceled, no further payments will be charged. ### Cancel immediately[​](#cancel-immediately "Direct link to Cancel immediately") * cURL * Node.js * PHP * Python POST https\://api.monei.com/v1/subscriptions/{id}/cancel ``` curl --request POST 'https://api.monei.com/v1/subscriptions/YOUR_SUBSCRIPTION_ID/cancel' \ --header 'Authorization: YOUR_API_KEY' \ --header 'Content-Type: application/json' ``` server.js ``` const subscription = await monei.subscriptions.cancel('YOUR_SUBSCRIPTION_ID'); ``` server.php ``` subscriptions->cancel('YOUR_SUBSCRIPTION_ID'); ?> ``` server.py ``` subscription = monei.subscriptions.cancel("YOUR_SUBSCRIPTION_ID") ``` ### Cancel at the end of the current billing period[​](#cancel-at-the-end-of-the-current-billing-period "Direct link to Cancel at the end of the current billing period") The subscription stays active until the current period ends, then transitions to `CANCELED`. The customer continues to have access until their paid period expires. * cURL * Node.js * PHP * Python POST https\://api.monei.com/v1/subscriptions/{id}/cancel ``` curl --request POST 'https://api.monei.com/v1/subscriptions/YOUR_SUBSCRIPTION_ID/cancel' \ --header 'Authorization: YOUR_API_KEY' \ --header 'Content-Type: application/json' \ --data-raw '{ "cancelAtPeriodEnd": true }' ``` server.js ``` const subscription = await monei.subscriptions.cancel('YOUR_SUBSCRIPTION_ID', { cancelAtPeriodEnd: true }); ``` server.php ``` subscriptions->cancel( 'YOUR_SUBSCRIPTION_ID', new CancelSubscriptionRequest([ 'cancel_at_period_end' => true ]) ); ?> ``` server.py ``` from Monei import CancelSubscriptionRequest subscription = monei.subscriptions.cancel( "YOUR_SUBSCRIPTION_ID", CancelSubscriptionRequest( cancel_at_period_end=True ) ) ``` tip If a customer changes their mind before the period ends, you can [resume the subscription](#resume-a-subscription) to clear the cancel-at-period-end flag. ## Skip billing cycles[​](#skip-billing-cycles "Direct link to Skip billing cycles") Skip one or more billing cycles without changing the subscription status. The subscription remains `ACTIVE` — the payment is simply not charged during the skipped cycles. Use the [update subscription](https://docs.monei.com/apis/rest/subscriptions-update/.md) endpoint with `skipIntervalCount` (1–31): * cURL * Node.js * PHP * Python PUT https\://api.monei.com/v1/subscriptions/{id} ``` curl --request PUT 'https://api.monei.com/v1/subscriptions/YOUR_SUBSCRIPTION_ID' \ --header 'Authorization: YOUR_API_KEY' \ --header 'Content-Type: application/json' \ --data-raw '{ "skipIntervalCount": 2 }' ``` server.js ``` const subscription = await monei.subscriptions.update('YOUR_SUBSCRIPTION_ID', { skipIntervalCount: 2 }); ``` server.php ``` subscriptions->update( 'YOUR_SUBSCRIPTION_ID', new UpdateSubscriptionRequest([ 'skip_interval_count' => 2 ]) ); ?> ``` server.py ``` from Monei import UpdateSubscriptionRequest subscription = monei.subscriptions.update( "YOUR_SUBSCRIPTION_ID", UpdateSubscriptionRequest( skip_interval_count=2 ) ) ``` For example, setting `skipIntervalCount: 2` on a monthly subscription skips the next 2 monthly payments. Billing resumes automatically after the skipped cycles. note Skip is only available for subscriptions in `ACTIVE`, `TRIALING`, or `PAST_DUE` status. It cannot be used on paused, canceled, or pending subscriptions. ## Update payment method[​](#update-payment-method "Direct link to Update payment method") To change the payment method on an active subscription, call the [activate](https://docs.monei.com/apis/rest/subscriptions-activate/.md) endpoint again. MONEI creates a €0 verification payment to validate the new payment method without charging the customer. The activation flow is the same as the initial activation — use either the [prebuilt payment page](https://docs.monei.com/subscriptions/use-prebuilt-payment-page/.md#2-activate-the-subscription-server-side) or [custom checkout](https://docs.monei.com/subscriptions/build-custom-checkout/.md) approach. After the new payment method is verified, all future recurring charges will use it. ## Update subscription details[​](#update-subscription-details "Direct link to Update subscription details") Modify subscription properties like amount, billing interval, description, metadata, or the next payment date using the [update subscription](https://docs.monei.com/apis/rest/subscriptions-update/.md) endpoint. * cURL * Node.js * PHP * Python PUT https\://api.monei.com/v1/subscriptions/{id} ``` curl --request PUT 'https://api.monei.com/v1/subscriptions/YOUR_SUBSCRIPTION_ID' \ --header 'Authorization: YOUR_API_KEY' \ --header 'Content-Type: application/json' \ --data-raw '{ "amount": 2500, "description": "Pro Plan Monthly (upgraded)" }' ``` server.js ``` const subscription = await monei.subscriptions.update('YOUR_SUBSCRIPTION_ID', { amount: 2500, description: 'Pro Plan Monthly (upgraded)' }); ``` server.php ``` subscriptions->update( 'YOUR_SUBSCRIPTION_ID', new UpdateSubscriptionRequest([ 'amount' => 2500, 'description' => 'Pro Plan Monthly (upgraded)' ]) ); ?> ``` server.py ``` from Monei import UpdateSubscriptionRequest subscription = monei.subscriptions.update( "YOUR_SUBSCRIPTION_ID", UpdateSubscriptionRequest( amount=2500, description="Pro Plan Monthly (upgraded)" ) ) ``` **Updatable fields:** * **amount** — Change the recurring charge amount. The new amount applies from the next billing cycle. * **interval** / **intervalCount** — Change the billing frequency. The maximum period is 1 year. * **nextPaymentAt** — Reschedule the next payment to a specific date (must be in the future). * **trialPeriodEnd** — Extend the trial period on a `TRIALING` subscription (must be a future timestamp). * **description** / **metadata** — Update descriptive fields and custom metadata. Bizum restriction If the subscription uses Bizum as the payment method, the amount cannot be changed after activation. ## Send subscription link[​](#send-subscription-link "Direct link to Send subscription link") Send an activation link to the customer via email or SMS without writing any integration code. Useful for manually creating subscriptions from your back office. * cURL * Node.js * PHP * Python POST https\://api.monei.com/v1/subscriptions/{id}/link ``` curl --request POST 'https://api.monei.com/v1/subscriptions/YOUR_SUBSCRIPTION_ID/link' \ --header 'Authorization: YOUR_API_KEY' \ --header 'Content-Type: application/json' \ --data-raw '{ "customerEmail": "john.doe@example.com" }' ``` server.js ``` const subscription = await monei.subscriptions.sendLink('YOUR_SUBSCRIPTION_ID', { customerEmail: 'john.doe@example.com' }); ``` server.php ``` subscriptions->sendLink( 'YOUR_SUBSCRIPTION_ID', new SendSubscriptionLinkRequest([ 'customer_email' => 'john.doe@example.com' ]) ); ?> ``` server.py ``` from Monei import SendSubscriptionLinkRequest subscription = monei.subscriptions.send_link( "YOUR_SUBSCRIPTION_ID", SendSubscriptionLinkRequest( customer_email="john.doe@example.com" ) ) ``` You can also send the link via SMS using `customerPhone` instead of `customerEmail`. --- # Subscriptions overview Subscriptions allow you to charge a customer on a recurring basis. MONEI handles the billing cycle automatically — you create and activate a subscription, and MONEI charges the customer at each billing interval. ## Subscription lifecycle[​](#subscription-lifecycle "Direct link to Subscription lifecycle") A subscription moves through several statuses during its lifetime: ### Statuses[​](#statuses "Direct link to Statuses") | Status | Description | | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | | PENDING | Subscription created, awaiting activation. The customer has not yet provided a payment method. | | TRIALING | Active trial period. A €0 verification payment was made to validate the payment method. Billing begins when the trial ends. | | ACTIVE | Recurring payments are being charged at each billing interval. | | PAUSED | Billing is temporarily suspended. The subscription can be resumed at any time. | | PAST\_DUE | A recurring payment failed. MONEI will retry according to the [retry schedule](https://docs.monei.com/subscriptions/handle-failed-payments/.md). | | CANCELED | The subscription has been permanently stopped. No further payments will be charged. | | EXPIRED | The subscription was not activated in time and can no longer be used. | ## Billing intervals[​](#billing-intervals "Direct link to Billing intervals") Configure how often the customer is charged using `interval` and `intervalCount`: | interval | intervalCount | Billing frequency | | -------- | ------------- | -------------------------- | | day | 1 | Every day | | week | 1 | Every week | | week | 2 | Every 2 weeks | | month | 1 | Every month | | month | 3 | Every 3 months (quarterly) | | year | 1 | Every year | The maximum billing period is 1 year. For example, `intervalCount` cannot exceed 365 for `day`, 52 for `week`, 12 for `month`, or 1 for `year`. note `minute` and `hour` intervals are available in [test mode](https://docs.monei.com/testing/.md) only — useful for quickly testing your integration without waiting for real billing cycles. ## Trial periods[​](#trial-periods "Direct link to Trial periods") You can offer a free trial before the first charge. Configure it with one of: * **trialPeriodDays** — number of free days (e.g., `14` for a 14-day trial) * **trialPeriodEnd** — Unix timestamp when the trial ends During activation, MONEI creates a €0 verification payment to validate the customer's payment method without charging them. The first real charge occurs when the trial period ends. You can extend an active trial by updating `trialPeriodEnd` on a TRIALING subscription — see [Update subscription details](https://docs.monei.com/subscriptions/manage-subscriptions/.md#update-subscription-details). ## Webhook events[​](#webhook-events "Direct link to Webhook events") MONEI sends webhook notifications for subscription status changes and recurring payments. You configure two separate callback URLs when creating a subscription: * **callbackUrl** — receives subscription status change events * **paymentCallbackUrl** — receives payment events for each recurring charge ### Subscription events[​](#subscription-events "Direct link to Subscription events") | Event type | Triggered when | | ----------------------- | --------------------------------- | | SUBSCRIPTION\_PENDING | Subscription is created | | SUBSCRIPTION\_ACTIVATED | Subscription becomes active | | SUBSCRIPTION\_TRIALING | Trial period starts | | SUBSCRIPTION\_PAUSED | Subscription is paused | | SUBSCRIPTION\_PAST\_DUE | A recurring payment fails | | SUBSCRIPTION\_CANCELED | Subscription is canceled | | SUBSCRIPTION\_UPDATED | Subscription details are modified | Each webhook request includes a `MONEI-Signature` header. Always [verify the signature](https://docs.monei.com/guides/verify-signature/.md) before processing the event, and return a `200` HTTP status code to acknowledge receipt. ## Payment methods[​](#payment-methods "Direct link to Payment methods") Subscriptions support the following payment methods: * **Card** — Visa, Mastercard, and other supported card networks. Default payment method for all subscriptions. * **Bizum** — Available with the following restrictions: * Monthly and yearly billing intervals only (daily and weekly not supported in production) * Trial periods are not supported * Subscription amount cannot be changed after activation ## Send subscription link[​](#send-subscription-link "Direct link to Send subscription link") You can send an activation link to the customer via email or SMS using the [send subscription link](https://docs.monei.com/apis/rest/subscriptions-send-link/.md) endpoint. This allows the customer to activate the subscription without any custom integration — useful for manual or back-office subscription creation. See [Send subscription link](https://docs.monei.com/subscriptions/manage-subscriptions/.md#send-subscription-link) for details. ## Next steps[​](#next-steps "Direct link to Next steps") Choose how to integrate subscriptions based on your needs: * **[Use prebuilt payment page](https://docs.monei.com/subscriptions/use-prebuilt-payment-page/.md)** — Redirect customers to a MONEI-hosted page to activate their subscription. Simplest integration, no frontend code required. * **[Build a custom checkout](https://docs.monei.com/subscriptions/build-custom-checkout/.md)** — Collect payment details on your own site using MONEI Components. Full control over the checkout experience. * **[Manage subscriptions](https://docs.monei.com/subscriptions/manage-subscriptions/.md)** — Pause, resume, cancel, skip payments, update payment method, and more. * **[Handle failed payments](https://docs.monei.com/subscriptions/handle-failed-payments/.md)** — Understand retry logic, configure dunning behavior, and recover past-due subscriptions. --- # Subscriptions with prebuilt payment page Redirect customers to a MONEI-hosted payment page to activate their subscription. This is the simplest way to start collecting recurring payments — no frontend code required. ## Before You Begin[​](#before-you-begin "Direct link to Before You Begin") * You need a MONEI account and your [API key](https://dashboard.monei.com/settings/api) (test or live). * Use your [test mode keys](https://docs.monei.com/testing/.md) during development. * Ensure at least one [payment method is enabled](https://dashboard.monei.com/settings/payment-methods) in your account settings. ## How It Works[​](#how-it-works "Direct link to How It Works") 1. Your **backend** creates a subscription with amount, currency, and billing interval 2. The subscription is **activated**, returning a `redirectUrl` for the initial payment 3. The customer is **redirected** to the MONEI-hosted payment page 4. The customer completes the **initial payment** (including 3D Secure if required) 5. After payment, the customer is redirected back to your `completeUrl` 6. MONEI sends **webhooks** for both the initial payment and subscription status changes — recurring payments are charged automatically at each billing interval ## Integration Steps[​](#integration-steps "Direct link to Integration Steps") ### 1. Create a subscription (Server-side)[​](#1-create-a-subscription-server-side "Direct link to 1. Create a subscription (Server-side)") Create a [Subscription](https://docs.monei.com/apis/rest/subscriptions-create/.md) on your server with the billing amount, currency, and interval. * cURL * Node.js * PHP * Python POST https\://api.monei.com/v1/subscriptions ``` curl --request POST 'https://api.monei.com/v1/subscriptions' \ --header 'Authorization: YOUR_API_KEY' \ --header 'Content-Type: application/json' \ --data-raw '{ "amount": 1500, "currency": "EUR", "interval": "month", "intervalCount": 1, "description": "Pro Plan Monthly", "customer": { "name": "John Doe", "email": "john.doe@example.com" }, "callbackUrl": "https://example.com/subscriptions/callback", "paymentCallbackUrl": "https://example.com/payments/callback" }' ``` (Replace `YOUR_API_KEY` with your actual MONEI API key) server.js ``` import {Monei} from '@monei-js/node-sdk'; // Replace YOUR_API_KEY with your actual MONEI API key const monei = new Monei('YOUR_API_KEY'); const subscription = await monei.subscriptions.create({ amount: 1500, currency: 'EUR', interval: 'month', intervalCount: 1, description: 'Pro Plan Monthly', customer: { name: 'John Doe', email: 'john.doe@example.com' }, callbackUrl: 'https://example.com/subscriptions/callback', paymentCallbackUrl: 'https://example.com/payments/callback' }); // You will need the subscription id in the next step const subscriptionId = subscription.id; ``` server.php ``` subscriptions->create( new CreateSubscriptionRequest([ 'amount' => 1500, 'currency' => 'EUR', 'interval' => 'month', 'interval_count' => 1, 'description' => 'Pro Plan Monthly', 'customer' => new PaymentCustomer([ 'name' => 'John Doe', 'email' => 'john.doe@example.com' ]), 'callback_url' => 'https://example.com/subscriptions/callback', 'payment_callback_url' => 'https://example.com/payments/callback' ]) ); // You will need the subscription id in the next step $subscriptionId = $subscription->getId(); ?> ``` server.py ``` import Monei from Monei import CreateSubscriptionRequest, PaymentCustomer # Replace YOUR_API_KEY with your actual MONEI API key monei = Monei.MoneiClient(api_key="YOUR_API_KEY") subscription = monei.subscriptions.create( CreateSubscriptionRequest( amount=1500, currency="EUR", interval="month", interval_count=1, description="Pro Plan Monthly", customer=PaymentCustomer( name="John Doe", email="john.doe@example.com" ), callback_url="https://example.com/subscriptions/callback", payment_callback_url="https://example.com/payments/callback" ) ) # You will need the subscription id in the next step subscription_id = subscription.id ``` **Key parameters:** * **amount** positive integer — Amount in the smallest currency unit (e.g., 1500 = €15.00). * **currency** string — Three-letter [ISO currency code](https://en.wikipedia.org/wiki/ISO_4217) (e.g., `EUR`). * **interval** string — Billing interval: `day`, `week`, `month`, or `year`. * **intervalCount** number — Number of intervals between each charge (e.g., `3` with `month` = quarterly). * **callbackUrl** string — URL that receives subscription status change webhooks. * **paymentCallbackUrl** string — URL that receives payment webhooks for each recurring charge. Check all available [request parameters](https://docs.monei.com/apis/rest/subscriptions-create/.md). ### 2. Activate the subscription (Server-side)[​](#2-activate-the-subscription-server-side "Direct link to 2. Activate the subscription (Server-side)") Activate the subscription to start the billing process. The response includes a `redirectUrl` to send the customer to the MONEI-hosted payment page. * cURL * Node.js * PHP * Python POST https\://api.monei.com/v1/subscriptions/{id}/activate ``` curl --request POST 'https://api.monei.com/v1/subscriptions/YOUR_SUBSCRIPTION_ID/activate' \ --header 'Authorization: YOUR_API_KEY' \ --header 'Content-Type: application/json' \ --data-raw '{ "completeUrl": "https://example.com/checkout/complete" }' ``` (Replace `YOUR_SUBSCRIPTION_ID` and `YOUR_API_KEY`) server.js ``` const activation = await monei.subscriptions.activate('YOUR_SUBSCRIPTION_ID', { completeUrl: 'https://example.com/checkout/complete' }); // Redirect the customer to this URL const redirectUrl = activation.nextAction.redirectUrl; ``` server.php ``` subscriptions->activate( 'YOUR_SUBSCRIPTION_ID', new ActivateSubscriptionRequest([ 'complete_url' => 'https://example.com/checkout/complete' ]) ); // Redirect the customer to this URL $redirectUrl = $activation->getNextAction()->getRedirectUrl(); ?> ``` server.py ``` from Monei import ActivateSubscriptionRequest activation = monei.subscriptions.activate( "YOUR_SUBSCRIPTION_ID", ActivateSubscriptionRequest( complete_url="https://example.com/checkout/complete" ) ) # Redirect the customer to this URL redirect_url = activation.next_action.redirect_url ``` The activation response is a [Payment object](https://docs.monei.com/apis/rest/schemas/payment/.md) for the initial charge. Redirect the customer to `nextAction.redirectUrl`. Check all available [request parameters](https://docs.monei.com/apis/rest/subscriptions-activate/.md). ### 3. Customer completes the payment[​](#3-customer-completes-the-payment "Direct link to 3. Customer completes the payment") The customer enters their payment details on the MONEI-hosted payment page and completes any required 3D Secure verification. ### 4. Customer is redirected back to your site[​](#4-customer-is-redirected-back-to-your-site "Direct link to 4. Customer is redirected back to your site") The customer is redirected to `completeUrl` with `payment_id` and `subscription_id` query parameters. Use the [get payment](https://docs.monei.com/apis/rest/payments-get/.md) endpoint to check the initial payment status, and the [get subscription](https://docs.monei.com/apis/rest/subscriptions-get/.md) endpoint to verify the subscription status (it should be `ACTIVE` or `TRIALING`). note Do not rely solely on the redirect to confirm the payment — always use the webhook (next step) as the authoritative source of truth. ### 5. Handle webhooks (Server-side)[​](#5-handle-webhooks-server-side "Direct link to 5. Handle webhooks (Server-side)") MONEI sends two types of webhook notifications: * **Payment callback** — sent to `paymentCallbackUrl` for the initial payment and each recurring charge. The request body contains the full [Payment object](https://docs.monei.com/apis/rest/schemas/payment/.md). * **Subscription callback** — sent to `callbackUrl` when the subscription status changes (e.g., `PENDING` → `ACTIVE`). The request body contains the full [Subscription object](https://docs.monei.com/apis/rest/schemas/subscription/.md). Each request includes a `MONEI-Signature` header. [Verify this signature](https://docs.monei.com/guides/verify-signature/.md) to confirm the request is from MONEI, and return a `200` HTTP status code to acknowledge receipt. If MONEI does not receive a `200` response, the notification will be retried. ## Before You Go Live[​](#before-you-go-live "Direct link to Before You Go Live") * Switch to your [live mode](https://dashboard.monei.com/settings/api) API key. * Ensure your [payment methods are enabled](https://dashboard.monei.com/settings/payment-methods) in live mode. * Test your webhook endpoints handle both payment and subscription callbacks correctly. Test mode limits In test mode, subscriptions have the following limits: * Maximum **3 active subscriptions** per account * Subscriptions are **auto-canceled after 12 payments** * **Minute and hour** billing intervals are available for faster testing --- # Testing ## How to test your integrations[​](#how-to-test-your-integrations "Direct link to How to test your integrations") To test your integrations you need to switch to a **test mode** using a switch in the header of your [MONEI Dashboard](https://dashboard.monei.com). ![MONEI Test Mode](/assets/images/test-mode-2bf011748369a7dea9aa5c4fd40ae774.jpg) * Generate your test API key and get your test Account ID in [MONEI Dashboard → Settings → API Access](https://dashboard.monei.com/settings/api). * Configure your payment methods using test credentials in [MONEI Dashboard → Settings → Payment Methods](https://dashboard.monei.com/settings/payment-methods) Important **Account ID** and **API key** you generate in test mode are **different from the live (production) mode** and can only be used for testing purposes. ## Test card numbers[​](#test-card-numbers "Direct link to Test card numbers") Genuine card information cannot be used in test mode. Instead, use any of the following test card numbers. * For all test card numbers use **12/34** as an expiration date and **123** as CVC code | CARD NUMBER | BRAND | DESCRIPTION | | ---------------- | ---------- | ----------------------------------------- | | 4444444444444406 | Visa | 3D Secure v2.1 Challenge | | 4444444444444414 | Visa | 3D Secure v2.1 Direct (no challenge) | | 4444444444444422 | Visa | 3D Secure v2.1 Frictionless | | 4444444444444430 | Visa | 3D Secure v2.1 Frictionless and Challenge | | 5555555555555524 | Mastercard | 3D Secure v2.1 Direct (no challenge) | | 5555555555555532 | Mastercard | 3D Secure v2.1 Frictionless | | 5555555555555565 | Mastercard | 3D Secure v2.1 Challenge | | 5555555555555573 | Mastercard | 3D Secure v2.1 Frictionless and Challenge | ## Test Bizum phone numbers[​](#test-bizum-phone-numbers "Direct link to Test Bizum phone numbers") For all Bizum tests, the phone number to be used is +34500000000 | AMOUNT | STATUS CODE | FLOW | | ------------------------- | ----------------------------------------------------------- | -------- | | Below 5 EUR | E000 (Transaction approved) | RTP | | Between 5 EUR and 10 EUR | E506 (Error during payment authorization. Please try again) | RTP | | Between 10 EUR and 15 EUR | E000 (Transaction approved) | REDIRECT | | Above 15 EUR | Phone number is not registered in Bizum | | ### Test Bizum Payout transactions​[​](#test-bizum-payout-transactions "Direct link to Test Bizum Payout transactions​") You can also test **Bizum Payout** transactions (outgoing payments to users).
In test mode, all Payout transactions with an amount **below 10 EUR** will be **approved automatically**. | AMOUNT | STATUS CODE | FLOW | | --------------- | ------------------------------------------------------------------------------------------------------------------- | ---- | | Below 10 EUR | E000 (Transaction approved) | RTP | | 10 EUR or above | E103 (Operation not allowed/configured for this merchant. Please contact the acquiring entity or MONEI for support) | RTP | **Note:**
Bizum Payout tests are only available in **test mode** and do not generate real fund transfers.
Make sure to use your **test Account ID** and **API key** when sending Payout requests via the API. caution **In test environment Bizum only supports transactions below 5 EUR** ## Test PayPal Accounts[​](#test-paypal-accounts "Direct link to Test PayPal Accounts") | TYPE | EMAIL | PASSWORD | DESCRIPTION | | -------- | ----------------------------- | ---------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Business | | monei12345 | You can link this account in MONEI Dashboard to test PayPal payment method | | Personal | | monei12345 | You can do test payments using this account | | Personal | | PayPal2016 | Use this account to simulate a payment failure. PayPal credit and the card ending with 1111 in the PayPal wallet will lead to a successful transaction. The other cards will lead to a decline. | You can register your own PayPal sandbox account [here](https://sandbox.paypal.com/). ---