Gunnar

nordisk/monetize

crates/monetize-pay/Cargo.toml

[package]
name = "monetize-pay"
description = "The Payment trait (ten ops) and the open vendor implementations"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
repository.workspace = true
license.workspace = true
authors.workspace = true
publish.workspace = true

# One cargo feature per vendor; a deployment links only the vendors it has a
# contract with. Default: none — the trait alone.
#
# THE SPLIT (2026-09-05): this crate is the OPEN half — the trait, the
# registration seam (`factory`), and the vendors nobody needs a contract for:
# `invoice` (a bankgiro/OCR reference the customer pays from their own bank) and
# `sandbox` (the rehearsal vendor). klarna, stripe and swish live in the private
# `vetra-automation/monetize-impl` (crate `monetize-pay-impl`), depend on this
# crate, and register themselves through `factory::register`.
[features]
default = []
# SE (Bankgiro OCR) + FI (national creditor reference). No partner, no HTTP.
invoice = []
# The vendor that always has money and never opens a socket, so the whole money
# path can be rehearsed against a real product with no contract and no money.
# NEVER in `default`, and `monetize-server`'s sandbox_symbols test proves a
# default build does not CONTAIN it (the suite's compile-out doctrine).
sandbox = []

[dependencies]
serde.workspace = true
# Not optional any more: the registration seam hands every vendor its
# `[vendors.<name>]` block as a JSON value, and the sandbox persists its charges.
serde_json.workspace = true

[dev-dependencies]
serde_json.workspace = true