Configuration API
Configuration Schema
from fastapi_payments.config.config_schema import PaymentConfig
# Example usage
config = PaymentConfig(**config_dict)
PaymentConfig
- class fastapi_payments.config.config_schema.PaymentConfig(**data)[source]
Bases:
BaseModelConfiguration for payment module.
Attributes:
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
Methods:
validate_default_provider(v, info)Validate default provider exists in providers.
Validate logging level.
- Parameters:
-
database:
DatabaseConfig
-
messaging:
MessagingConfig
-
pricing:
PricingConfig
- classmethod validate_default_provider(v, info)[source]
Validate default provider exists in providers.
- model_config: ClassVar[ConfigDict] = {}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
ProviderConfig
- class fastapi_payments.config.config_schema.ProviderConfig(**data)[source]
Bases:
BaseModelPayment provider configuration.
Attributes:
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- Parameters:
- model_config: ClassVar[ConfigDict] = {}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
DatabaseConfig
- class fastapi_payments.config.config_schema.DatabaseConfig(**data)[source]
Bases:
BaseModelDatabase configuration.
Attributes:
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_config: ClassVar[ConfigDict] = {}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
RabbitMQConfig
PricingConfig
- class fastapi_payments.config.config_schema.PricingConfig(**data)[source]
Bases:
BaseModelPricing configuration.
Attributes:
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- Parameters:
- model_config: ClassVar[ConfigDict] = {}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
TaxConfig
- class fastapi_payments.config.config_schema.TaxConfig(**data)[source]
Bases:
BaseModelTax configuration.
Attributes:
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- Parameters:
- model_config: ClassVar[ConfigDict] = {}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
Configuration Functions
load_config
- fastapi_payments.config.settings.load_config(file_path=None, env_override=True, validate=True)[source]
Load and validate payment configuration.
- Parameters:
- Return type:
Union[PaymentConfig,Dict[str,Any]]- Returns:
PaymentConfig if validate=True, otherwise a configuration dictionary
- Raises:
FileNotFoundError – If the configuration file doesn’t exist
json.JSONDecodeError – If the configuration file is not valid JSON
ValidationError – If validation is enabled and the configuration is invalid
load_config_from_file
- fastapi_payments.config.settings.load_config_from_file(file_path)[source]
Load configuration from a JSON file.
- Parameters:
file_path (
Union[str,Path]) – Path to JSON configuration file- Return type:
- Returns:
Configuration dictionary
- Raises:
FileNotFoundError – If the configuration file doesn’t exist
json.JSONDecodeError – If the configuration file is not valid JSON
load_config_from_env
- fastapi_payments.config.settings.load_config_from_env()[source]
Load configuration from environment variables.
Environment variables should be prefixed with PAYMENT_ For nested keys, use double underscore as separator
Examples: - PAYMENT_DEFAULT_PROVIDER=stripe - PAYMENT_DATABASE__URL=postgresql://user:pass@localhost/db - PAYMENT_PROVIDERS__STRIPE__API_KEY=sk_test_123