Skip to main content

Crate mollie_rs

Crate mollie_rs 

Source
Expand description

Typed Mollie API client for Rust.

Owned and maintained by Suits Finance B.V. This is an unofficial SDK: it is not affiliated with, endorsed by, or supported by Mollie B.V.

The generated Client exposes one typed async method for every operation in the checked-in Mollie OpenAPI spec. MollieClient is the ergonomic facade for applications: it builds the HTTP client, sets authentication, and dereferences to Client so the full generated route surface remains available.

§Examples

use mollie_rs::{types, IntoMollieFuture, MollieClient, Money};

let client = MollieClient::from_api_key("test_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")?;
let payment = mollie_rs::CreatePaymentRequired::new(
    "Order #12345",
    Money::new("EUR", "10.00")?,
    "https://example.com/return",
)?
.into_payment_request();

let response = client
    .create_payment(None, &payment)
    .into_mollie_result()
    .await?;
// When no sticky key is configured, a UUID v4 is generated and returned.
let _key = response.idempotency_key();
let _payment = response.into_inner();

To reuse a key for retries of the same logical operation, bind it on the client (owned, no lifetime coupling to request bodies):

let client = client.with_idempotency_key("6f7ef3e6-8c2f-4d1c-9f08-5ab7adf56c91");
let _response = client.create_payment(None, &payment).into_mollie_result().await?;

See docs/api-overview.md for the SDK capability map, docs/route-coverage.md for the generated route matrix, and docs/contracts/ for public facade contracts.

Re-exports§

pub use address::Address;
pub use address::POSTAL_CODE_OPTIONAL_COUNTRIES;
pub use auth::ApiKey;
pub use auth::BasicAuth;
pub use auth::Credential;
pub use auth::OAuthAccessToken;
pub use client::MollieClient;
pub use client::MollieClientBuilder;
pub use client::DEFAULT_BASE_URL;
pub use contract_drift::emit_contract_drift;
pub use contract_drift::global_contract_drift_observer;
pub use contract_drift::set_global_contract_drift_observer;
pub use contract_drift::ContractDriftKind;
pub use contract_drift::ContractDriftObserver;
pub use contract_drift::ContractDriftScopeGuard;
pub use contract_drift::ContractDriftSignal;
pub use contract_drift::NoopContractDriftObserver;
pub use contract_drift::SharedContractDriftObserver;
pub use contract_drift::CONTRACT_DRIFT_DETAIL_MAX_LEN;
pub use country_code::CountryCode;
pub use create_payment::CreatePaymentRequired;
pub use create_payment::PaymentDescription;
pub use create_payment::RedirectUrl;
pub use create_payment::PAYMENT_DESCRIPTION_MAX_LEN;
pub use datetime::Date;
pub use datetime::DateTime;
pub use domain::CapturesApi;
pub use domain::ConnectBalanceTransfersApi;
pub use domain::MandatesApi;
pub use domain::OAuthApi;
pub use domain::PaymentLinksApi;
pub use domain::PaymentsApi;
pub use domain::PayoutsApi;
pub use domain::RefundsApi;
pub use domain::SessionsApi;
pub use domain::SubscriptionsApi;
pub use domain::TerminalsApi;
pub use domain::TransferClientSignature;
pub use domain::TransfersApi;
pub use domain::UnmatchedCreditTransfersApi;
pub use domain::VerifyPayeeApi;
pub use domain::WebhooksApi;
pub use empty::EmptyResponse;
pub use env::load_dotenv;
pub use env::load_dotenv_from;
pub use env::var;
pub use env::var_optional;
pub use env::var_os;
pub use env::MOLLIE_API_KEY_ENV;
pub use env::MOLLIE_BASE_URL_ENV;
pub use env::MOLLIE_OAUTH_ACCESS_TOKEN_ENV;
pub use env::MOLLIE_OAUTH_CLIENT_ID_ENV;
pub use env::MOLLIE_OAUTH_CLIENT_SECRET_ENV;
pub use envelope::GeneratedMollieResult;
pub use envelope::IntoMollieFuture;
pub use envelope::IntoMollieResult;
pub use envelope::MollieEnvelope;
pub use envelope::MollieResponse;
pub use envelope::ResponseEnvelope;
pub use envelope::ResponseValueExt;
pub use error::MollieError;
pub use error::MollieResult;
pub use error_catalog::MollieErrorCatalogEntry;
pub use error_catalog::MollieErrorCode;
pub use error_catalog::MollieErrorEnvelope;
pub use error_catalog::MollieErrorKey;
pub use error_catalog::MollieSuccessCatalogEntry;
pub use error_catalog::MollieSuccessCode;
pub use error_catalog::MollieSuccessEnvelope;
pub use error_catalog::MollieSuccessKey;
pub use hooks::NoopHook;
pub use hooks::RequestContext;
pub use hooks::RequestHook;
pub use hooks::SharedRequestHook;
pub use idempotency::IdempotencyKey;
pub use idempotency::IDEMPOTENCY_KEY_MAX_LEN;
pub use ids::BalanceId;
pub use ids::CaptureId;
pub use ids::ChargebackId;
pub use ids::CustomerId;
pub use ids::MandateId;
pub use ids::PaymentId;
pub use ids::PaymentLinkId;
pub use ids::ProfileId;
pub use ids::RefundId;
pub use ids::SalesInvoiceId;
pub use ids::SettlementId;
pub use ids::SubscriptionId;
pub use ids::TerminalId;
pub use integration::ClaimResult;
pub use integration::EventStoreReplayAdapter;
pub use integration::PaymentStateRefetcher;
pub use integration::WebhookDispatcher;
pub use integration::WebhookEventStore;
pub use integration::WebhookReplayStore;
pub use locale::Locale;
pub use metadata::ErrorResponseContext;
pub use metadata::ResponseMetadata;
pub use metadata::MAX_RETAINED_BODY_BYTES;
pub use money::AmountValue;
pub use money::ApplicationFee;
pub use money::ApplicationFeeDescription;
pub use money::Currency;
pub use money::Money;
pub use money::APPLICATION_FEE_DESCRIPTION_MAX_LEN;
pub use nullable_field::is_omitted as nullable_field_is_omitted;
pub use nullable_field::NullableField;
pub use open_enum::OpenEnum;
pub use open_enum::OpenEnumError;
pub use open_enum::OPEN_ENUM_MAX_RAW_LEN;
pub use operation_safety::all_operation_safety_profiles;
pub use operation_safety::high_risk_coverage;
pub use operation_safety::operation_safety_profile;
pub use operation_safety::AuthClass;
pub use operation_safety::IdempotencyClass;
pub use operation_safety::MutationClass;
pub use operation_safety::OperationExposure;
pub use operation_safety::OperationRisk;
pub use operation_safety::OperationSafetyProfile;
pub use operation_safety::PaginationPolicy;
pub use operation_safety::ProfileScope;
pub use operation_safety::TestmodePolicy;
pub use operation_safety::HIGH_RISK_WRITE_OPERATION_IDS;
pub use operation_safety::PAYMENT_CAPABILITY_MUTATION_OPERATION_IDS;
pub use pagination::AsyncPaginator;
pub use pagination::ItemStream;
pub use pagination::Page;
pub use pagination::PageCursor;
pub use pagination::PaginationGuard;
pub use pagination::DEFAULT_PAGE_LIMIT;
pub use pagination::MAX_PAGE_LIMIT;
pub use payment_method::PaymentMethod;
pub use phone_number::PhoneNumber;
pub use provider_enums::parse_payment_status;
pub use provider_enums::payment_status_from_generated;
pub use provider_enums::payment_status_to_generated;
pub use provider_enums::PaymentStatusKnown;
pub use provider_enums::PaymentStatusValue;
pub use response_limits::ResponseLimits;
pub use response_limits::DEFAULT_MAX_ERROR_BODY_BYTES;
pub use response_limits::DEFAULT_MAX_JSON_BYTES;
pub use route_capabilities::retry_class_for_operation;
pub use route_capabilities::route_capability;
pub use route_capabilities::RouteAccess;
pub use route_capabilities::RouteCapability;
pub use route_capabilities::ROUTE_CAPABILITIES;
pub use tracing_config::init_tracing;
pub use tracing_config::init_tracing_with_filter;
pub use tracing_config::try_init_tracing;
pub use tracing_config::try_init_tracing_with_filter;
pub use transport::compute_backoff;
pub use transport::DeliveryOutcome;
pub use transport::RetryClass;
pub use transport::RetryPolicy;
pub use webhook::WebhookNotification;
pub use webhook::WebhookUrl;
pub use webhook_verify::compute_mollie_signature_hex;
pub use webhook_verify::VerifiedWebhook;
pub use webhook_verify::WebhookSigningSecret;
pub use webhook_verify::WebhookVerifier;
pub use webhook_verify::WebhookVerifyFailure;
pub use webhook_verify::DEFAULT_MAX_WEBHOOK_BODY_BYTES;
pub use webhook_verify::MOLLIE_SIGNATURE_HEADER;
pub use write_requests::ConnectBalanceTransferParty;
pub use write_requests::CreateCaptureRequired;
pub use write_requests::CreateConnectBalanceTransferRequired;
pub use write_requests::CreatePaymentLinkRequired;
pub use write_requests::CreatePayoutRequired;
pub use write_requests::CreateRefundRequired;
pub use write_requests::CreateSepaMandateRequired;
pub use write_requests::CreateSubscriptionRequired;
pub use write_requests::CreateTransferRequired;
pub use write_requests::UpdatePaymentRequired;
pub use write_requests::VerifyPayeeRequired;
pub use tracing;
pub use tracing_subscriber;

Modules§

address
Validated common Mollie address values.
auth
Authentication helpers for constructing Mollie API clients.
client
Ergonomic Mollie client construction.
contract_drift
Opt-in runtime contract-drift telemetry (TEL-001 / SUI-2366).
country_code
ISO 3166-1 alpha-2 country codes for Mollie request fields.
create_payment
Local validation for the three required create-payment body fields.
datetime
ISO 8601 date and datetime helpers for Mollie request/response fields.
domain
Handwritten payment-domain facades over the generated route surface.
empty
Explicit empty provider responses (204 / empty JSON bodies).
env
Environment helpers for process variables and optional dotenv loading.
envelope
Response-envelope helpers for generated Mollie route calls.
error
Error types returned by the hand-written Mollie SDK facade.
error_catalog
Stable codes, keys, and message keys for Mollie success and error envelopes.
factory
Shared success and error factories for application-facing envelopes.
hooks
Narrow request lifecycle hooks for observability and test doubles.
idempotency
Request-scoped idempotency keys for Mollie write operations.
ids
Validated Mollie resource identifiers.
integration
Application integration boundaries for webhook processing.
locale
Typed locale helpers for Mollie request payloads.
metadata
Operational response metadata extracted from HTTP headers and status.
money
Typed money helpers for constructing Mollie amount payloads.
nullable_field
Explicit omit / null / value field semantics (INV-NULL-01).
open_enum
Forward-compatible open enums that preserve unknown provider values (INV-ENUM-01).
operation_safety
Operation safety profile — singular policy SSOT for transport and facades.
pagination
Pagination primitives and async page iterators for Mollie list endpoints.
payment_method
Typed payment method helpers for request payloads.
phone_number
E.164 phone number validation for Mollie request fields.
prelude
Convenience re-exports of the types most applications import together.
provider_enums
Forward-compatible provider status enums (INV-ENUM-01).
response_limits
Configurable response body size limits for transport buffering.
route_capabilities
Machine-readable Mollie route capabilities generated from specs-3.0.yaml.
routes
Generated Mollie API route groups (inherent methods on Client). Generated Mollie API route groups.
tracing_config
Application tracing-subscriber helpers (app-helpers feature, default on). Tracing subscriber setup for applications and examples.
transport
Transport policy: retries, rate limits, deadlines, and delivery outcomes.
types
Generated OpenAPI types for request and response bodies. Types used as operation parameters and responses.
webhook
Typed helpers for classic Mollie webhook callbacks.
webhook_verify
Next-generation Mollie webhook signature verification.
write_requests
Validated builders for Mollie write request bodies.

Structs§

ByteStream
Untyped byte stream used for both success and error responses.
Client
Low-level typed Mollie API client (OpenAPI-generated route surface).
ResponseValue
Typed value returned by generated client methods.

Enums§

Error
Error produced by generated client methods.

Traits§

ClientInfo
Interface for which an implementation is generated for all clients.