---
title: Modulr API Integration on Truto
slug: modulr
category: Banking
canonical: "https://truto.one/integrations/detail/modulr/"
---

# Modulr API Integration on Truto



**Category:** Banking  
**Status:** Generally available

## MCP-ready AI tools

Truto exposes 116 tools for Modulr that AI agents can call directly.

- **get_single_modulr_customer_by_id** — Retrieve a specific modulr customer by unique customer reference. Returns the customer object including its id, type, verificationStatus, registeredAddress, and externalReference. Required: id. Optionally filter by statuses (defaults to ACTIVE).
- **list_all_modulr_customers** — List modulr customers with optional filters by id, type, verificationStatus, name, date ranges, address details, and associate search criteria. Returns customer records including id, type, verificationStatus, registeredAddress, and externalReference per record.
- **create_a_modulr_customer** — Create a new modulr customer. Returns the created customer record including its id, type, verificationStatus, registeredAddress, and externalReference. Customer creation has multiple dependencies (customer type, directors, legal specifications); consult Modulr API documentation for the complete request schema. Required: type.
- **modulr_customers_partial_update** — Partially update a modulr customer by id. The per-endpoint source was not available, so no body fields or response shape could be confirmed from documentation. Returns an empty 204 response on success. Required: id.
- **get_single_modulr_account_by_id** — Get a single Modulr account by id. Returns the account object including id, name, balance, currency, status, customerId, externalReference, and createdDate. Required: id.
- **list_all_modulr_accounts** — List Modulr accounts using optional filters including customerId, currency, name, statuses, and balance range. Returns account records including id, name, balance, currency, status, customerId, externalReference, and createdDate.
- **list_all_modulr_customer_accounts** — List accounts belonging to a specific Modulr customer. Returns: id, name, balance, availableBalance, currency, status, identifiers, customerId, customerName, externalReference, accessGroups, createdDate, directDebit, securedFundingLimit. Supports filtering by balance range, date range, currency, and statuses. Required: customer_id.
- **create_a_modulr_customer_account** — Create a new account for a specific Modulr customer. Returns: id, name, balance, currency, status, identifiers. Required: customer_id, currency.
- **create_a_modulr_account_unblock** — Unblock a specific modulr account using its unique account ID. Returns an empty 200 response on success. Required: account_id.
- **create_a_modulr_account_close** — Close a modulr account by account_id. The account must have a zero balance and a status of ACTIVE or CLIENT_BLOCKED to be eligible for closure. Returns a 200 OK response with no body on success. Required: account_id.
- **create_a_modulr_account_block** — Block a specific modulr account by its ID. Sends a block request to prevent the account from operating. Returns an empty 200 response on success. Required: account_id.
- **list_all_modulr_access_groups** — List all access groups in Modulr. Returns: id, name, typeId, status, countOfAccounts. Optional filters: ids, types, statuses, typeIds, accountIds, and accountIdSearchCriteria match settings.
- **create_a_modulr_access_group** — Create a new access group in Modulr. Returns: id, name, typeId, status, countOfAccounts.
- **get_single_modulr_access_group_by_id** — Get a single Modulr access group by ID. Returns: id, name, status. Required: id.
- **list_all_modulr_beneficiaries** — List beneficiaries in modulr with optional filtering by id, customer, IBAN, ABA routing number, currency, state, external reference, sort code, account number, and field-level search operators. Returns: id, name, birthdate, emailAddress, phoneNumber, destinationIdentifier, redirectedDestination, defaultReference, status, created, accountId, externalReference, approvalRequired, customerId,…
- **list_all_modulr_payments** — List modulr payments using a wide range of filter criteria including account, date ranges, status, type, currency, and amount. Returns: id, status, createdDate, externalReference, details, approvalStatus, message, schemeInfo, createdBy, paymentScheduledDate, currentUserCanApprove, approvals, currency, amount, sourceAccountId, batchPaymentId, schemeId, customerId, updatedDate.
- **create_a_modulr_payment** — Create a payment in modulr supporting Faster Payments to external bank accounts or transfers between Modulr accounts. Returns: id, status, details, message, approvals. Requests are processed asynchronously.
- **list_all_modulr_batchpayments** — List batch payments in modulr filtered by a given set of parameters. Returns: id, externalReference, status, totalPayments, currentUserCanApprove, paymentDetails, approvals, currentUserCanCancel, createdDate, createdBy, processingDateFrom, processingDateTo, earliestScheduledPaymentDate, requiredApprovalCount, batchSummary, strict, approvalStatus, submissionType. All filter parameters are optional.
- **create_a_modulr_batchpayment** — Create a new batch payment in modulr, submitting multiple payment objects as a single batch request. Returns: id, status, approvals, strict, summary.
- **modulr_batchpayments_cancel** — Cancel a batch payment in modulr if it has not already been processed. Returns an empty 204 response on success. Required: batch_payment_id.
- **get_single_modulr_batchpayment_by_id** — Get the details of an existing batch payment in modulr by ID. Returns: id, status, approvals, strict, summary. Required: id.
- **update_a_modulr_rule_by_id** — Edit a specific modulr rule by id. Returns: id, status, name, accountId, accountCurrency, masterId, data. Required: id.
- **create_a_modulr_rule** — Create a new rule in modulr linked to an account. Each account can only have one instance of a given rule type. Returns: id, status, name, accountId, accountCurrency, masterId, data.
- **delete_a_modulr_rule_by_id** — Delete one or more modulr rules in a single request by specifying their ids. Multiple rules can be removed simultaneously. Returns an opaque success response on completion. Required: rIds.
- **list_all_modulr_partner_notifications** — Retrieve a specific Modulr partner notification by unique reference. Returns: id, customerId, channel, status, destinations, config. Required: partner_id.
- **update_a_modulr_partner_notification_by_id** — Update a specific notification for a Modulr partner by id. All notification settings must be provided in the request even if unchanged; call the GET endpoint first to retrieve the current values. Returns: id, customerId, channel, status, destinations, config. Required: partner_id, id.
- **create_a_modulr_partner_notification** — Set up a new notification for a Modulr partner. Returns: id, customerId, channel, status, destinations, config. Required: partner_id.
- **get_single_modulr_partner_notification_by_id** — Retrieve a specific Modulr partner notification by id to inspect its current settings. Returns: id, customerId, channel, status, destinations, config. Required: partner_id, id.
- **list_all_modulr_customer_notifications** — List all notifications configured for a customer in Modulr. Returns an array of notification records, each including id. Required: customer_id.
- **update_a_modulr_customer_notification_by_id** — Update a specific notification for a customer in Modulr by id. All notification fields must be included in the request body even if unchanged; call GET first to retrieve existing values. Returns: id, customerId, channel, status, destinations, config. Required: customer_id, id.
- **create_a_modulr_customer_notification** — Set up a new notification for a customer in Modulr. Returns: id, customerId, channel, status, destinations, config. Required: customer_id.
- **get_single_modulr_customer_notification_by_id** — Retrieve a specific notification by id for a customer in Modulr. Useful for inspecting current notification settings before performing an update. Returns: id, customerId, channel, status, destinations, config, field, code, message. Required: customer_id, id.
- **list_all_modulr_webhook_failures** — List failures for a specific modulr webhook since a given date. Returns an array of webhook failure notification records (max 50 results). Required: webhook_id, from (URL-encoded date string).
- **create_a_modulr_mandate_collectionschedule** — Create a Direct Debit collection schedule for a given mandate in modulr, defining the agreed framework for planned collections including their frequency and amounts. Returns the created schedule including id, status, createdDate, and externalReference. Required: mandate_id.
- **modulr_mandates_cancel** — Cancel a mandate in modulr by id. Returns an empty 200 response on success. Required: id.
- **list_all_modulr_mandates** — List mandates in modulr based on search criteria including status, date ranges, name, and reference. Returns: id, status, name, reference, externalReference, accountId, createdDate, submittedDate, bulkCreateRequestId, bulkCancelRequestId.
- **create_a_modulr_mandates_bulk_create** — Bulk create Direct Debit mandates in modulr for a given account. Returns the bulk create response object including its id.
- **create_a_modulr_mandates_bulk_cancel** — Submit a bulk mandate cancellation request in modulr for a given account. Returns: id, status. Required: a JSON request body conforming to the BulkCancelMandateRequest schema.
- **modulr_collections_cancel** — Cancel a Direct Debit collection in modulr by collection id. Returns an empty 200 response on success. Required: id.
- **list_all_modulr_collections** — List all Direct Debit collection activities for an account in modulr. Returns collection items including id, createdDate, and activityDate. Required: accountId.
- **list_all_modulr_reconciliations** — List modulr reconciliations for a given account and date. Returns: id, createdDate. Required: accountId, collectionDate. Results can be sorted by id or createdDate (ascending or descending); page size is capped at 500.
- **list_all_modulr_card_share_secure_details** — List share secure card details records for a specific card in modulr, with results extracted from the response content array. Returns: id, createdBy, email, status, expiryDate, createdDate, lastRevealedDate, noOfAccessesLeft, maxAccessesAllowed. Required: card_id.
- **update_a_modulr_card_share_secure_detail_by_id** — Update share secure card details for a card in modulr by the share secure details id. Returns an empty 204 response on success. Required: card_id, id.
- **create_a_modulr_card_share_secure_detail** — Create a share secure card details link for a specific card in modulr via EMAIL or RETURN methods. Returns: id. Required: card_id.
- **delete_a_modulr_card_share_secure_detail_by_id** — Delete all share secure card details for a card in modulr. Returns an empty 204 response on success. Required: card_id.
- **get_single_modulr_card_share_secure_detail_by_id** — Get a secure-details sharing record for a specific modulr card by its identifier. Returns: id, email, status, message, activity, currency, field, code. Required: card_id, id.
- **update_a_modulr_card_authentication_by_id** — Update card authentication settings for a modulr card to support knowledge based authentication (KBA). Returns an empty 204 response on success. Required: card_id.
- **get_single_modulr_card_by_id** — Get the details of an existing modulr card by id. Returns: id, holder, expiry, status, currency, limit, spend, format, constraints, design, authentication. Required: id.
- **modulr_cards_cancel** — Permanently cancel a modulr card, immediately and irreversibly disabling all new authorisations while leaving outstanding authorisations, settlements, chargebacks, and refunds unaffected. Returns an empty 200 response on success. Required: id.
- **modulr_cards_activate** — Activate a physical modulr card that is in CREATED status. Physical cards are mailed to cardholders in an inactive state and must be activated before use. Returns an empty 204 response on success. Required: id.
- **list_all_modulr_cards** — List modulr cards with optional filters by status, account, customer, currency, or creation date range. Returns: id, holder, expiry, status, currency, limit, maxLimit, spend, externalRef, maskedPan, cardType, cardScheme, accountBid, productId, format, constraints, design, printedName, cancellationDate, createdDate, threeDSecureStatus, authentication, shippingAddress, customFields, authWindow,…
- **modulr_cards_partial_update** — Partially update a modulr card by id using JSON Patch operations. Only removal of cancellationDate, authWindowStartDate, and authWindowEndDate fields, and update of frequencyUsage are supported. Returns an empty 204 response on success. Required: id.
- **create_a_modulr_card_unsuspend** — Unsuspend a previously suspended card in Modulr, restoring it to the status it held before suspension as applied by the issuer or program manager. Returns an empty 204 response on success. Required: card_id.
- **create_a_modulr_card_unblock** — Unblock an existing modulr card, re-enabling normal authorisation processing. Returns an empty 200 response on success. Required: card_id.
- **create_a_modulr_card_suspend** — Suspend an existing card in Modulr to temporarily prevent new authorisations, causing all subsequent authorisation attempts to be immediately declined. Outstanding authorisations, settlement, chargebacks, and refunds are unaffected. Returns an empty 204 response on success. Required: card_id.
- **create_a_modulr_card_secure_details_token** — Create a secure card details token in modulr for a specific card. The token is used as a parameter to retrieve secure card details (PAN, CVV, and PIN) or to perform PIN alterations; it is valid for 60 seconds and must be pushed by the partner to the cardholder device. Returns a one-time token object on success; the exact response fields are not enumerated in the available source — consult the…
- **create_a_modulr_card_replace** — Replace a card in modulr by submitting a replacement request. Returns: id, cvv2, pan, expiry. Required: card_id, reason.
- **list_all_modulr_card_pins** — Retrieve the PIN for a modulr card as a reminder for the cardholder. Returns a PIN response object (card.CardPinResponse); the response field schema is not enumerated in the available source documentation. Required: card_id.
- **create_a_modulr_pin_unblock** — Unblock a card's PIN in modulr so that it can be used by the cardholder. CVC2 will also be unblocked where required. Returns an empty 204 response on success. Required: card_id.
- **create_a_modulr_card_custom_field** — Create or replace custom fields on a modulr card, inserting new key-value pairs or overwriting existing ones. Returns an empty 204 response on success. Required: card_id.
- **delete_a_modulr_card_custom_field_by_id** — Delete a custom field from a modulr card by id. Returns an empty 202 response on success. Required: card_id, id.
- **modulr_card_custom_fields_delete_3** — Delete a custom field from a card in Modulr by specifying the card ID and the custom field key. Returns an empty 204 response on success. Required: card_id, key.
- **create_a_modulr_card_block** — Block an existing modulr card, temporarily disabling all new authorisation processing while leaving outstanding authorisations, settlements, chargebacks, and refunds unaffected. Returns an empty 200 response on success. Required: card_id.
- **create_a_modulr_cards_secure_pin_reset** — Reset the PIN for a modulr card using a client access token. This action should be initiated from the card-holder's device, not directly by the partner. Returns an empty 204 response on success. Required: card_id.
- **create_a_modulr_card_token_unsuspend** — Unsuspend a modulr card token, restoring a previously suspended token to active status. Returns an empty 204 response on success. Required: card_id, token_id.
- **create_a_modulr_card_token_suspend** — Suspend a modulr card token to temporarily prevent any new authorisations. Returns an empty 204 response on success. Required: card_id, token_id.
- **modulr_card_tokens_deactivate** — Permanently deactivate a card token in modulr, irreversibly disabling all authorisation processing on that token. Returns an empty 204 response on success. Required: card_id, id.
- **list_all_modulr_card_tokens** — List all payment card tokens for a given card in modulr. Returns: id, expiry, wallet, status, language, devices, maskedDpan. Optionally include deleted devices using includeDeletedDevices. Required: card_id.
- **list_all_modulr_bulk_cards** — List active bulk card requests in modulr. Retrieves non-terminated (not processed, archived, or deleted) bulk card requests for the current user. Returns: id. Max page size is 500.
- **create_a_modulr_bulk_card** — Submit bulk card operations in modulr to create, update, cancel, or patch cards in bulk. Processing is asynchronous (returns 202 Accepted). Returns: status, id. Required: validateOnly, keepOperations.
- **get_single_modulr_bulk_card_by_id** — Get a bulk card request by id in modulr. Retrieves all batch-specific information for the given bulk request. Returns: id, source, status, errors. Required: id.
- **delete_a_modulr_bulk_card_by_id** — Mark a bulk card request as deleted in modulr. Only valid if the request has not already been processed, processed with errors, or archived. Returns an empty 204 response on success. Required: id.
- **create_a_modulr_bulk_cards_upload** — Upload a CSV file of bulk card create, update, and status-change requests to modulr. Returns a BulkCardsOpsResponse object; the exact response attributes are defined by modulr's BulkCardsOpsResponse schema — consult the modulr API reference for the full field-level breakdown. Optional: validateOnly to validate without submitting, keepEntries to persist validated entries (only when validateOnly is…
- **create_a_modulr_account_physical_card** — Create a new physical card in modulr for the specified account, processed asynchronously. Returns: id. Required: account_id.
- **list_all_modulr_account_cards** — List cards for a modulr account. Returns: id, holder, expiry, status, currency, limit, maxLimit, spend, externalRef, maskedPan, cardType, cardScheme, accountBid, productId, format, constraints, design, printedName, cancellationDate, createdDate, threeDSecureStatus, authentication, shippingAddress, customFields, authWindow, channelManagerId, frequencyUsage, accountId. Required: account_id.…
- **create_a_modulr_account_card** — Create a new virtual card in modulr, funding it from the specified account. Returns: id, pan, cvv2. Required: account_id.
- **list_all_modulr_share_secure_detail_activities** — List share secure card details activities for a specific card and share token in modulr. Returns activity records in a content array, each including id, createdDate, type, transactionAmount, and billingAmount. Required: card_id, share_secure_details_id.
- **list_all_modulr_cards_secure_details** — Retrieve secure card details for a modulr card. Returns: pan, cvv, pin. Required: card_id. Note: this call is intended to be made from the cardholder device, not directly by the partner.
- **list_all_modulr_card_token_otps** — Get OTP details for a modulr card token. Returns the OTP details object whose fields are defined by the modulr card.OtpDetails schema; consult the modulr API documentation for the full field-level breakdown. Required: card_id, token_id.
- **list_all_modulr_card_tasks** — List card tasks in Modulr ordered by creation date, newest first. Returns: taskBid, resourceUrl, resourceId, status, createdDate, errorReason, id. Optionally filter by id, aid, statuses, or types; page size defaults to 20 (max 500).
- **get_single_modulr_card_task_by_id** — Get a single Modulr card task by id. If the task is complete, the response includes a link to the completed resource. Returns: status, id. Required: id.
- **list_all_modulr_card_reports** — List card reports in modulr, optionally filtered by date range, report type, or subject ID. Returns: id, reportSubjectId, reportDate, reportType. Supports sorting by reportDate or reportType in ascending or descending order.
- **list_all_modulr_card_report_downloads** — Download a specific card report from modulr by report ID. Returns the report as an opaque file payload (content-type: */*; schema fields are not enumerated by the upstream API). Required: report_id.
- **create_a_modulr_payment_file** — Upload a payment file to modulr and store valid extracted payments for later payment creation. Returns: id.
- **get_single_modulr_payment_file_by_id** — Get the latest upload status of a modulr payment file by id. Returns: status, errors, id. Required: id.
- **create_a_modulr_account_name_check** — Create an account name check in modulr to verify a payee's bank account details with their bank before creating a beneficiary or payment. Returns the Confirmation of Payee check result; the field-level details are defined by the confirmationofpayee.JsonOutboundCopResponse schema — consult the modulr Confirmation of Payee documentation for the full breakdown. Does not support idempotent requests.
- **create_a_modulr_account_name_check_payer** — Create a Payer Name Verification (PNV) check in modulr for a BACS Direct Debit payer, automatically verifying that the payer's name matches the bank account details submitted when setting up a Direct Debit. Returns: id, result. Does not support idempotent requests — repeated use of a previously seen nonce will return 403 Forbidden.
- **list_all_modulr_account_name_check_srd_accounts** — List all sort codes and account numbers in Modulr for which Secondary Reference Data (SRD) must be provided with every account name check request. Returns: content, size, totalSize, page, totalPages.
- **create_a_modulr_vrp** — Initiate a Variable Recurring Payment in modulr using an existing authorised consent. Returns: id, status.
- **get_single_modulr_vrp_by_id** — Fetch the details of a Variable Recurring Payment in modulr by its unique payment ID. Returns: payment, status, id. Required: id.
- **create_a_modulr_vrp_consent** — Create a Variable Recurring Payment (VRP) consent in modulr for authorisation by the payment service user, enabling one or more payments within the specified payment constraints. Returns: id.
- **get_single_modulr_vrp_consent_by_id** — Get information about a VRP consent in modulr by id. Returns: id. Required: id.
- **create_a_modulr_vrp_consent_funds_confirmation** — Confirm the availability of funds in a modulr account prior to initiating a Variable Recurring Payment, using an authorised VRP consent. Returns a VRP funds confirmation response object. Required: consent_id.
- **create_a_modulr_standing_order_initiation** — Initiate a new standing order in modulr from an account held at an ASPSP to a specified destination account. Returns the created standing order initiation object including its id.
- **get_single_modulr_standing_order_initiation_by_id** — Retrieve the details of a specific modulr standing order initiation request by its ID. Returns: id. Required: id.
- **create_a_modulr_payment_initiation** — Initiate a payment in modulr to a destination account from an ASPSP. Returns: id.
- **get_single_modulr_payment_initiation_by_id** — Retrieve the details of a specific modulr payment initiation request by id. Returns: id. Required: id.
- **list_all_modulr_aspsps** — List all Account Servicing Payment Service Providers (ASPSPs) supported by modulr. Returns: id, name, capabilities.
- **create_a_modulr_application** — Create a new onboarding application in modulr with an initial status of NEW. Returns: id.
- **modulr_applications_verify** — Submit a modulr onboarding application for initial KYB/KYC review once all required data has been provided. Returns an empty 200 response on success. Required: id.
- **create_a_modulr_document** — Upload and store a document in the Modulr repository. Returns a URL-encoded path to the stored document location in the repository. Returns: path, fileName, id.
- **create_a_modulr_customer_document** — Upload and store KYC/KYB documents associated with an existing modulr customer record. Returns an empty 204 response on success. Required: customer_id.
- **list_all_modulr_channel_managers_webhook_notifications** — List webhook notification configurations for the authenticated Channel Manager in Modulr. Returns a paged collection of notification configuration records; each record includes id.
- **create_a_modulr_channel_managers_webhook_notification** — Create a webhook notification configuration for the authenticated Channel Manager in Modulr. Returns the created configuration object including id.
- **get_single_modulr_channel_managers_webhook_notification_by_id** — Retrieve a single webhook notification configuration by id for the authenticated Channel Manager in Modulr. Returns the configuration object including id. Required: id.
- **update_a_modulr_channel_managers_webhook_notification_by_id** — Update a specific webhook notification configuration by id for the authenticated Channel Manager in Modulr using replace operations. Only replace operations are supported. Returns an empty 200 response on success. Required: id.
- **create_a_modulr_channel_managers_card** — Create a new virtual card for a channel manager account in Modulr. Returns an empty 204 response on success.
- **update_a_modulr_channel_managers_card_by_id** — Update an existing channel manager virtual card by id in Modulr. Returns an empty 204 response on success. Required: id.
- **list_all_modulr_channel_managers_cards** — List virtual cards owned by the channel manager in Modulr. Returns card objects including id, status, currency, accountId, and externalRef. Optional filters include fromCreatedDate, toCreatedDate, statuses, accountId, customerId, frequencyUsage, and more.
- **list_all_modulr_cards_activities** — List card activities for a specific card in Modulr. Returns activity records including id, status, type, createdDate, and orderId. Optionally filter by date range, status, type, or order. Required: card_id.
- **list_all_modulr_channel_managers_card_reports** — List card reports owned by the channel manager in Modulr. Returns: id, reportSubjectId, reportDate, reportType. Optionally filter by date range using fromReportDate and toReportDate, or narrow results by reportTypes and reportSubjectIds. Results can be sorted by reportDate or reportType.
- **create_a_modulr_compliance_associate** — Create a new compliance associate (individual or associated entity) for a modulr customer application. Returns: id. Required: customer_id.
- **list_all_modulr_customer_associates** — List all associates for a modulr customer. Returns a paged response whose `content` array contains associate records. Required: customer_id, searchCriteria.
- **create_a_modulr_channel_manager_account_card** — Create a new virtual card for a channel manager account in Modulr. Returns the created card object including id, pan, cvv2, externalRef, createdDate, maxLimit, and frequencyUsage. Required: account_id.
- **create_a_modulr_channel_manager_card_replace** — Replace a channel manager card in Modulr by submitting a replacement request for the specified card. Returns an empty 204 response on success. Required: card_id.
- **get_single_modulr_channel_manager_card_report_report_by_id** — Get a Modulr channel manager card report by report_id. Returns the report object including id and report-specific attributes. Required: report_id.

## How it works

1. **Link your customer's Modulr account.** Use Truto's frontend SDK; we handle every OAuth and API key flow so you don't need to create the OAuth app.
2. **Authentication is automatic.** Truto refreshes tokens, stores credentials securely, and injects them into every API request.
3. **Call Truto's API to reach Modulr.** The Proxy API is a 1-to-1 mapping of the Modulr API.
4. **Get a unified response format.** Every response uses a single shape, with cursor-based pagination and data in the `result` field.

## Use cases

- **Embed banking into vertical SaaS** — Property, marketplace, and gig-economy platforms can provision a dedicated Modulr virtual account for every customer or property, enabling per-entity ledgering and instant reconciliation without becoming a regulated entity themselves.
- **Automate payroll and vendor payouts** — Payroll and AP platforms can offer one-click payment runs by submitting batch payments to Modulr via Truto, replacing manual Bacs file uploads and reducing reconciliation overhead for finance teams.
- **Launch a card issuing program** — Spend management, expense, and corporate card SaaS can issue virtual and physical cards, set custom field tags per card, and let end users freeze, replace, or view secure card details directly inside the SaaS UI.
- **Embed Direct Debit and VRP collections** — Subscription billing, lending, and rent collection platforms can set up mandates in bulk, schedule collections, and initiate Open Banking Variable Recurring Payments without building bank-grade payment infrastructure.
- **Reduce misdirected payments with Confirmation of Payee** — Any SaaS sitting in the flow of funds can run account name checks before payouts to verify recipient details, cutting fraud risk and failed payment reversals for their end users.

## What you can build

- **Per-user virtual account provisioning** — Auto-create a Modulr customer and customer account whenever a new tenant signs up, mapping it 1:1 to your internal entity for ledgering and inbound reconciliation.
- **Bulk payout engine** — Aggregate invoices, salaries, or marketplace earnings and dispatch them as a single batch payment, with status polling and cancel support for in-flight runs.
- **Embedded card management dashboard** — Let end users issue, suspend, unblock, replace, and cancel cards, plus reveal PINs and secure details via tokenized endpoints — all inside your product.
- **Confirmation of Payee checks at payment time** — Trigger an account name check before any outbound Faster Payment to confirm the beneficiary matches before funds leave the account.
- **Direct Debit and mandate automation** — Create mandates in bulk, schedule recurring collections, and cancel mandates or collections from your billing module without manual bank portal steps.
- **KYB onboarding flow** — Submit applications, attach customer documents, and register compliance associates to take new business customers through verification inside your signup flow.

## FAQs

### How does authentication to Modulr work through Truto?

Truto handles credential storage and request signing for Modulr on behalf of your end users, so you don't manage API keys, HMAC signing, or token refresh logic in your own backend. Each connected account is scoped per end user.

### Which Modulr workflows are exposed via Truto today?

Truto supports the core Modulr surface area including customers, accounts, payments, batch payments, beneficiaries, mandates and collections, cards (issuing, lifecycle, secure details, bulk cards), VRP and payment initiation, account name check, applications, documents, and notification configuration.

### Can we listen to Modulr events for real-time reconciliation?

Yes. Truto exposes Modulr's partner and customer notification configuration endpoints so you can register webhook destinations, and surfaces webhook failure listings so you can monitor delivery health.

### Does Truto support card custom fields for tagging cards with internal IDs?

Yes. You can create and delete custom fields on Modulr cards through Truto, which is useful for attaching internal references like project IDs, employee IDs, or cost centers to issued cards.

### Can we issue both virtual and physical cards via the integration?

Yes. Truto supports creating account cards (virtual) and account physical cards, along with replace, block, suspend, unblock, activate, cancel, and PIN unblock operations for full lifecycle management.

### How do we securely surface card PANs and PINs to end users?

Modulr exposes tokenized secure details endpoints, and Truto wraps these so you can generate a card secure details token, share secure detail records, and trigger secure PIN reset flows without sensitive data touching your servers.
